BT.Private.tcl 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. #########################################################################
  2. ## BlackTools - The Ultimate Channel Control Script ##
  3. ## One TCL. One smart Eggdrop ##
  4. #########################################################################
  5. ########################### PRIVATE TCL #############################
  6. #########################################################################
  7. ## ##
  8. ## BlackTools : http://blacktools.tclscripts.net ##
  9. ## Bugs report : http://www.tclscripts.net/ ##
  10. ## Online Help : irc://irc.undernet.org/tcl-help ##
  11. ## #TCL-HELP / UnderNet ##
  12. ## You can ask in english or romanian ##
  13. ## ##
  14. #########################################################################
  15. proc privatepublic {nick host hand chan arg} {
  16. global black lastbind
  17. set type 0
  18. set chan1 "$chan"
  19. set why [lindex [split $arg] 0]
  20. set user [lindex [split $arg] 1]
  21. if {[regexp {^[&#]} $why] && [matchattr $hand nmo|M $why]} {
  22. set chan "$why"
  23. set why [lindex [split $arg] 1]
  24. set user [lindex [split $arg] 2]
  25. }
  26. set return [blacktools:mychar $lastbind $hand]
  27. if {$return == "0"} {
  28. return
  29. }
  30. private:process $nick $host $hand $chan $chan1 $why $user $type
  31. }
  32. proc private:process {nick host hand chan chan1 why user type} {
  33. global botnick black
  34. set cmd_status [btcmd:status $chan $hand "private" 0]
  35. if {$cmd_status == "1"} {
  36. return
  37. }
  38. if {[matchattr $hand q]} { blacktools:tell $nick $host $hand $chan $chan1 gl.glsuspend none
  39. return
  40. }
  41. if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
  42. return
  43. }
  44. set flags "-|P"
  45. set cmd "private"
  46. set show_user $user
  47. if {$why == ""} {
  48. switch $type {
  49. 0 {
  50. blacktools:tell $nick $host $hand $chan $chan1 gl.instr "private"
  51. }
  52. 1 {
  53. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_nick "private"
  54. }
  55. 2 {
  56. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_priv "private"
  57. }
  58. }
  59. return
  60. }
  61. switch $why {
  62. add {
  63. if {($user == "") && ($type == "0")} {
  64. blacktools:tell $nick $host $hand $chan $chan1 gl.instr $cmd
  65. return
  66. }
  67. if {($user == "") && ($type == "1")} {
  68. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_nick $cmd
  69. return
  70. }
  71. if {[onchan $user $chan]} {
  72. set getuser [nick2hand $user]
  73. if {$getuser != "*"} {
  74. set user $getuser
  75. }
  76. }
  77. if {[validuser $user]} {
  78. if {[matchattr $user $flags $chan]} {
  79. blacktools:tell $nick $host $hand $chan $chan1 private.10 $show_user
  80. return
  81. }
  82. chattr $user $flags $chan
  83. blacktools:tell $nick $host $hand $chan $chan1 private.7 $show_user
  84. } else {
  85. set hosts [getchanhost $user $chan]
  86. set uhost [return_mask $black(addusermask) $hosts $user]
  87. if {[userlist] != ""} {
  88. foreach usr [userlist] {
  89. set hst [getuser $usr hosts]
  90. foreach hhost $hst {
  91. if {[string match -nocase $hhost $uhost] && (![string match -nocase $usr $user])} {
  92. blacktools:tell $nick $host $hand $chan $chan1 add.5 $usr
  93. set user $usr
  94. set show_user $usr
  95. }
  96. }
  97. }
  98. }
  99. if {[validuser $user]} {
  100. chattr $user $flags $chan
  101. blacktools:tell $nick $host $hand $chan $chan1 private.7 $show_user
  102. return
  103. }
  104. adduser $user $uhost
  105. chattr $user $flags $chan
  106. blacktools:tell $nick $host $hand $chan $chan1 private.8 "$show_user $uhost"
  107. }
  108. }
  109. del {
  110. if {($user == "") && ($type == "0")} {
  111. blacktools:tell $nick $host $hand $chan $chan1 gl.instr $cmd
  112. return
  113. }
  114. if {($user == "") && ($type == "1")} {
  115. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_nick $cmd
  116. return
  117. }
  118. if {[onchan $user $chan]} {
  119. set getuser [nick2hand $user]
  120. if {$getuser != "*"} {
  121. set user $getuser
  122. }
  123. }
  124. if {[validuser $user]} {
  125. if {[matchattr $user $flags $chan]} {
  126. chattr $user -|-P $chan
  127. blacktools:tell $nick $host $hand $chan $chan1 private.9 $show_user
  128. } else { blacktools:tell $nick $host $hand $chan $chan1 private.6 $show_user
  129. }
  130. } else { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none }
  131. }
  132. list {
  133. set list [join [userlist $flags $chan]]
  134. if {$list == ""} { set list "NONE" }
  135. blacktools:tell $nick $host $hand $chan $chan1 private.11 none
  136. blacktools:tell $nick $host $hand $chan $chan1 private.5 $list
  137. }
  138. default {
  139. if {$type == "0"} {
  140. blacktools:tell $nick $host $hand $chan $chan1 gl.instr $cmd
  141. return
  142. }
  143. if {$type == "1"} {
  144. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_nick $cmd
  145. return
  146. }
  147. }
  148. }
  149. }
  150. proc private:module {nick host hand chan} {
  151. global black botnick
  152. set handle [nick2hand $nick]
  153. if {![validchan $chan]} {
  154. return
  155. }
  156. set chan1 $chan
  157. if {[setting:get $chan private]} {
  158. if {[matchattr $handle nmo|oMASOVP $chan]} {
  159. return
  160. }
  161. blacktools:banner:2 $nick "PRIVATE" $chan $chan1 $host "0"
  162. }
  163. }
  164. ##############
  165. #########################################################################
  166. ## END ##
  167. #########################################################################