BT.Private.tcl 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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 private:process {nick host hand chan chan1 why user type} {
  16. global botnick black
  17. set cmd_status [btcmd:status $chan $hand "private" 0]
  18. if {$cmd_status == "1"} {
  19. return
  20. }
  21. if {[matchattr $hand q]} { blacktools:tell $nick $host $hand $chan $chan1 gl.glsuspend none
  22. return
  23. }
  24. if {[matchattr $hand -|q $chan]} { blacktools:tell $nick $host $hand $chan $chan1 gl.suspend none
  25. return
  26. }
  27. set flags "-|P"
  28. set cmd "private"
  29. set show_user $user
  30. if {$why == ""} {
  31. switch $type {
  32. 0 {
  33. blacktools:tell $nick $host $hand $chan $chan1 gl.instr "private"
  34. }
  35. 1 {
  36. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_nick "private"
  37. }
  38. 2 {
  39. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_priv "private"
  40. }
  41. }
  42. return
  43. }
  44. switch $why {
  45. add {
  46. if {($user == "") && ($type == "0")} {
  47. blacktools:tell $nick $host $hand $chan $chan1 gl.instr $cmd
  48. return
  49. }
  50. if {($user == "") && ($type == "1")} {
  51. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_nick $cmd
  52. return
  53. }
  54. if {[onchan $user $chan]} {
  55. set getuser [nick2hand $user]
  56. if {$getuser != "*"} {
  57. set user $getuser
  58. }
  59. }
  60. if {[validuser $user]} {
  61. if {[matchattr $user $flags $chan]} {
  62. blacktools:tell $nick $host $hand $chan $chan1 private.10 $show_user
  63. return
  64. }
  65. chattr $user $flags $chan
  66. blacktools:tell $nick $host $hand $chan $chan1 private.7 $show_user
  67. } else {
  68. set hosts [getchanhost $user $chan]
  69. set uhost [return_mask $black(addusermask) $hosts $user]
  70. if {[userlist] != ""} {
  71. foreach usr [userlist] {
  72. set hst [getuser $usr hosts]
  73. foreach hhost $hst {
  74. if {[string match -nocase $hhost $uhost] && (![string match -nocase $usr $user])} {
  75. blacktools:tell $nick $host $hand $chan $chan1 add.5 $usr
  76. set user $usr
  77. set show_user $usr
  78. }
  79. }
  80. }
  81. }
  82. if {[validuser $user]} {
  83. chattr $user $flags $chan
  84. blacktools:tell $nick $host $hand $chan $chan1 private.7 $show_user
  85. return
  86. }
  87. adduser $user $uhost
  88. chattr $user $flags $chan
  89. blacktools:tell $nick $host $hand $chan $chan1 private.8 "$show_user $uhost"
  90. }
  91. }
  92. del {
  93. if {($user == "") && ($type == "0")} {
  94. blacktools:tell $nick $host $hand $chan $chan1 gl.instr $cmd
  95. return
  96. }
  97. if {($user == "") && ($type == "1")} {
  98. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_nick $cmd
  99. return
  100. }
  101. if {[onchan $user $chan]} {
  102. set getuser [nick2hand $user]
  103. if {$getuser != "*"} {
  104. set user $getuser
  105. }
  106. }
  107. if {[validuser $user]} {
  108. if {[matchattr $user $flags $chan]} {
  109. chattr $user -|-P $chan
  110. blacktools:tell $nick $host $hand $chan $chan1 private.9 $show_user
  111. } else { blacktools:tell $nick $host $hand $chan $chan1 private.6 $show_user
  112. }
  113. } else { blacktools:tell $nick $host $hand $chan $chan1 gl.nomem none }
  114. }
  115. list {
  116. set list [join [userlist $flags $chan]]
  117. if {$list == ""} { set list "NONE" }
  118. blacktools:tell $nick $host $hand $chan $chan1 private.11 none
  119. blacktools:tell $nick $host $hand $chan $chan1 private.5 $list
  120. }
  121. default {
  122. if {$type == "0"} {
  123. blacktools:tell $nick $host $hand $chan $chan1 gl.instr $cmd
  124. return
  125. }
  126. if {$type == "1"} {
  127. blacktools:tell $nick $host $hand $chan $chan1 gl.instr_nick $cmd
  128. return
  129. }
  130. }
  131. }
  132. }
  133. proc private:module {nick host hand chan} {
  134. global black botnick
  135. set handle [nick2hand $nick]
  136. if {![validchan $chan]} {
  137. return
  138. }
  139. set chan1 $chan
  140. if {[setting:get $chan private]} {
  141. if {[matchattr $handle nmo|oMASOVP $chan]} {
  142. return
  143. }
  144. blacktools:banner:2 $nick "PRIVATE" $chan $chan1 $host "0"
  145. }
  146. }
  147. ##############
  148. #########################################################################
  149. ## END ##
  150. #########################################################################