BT.ChanLink.tcl 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. #########################################################################
  2. ## BlackTools - The Ultimate Channel Control Script ##
  3. ## One TCL. One smart Eggdrop ##
  4. #########################################################################
  5. ########################### CHANLINK TCL ############################
  6. #########################################################################
  7. ## ##
  8. ## BlackTools : http://blacktools.tclscripts.net ##
  9. ## Bugs report : http://www.tclscripts.net/ ##
  10. ## GitHub page : https://github.com/tclscripts/BlackToolS-TCL ##
  11. ## Online Help : irc://irc.undernet.org/tcl-help ##
  12. ## #TCL-HELP / UnderNet ##
  13. ## You can ask in english or romanian ##
  14. ## ##
  15. #########################################################################
  16. proc link:process {nick host hand chan chan1 type what channels delchan} {
  17. global black
  18. if {$what == ""} {
  19. switch $type {
  20. 0 {
  21. blacktools:tell $nick $host $hand $chan $chan1 gl.instr "link"
  22. }
  23. 1 {
  24. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_nick "link"
  25. }
  26. 2 {
  27. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_priv "link"
  28. }
  29. }
  30. }
  31. switch $what {
  32. list {
  33. set return [link:show]
  34. if {$return == "0"} {
  35. blacktools:tell $nick $host $hand $chan $chan1 chanlink.5 none
  36. return
  37. }
  38. blacktools:tell $nick $host $hand $chan $chan1 chanlink.3 [join $return]
  39. }
  40. reset {
  41. link:reset
  42. blacktools:tell $nick $host $hand $chan $chan1 chanlink.2 none
  43. }
  44. all {
  45. link:set $what
  46. blacktools:tell $nick $host $hand $chan $chan1 chanlink.4 none
  47. }
  48. del {
  49. if {![validchan $delchan]} {
  50. blacktools:tell $nick $host $hand $chan $chan1 gl.novalidchan none
  51. return
  52. }
  53. set return [link:del $delchan]
  54. if {$return == "1"} {
  55. blacktools:tell $nick $host $hand $chan $chan1 chanlink.7 $delchan
  56. } else {
  57. blacktools:tell $nick $host $hand $chan $chan1 chanlink.8 $delchan
  58. }
  59. }
  60. default {
  61. set return [link:set $channels]
  62. set split_return [split $return ":"]
  63. set validchan [lindex $split_return 0]
  64. set notvalid [lindex $split_return 1]
  65. if {$validchan != ""} {
  66. blacktools:tell $nick $host $hand $chan $chan1 chanlink.1 [join $validchan]
  67. }
  68. if {$notvalid != ""} {
  69. blacktools:tell $nick $host $hand $chan $chan1 chanlink.6 [join $notvalid]
  70. }
  71. }
  72. }
  73. }
  74. proc link:show {} {
  75. global black botnick
  76. set return [link:get]
  77. if {$return == ""} {
  78. return 0
  79. }
  80. return $return
  81. }
  82. proc link:set {channels} {
  83. global black botnick
  84. set validchan ""
  85. set notvalid ""
  86. if {[string equal -nocase $channels "all"]} {
  87. foreach chan [channels] {
  88. if {[setting:get $chan chanlink] == "0"} {
  89. setting:set $chan +chanlink ""
  90. }
  91. }
  92. return 1
  93. }
  94. foreach chan $channels {
  95. if {[validchan $chan]} {
  96. lappend validchan $chan
  97. if {[setting:get $chan chanlink] == "0"} {
  98. setting:set $chan +chanlink ""
  99. }
  100. } else {
  101. lappend notvalid $chan
  102. }
  103. }
  104. return "$validchan:$notvalid"
  105. }
  106. proc link:reset {} {
  107. global black botnick
  108. foreach chan [channels] {
  109. if {[setting:get $chan chanlink]} {
  110. setting:set $chan -chanlink ""
  111. }
  112. }
  113. }
  114. proc link:del {chan} {
  115. global black
  116. if {[setting:get $chan chanlink]} {
  117. setting:set $chan -chanlink ""
  118. return 1
  119. } else {
  120. return 0
  121. }
  122. }
  123. proc link:get {} {
  124. global black botnick
  125. set channels ""
  126. foreach chan [channels] {
  127. if {[setting:get $chan chanlink]} {
  128. lappend channels $chan
  129. }
  130. }
  131. return $channels
  132. }
  133. proc link:status {chan} {
  134. global black
  135. if {[setting:get $chan chanlink]} {
  136. return 1
  137. } else {
  138. return 0
  139. }
  140. }
  141. proc link:chan:get {readchan} {
  142. global black
  143. set channels ""
  144. set readchan [string tolower $readchan]
  145. if {[setting:get $readchan chanlink] == "0"} {
  146. return ""
  147. }
  148. foreach chan [string tolower [channels]] {
  149. if {[setting:get $chan chanlink]} {
  150. if {$readchan != $chan} {
  151. lappend channels $chan
  152. }
  153. }
  154. }
  155. return $channels
  156. }
  157. ##############
  158. #########################################################################
  159. ## END ##
  160. #########################################################################