Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 62.75 KB | None | 0 0
  1. # Begin - Commands & Control, Channel Control. (cmd_chan.tcl)
  2. # Designed & Written by TCP-IP (Vicky@Vic.ky), © April 1999
  3. # Developed by Ninja_baby (Jaysee@Jaysee.Tv), © March 2000
  4.  
  5. # This script was made by TCP-IP in middle of 1999, I develop this script since he passes this script-
  6. # to me in middle of 2000. I made few changes, add some features, and fixed some bugs that were remain-
  7. # here in this script package.
  8.  
  9. # This TCL contains some public / msg commands related to channel's stuffs.. such as to ban, kick, op-
  10. # deop, etc... simpy do /msg <yourbotnick> chanhelp or do `chanhelp in channel to see what commands-
  11. # did this script has.. I set 2 types of commands.. /msg commands and public (channel) commands.
  12. # NOTE: not much.. even almost has no DCC command stuffs here.. I will make the DCC commands very soon ;)
  13. # so please support ;)
  14.  
  15. # Set this as your Public (channel) command character. For example: you set this to "!".. means you must-
  16. # type !mycommand in channel to activate public commands.
  17. set CHPRM "`"
  18.  
  19. # This is for network compatiblity (be sure your IRC network using SirvServces) with ChanServ arround.
  20. # I set this with DALnet's ChanServ's nickname.. you can set it according to your ChanServ's nickname-
  21. # in your IRC network ;)
  22. set cmdsvrnick "ChanServ@services.dal.net"
  23.  
  24. if {[info exist ban-time]} {
  25. # Checking whenever the "ban-time" variable is exist on your bot conf file. (Default)
  26. set gbantime ${ban-time}
  27. } else {
  28. # Set this as global ban time.. this will be use when you trigger +ban / +gban command to ban ppl-
  29. # out of channel.. when you're not typing a ban time.. the bot will set the ban time according with-
  30. # what you set here.. set this variable in Minute(s) format.
  31. # Remember that if "ban-time" variable (which taken from your eggdrop.conf.dist file) already-
  32. # exist, you do not need to set the bantime from here, this script will automaticly add the-
  33. # variable from your bot conf file.
  34. set gbantime 15
  35. }
  36.  
  37. # This is for your benefit hehe ;), you can either set your own LOGO here, your logo will appear-
  38. # when the bot notice you, or when it makes msgs/notices/kicks or scripts loading. So keep smiling-
  39. # and set this variable as you wish ;), you can either set this to "" to leave it blank.
  40. set cmdchnlg "\[J-C\]:"
  41.  
  42. ######### Please do not edit anything below unless you know what you are doing ;) #########
  43.  
  44. proc msg_masuk {nick uhost hand rest} {
  45. global botnick cmdchnlg
  46. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  47. set chan [lindex $rest 0] ; set chankey [lindex $rest 1]
  48. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick join <#channel> \[join-key\]" ; return 0}
  49. if {![string match "#*" $chan]} {set chan "#$chan"}
  50. if {[validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am already on $chan." ; return 0}
  51. channel add $chan ; utimer 1 save
  52. if {$chankey == ""} {putquick "NOTICE $nick :$cmdchnlg Joining myself to channel: $chan. Updating channel list." ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Join $chan." ; return 0}
  53. putquick "JOIN $chan $chankey"
  54. putquick "NOTICE $nick :$cmdchnlg Joining myself to channel: $chan with Join-key: $chankey. Updating channel list."
  55. putcmdlog "$cmdchnlg <<$nick>> !$hand! Join $chan (Join-key: $chankey)." ; return 0
  56. }
  57.  
  58. proc pub_masuk {nick uhost hand chan rest} {
  59. global CHPRM botnick cmdchnlg
  60. set channel [lindex $rest 0] ; if {$channel == "#" || $channel == ""} {putquick "NOTICE $nick :$cmdchnlg Command: \[${CHPRM}join <#channel> \[join-key\]\]" ; return 0}
  61. msg_masuk $nick $uhost $hand $rest
  62. }
  63.  
  64. proc msg_cabut {nick uhost hand rest} {
  65. global botnick cmdchnlg
  66. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  67. set chan [lindex $rest 0]
  68. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick leave <#channel>" ; return 0}
  69. if {![string match "#*" $chan]} {set chan "#$chan"}
  70. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  71. if {![isdynamic $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I cannot part from $chan, coz' it is not a dynamic channel." ; return 0}
  72. channel remove $chan ; utimer 1 save
  73. putquick "NOTICE $nick :$cmdchnlg I am now leaving channel: $chan. Updating channel list."
  74. putcmdlog "$cmdchnlg <<$nick>> !$hand! Leave $chan." ; return 0
  75. }
  76.  
  77. proc pub_cabut {nick uhost hand chan rest} {
  78. global CHPRM botnick cmdchnlg
  79. set rest [lindex $rest 0] ; if {$rest == "#" || $rest == ""} {set rest $chan}
  80. msg_cabut $nick $uhost $hand $rest
  81. }
  82.  
  83. proc msg_cycle {nick uhost hand rest} {
  84. global botnick cmdchnlg
  85. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  86. set chan [lindex $rest 0]
  87. if {$chan == "#"} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick cycle \[#channel\]" ; return 0}
  88. if {$chan == ""} {set chan "ALL"
  89. } else {if {![string match "#*" $chan]} {set chan "#$chan" ; if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}}}
  90. if {$chan != "ALL"} {
  91. putquick "PART $chan :$chan" ; putquick "JOIN $chan" ; putquick "NOTICE $nick :$cmdchnlg Cycling: $chan."
  92. } else {
  93. foreach pchan [channels] {
  94. putquick "PART $pchan :Cycling" ; putquick "JOIN $pchan" ; putquick "NOTICE $nick :$cmdchnlg Cycling: $pchan."
  95. }
  96. } ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Cycle." ; return 0
  97. }
  98.  
  99. proc pub_cycle {nick uhost hand chan rest} {
  100. global CHPRM botnick cmdchnlg
  101. set chans "" ; if {$rest == ""} {msg_cycle $nick $uhost $hand $chan} else {msg_cycle $nick $uhost $hand $rest}
  102. }
  103.  
  104. proc msg_konci {nick uhost hand rest} {
  105. global botnick cmdchnlg
  106. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  107. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  108. set chan [lindex $rest 0]
  109. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick lock <#channel>" ; return 0}
  110. if {![string match "#*" $chan]} {set chan "#$chan"}
  111. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  112. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  113. set currmode [getchanmode $chan] ; set lockmode ""
  114. if {![string match "*m*" $currmode]} {append lockmode "m"}
  115. if {![string match "*i*" $currmode]} {append lockmode "i"}
  116. if {$lockmode == ""} {putquick "NOTICE $nick :$cmdchnlg Channel $chan already locked. I will not lock that channel twice." ; return 0}
  117. putquick "MODE $chan $lockmode"
  118. putcmdlog "$cmdchnlg <<$nick>> !$hand! Lock $chan." ; return 0
  119. }
  120.  
  121. proc pub_konci {nick uhost hand chan rest} {
  122. global CHPRM botnick cmdchnlg
  123. set rest [lindex $rest 0] ; if {$rest == "#" || $rest == ""} {set rest $chan}
  124. msg_konci $nick $uhost $hand $rest
  125. }
  126.  
  127. proc msg_buka {nick uhost hand rest} {
  128. global botnick cmdchnlg
  129. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  130. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  131. set chan [lindex $rest 0]
  132. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick unlock <#channel>" ; return 0}
  133. if {![string match "#*" $chan]} {set chan "#$chan"}
  134. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  135. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  136. set currmode [getchanmode $chan] ; set lockmode ""
  137. if {[string match "*m*" $currmode]} {append lockmode "m"}
  138. if {[string match "*i*" $currmode]} {append lockmode "i"}
  139. if {$lockmode == ""} {putquick "NOTICE $nick :$cmdchnlg Channel $chan is not locked." ; return 0}
  140. putquick "MODE $chan -$lockmode"
  141. putcmdlog "$cmdchnlg <<$nick>> !$hand! Unlock $chan." ; return 0
  142. }
  143.  
  144. proc pub_buka {nick uhost hand chan rest} {
  145. global CHPRM botnick cmdchnlg
  146. set rest [lindex $rest 0] ; if {$rest == "#" || $rest == ""} {set rest $chan}
  147. msg_buka $nick $uhost $hand $rest
  148. }
  149.  
  150. proc msg_cmode {nick uhost hand rest} {
  151. global botnick cmdchnlg
  152. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  153. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  154. set chan [lindex $rest 0] ; set mlock [lrange $rest 1 end]
  155. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick cmode <#channel> <+/-modelocks>" ; return 0}
  156. if {![string match "#*" $chan]} {set chan "#$chan"}
  157. if {$mlock == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick cmode $chan <+/-modelocks>" ; return 0}
  158. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  159. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  160. putquick "MODE $chan $mlock"
  161. putcmdlog "$cmdchnlg <<$nick>> !$hand! Mode change: $rest on channel: $chan." ; return 0
  162. }
  163.  
  164. proc pub_cmode {nick uhost hand chan rest} {
  165. global CHPRM botnick cmdchnlg
  166. set chans "" ; set channel [lindex $rest 0]
  167. if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}
  168. set cmodes [lindex $chans 1]
  169. if {$cmodes == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}cmode \[#channel\] <+/-modelocks>" ; return 0}
  170. msg_cmode $nick $uhost $hand $chans
  171. }
  172.  
  173. proc msg_opbot {nick uhost hand rest} {
  174. global CHPRM botnick cmdsvrnick cmdchnlg
  175. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  176. if {$cmdsvrnick == ""} {putquick "NOTICE $nick :$cmdchnlg This network doesn't have any channel services, or you set its nick blank, I cannot Op myself." ; return 0}
  177. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  178. set chan [lindex $rest 0]
  179. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick up <#channel>" ; return 0}
  180. if {![string match "#*" $chan]} {set chan "#$chan"}
  181. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  182. if {[botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I am already Opped on channel: $chan." ; return 0}
  183. if {$cmdsvrnick == ""} {putquick "NOTICE $nick :$cmdchnlg This network doesn't have any channel services, or you set its nick blank, I cannot Op myself." ; return 0}
  184. putquick "PRIVMSG $cmdsvrnick :op $chan $botnick"
  185. putcmdlog "$cmdchnlg <<$nick>> !$hand! Self-Op on channel: $chan." ; return 0
  186. }
  187.  
  188. proc pub_opbot {nick uhost hand chan rest} {
  189. global CHPRM botnick cmdchnlg
  190. set rest [lindex $rest 0] ; if {$rest == "#" || $rest == ""} {set rest $chan}
  191. msg_opbot $nick $uhost $hand $rest
  192. }
  193.  
  194. proc msg_deopbot {nick uhost hand rest} {
  195. global CHPRM botnick cmdchnlg
  196. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  197. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  198. set chan [lindex $rest 0]
  199. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick down <#channel>" ; return 0}
  200. if {![string match "#*" $chan]} {set chan "#$chan"}
  201. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  202. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  203. putquick "MODE $chan +v-o $botnick $botnick"
  204. putcmdlog "$cmdchnlg <<$nick>> !$hand! Self-DeOp on channel: $chan." ; return 0
  205. }
  206.  
  207. proc pub_deopbot {nick uhost hand chan rest} {
  208. global CHPRM botnick cmdchnlg
  209. set rest [lindex $rest 0] ; if {$rest == "#" || $rest == ""} {set rest $chan}
  210. msg_deopbot $nick $uhost $hand $rest
  211. }
  212.  
  213. proc msg_naekin {nick uhost hand rest} {
  214. global botnick cmdsvrnick cmdchnlg
  215. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  216. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  217. set chan [lindex $rest 0] ; set opnick [lrange $rest 1 end]
  218. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick op <#channel> <nickname(s)>" ; return 0}
  219. if {![string match "#*" $chan]} {set chan "#$chan"}
  220. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  221. if {$opnick == ""} {
  222. if {[isop $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are already Opped on channel: $chan." ; return 0}
  223. if {![botisop $chan]} {
  224. if {$cmdsvrnick == ""} {putquick "NOTICE $nick :$cmdchnlg This network doesn't have any channel services, or you set its nick blank, I cannot Op you since I'm not opped." ; return 0}
  225. putquick "PRIVMSG $cmdsvrnick :op $chan $nick" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! $cmdsvrnick Op: $nick on channel: $chan." ; return 0
  226. }
  227. if {![onchan $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are not on channel: $chan." ; return 0}
  228. putquick "MODE $chan +o $nick" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Op: $nick on channel: $chan." ; return 0
  229. }
  230. set opnicks "" ; set gopnicks "" ; set nonenicks "" ; set gotop 0
  231. foreach x $opnick {
  232. if {(![onchansplit $x $chan]) && (![isbotnick $x])} {
  233. if {[string toupper $x] == "ME"} {set x $nick}
  234. if {$gotop < 6} {if {[isop $x $chan]} {append gopnicks " $x"} else {if {![onchan $x $chan]} {append nonenicks " $x"} else {append opnicks " $x" ; set gotop [expr $gotop + 1]}}}
  235. if {$gotop == 6} {
  236. set gotop 0
  237. if {$opnicks != ""} {
  238. if {![botisop $chan]} {
  239. if {$cmdsvrnick == ""} {putquick "NOTICE $nick :$cmdchnlg This network doesn't have any channel services, or you set its nick blank, I cannot Op anyone since I'm not opped." ; return 0}
  240. putquick "PRIVMSG $cmdsvrnick :op $chan $opnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! $cmdsvrnick Op: $opnicks on channel: $chan."
  241. } else {
  242. putquick "MODE $chan +oooooo $opnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Op: $opnicks on channel: $chan."
  243. }
  244. set opnicks "" ; append opnicks " $x" ; set gotop 1
  245. }
  246. }
  247. }
  248. }
  249. if {$nonenicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nonenicks is not on channel: $chan."}
  250. if {$gopnicks != ""} {putquick "NOTICE $nick :$cmdchnlg $gopnicks already Oped on channel: $chan."}
  251. if {$opnicks != ""} {
  252. if {![botisop $chan]} {
  253. if {$cmdsvrnick == ""} {putquick "NOTICE $nick :$cmdchnlg This network doesn't have any channel services, or you set its nick blank, I cannot Op anyone since I'm not opped." ; return 0}
  254. putquick "PRIVMSG $cmdsvrnick :op $chan $opnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! $cmdsvrnick Op: $opnicks on channel: $chan."
  255. } else {
  256. putquick "MODE $chan +oooooo $opnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Op: $opnicks on channel: $chan."
  257. }
  258. } ; return 0
  259. }
  260.  
  261. proc pub_naekin {nick uhost hand chan rest} {
  262. global CHPRM botnick cmdchnlg
  263. set chans "" ; set channel [lindex $rest 0]
  264. if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}
  265. msg_naekin $nick $uhost $hand $chans
  266. }
  267.  
  268. proc msg_turunin {nick uhost hand rest} {
  269. global botnick cmdsvrnick cmdchnlg
  270. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  271. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  272. set chan [lindex $rest 0] ; set deopnick [lrange $rest 1 end]
  273. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick deop <#channel> <nickname(s)>" ; return 0}
  274. if {![string match "#*" $chan]} {set chan "#$chan"}
  275. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  276. if {$deopnick == ""} {
  277. if {![isop $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are not Opped on channel: $chan." ; return 0}
  278. if {![botisop $chan]} {
  279. if {$cmdsvrnick == ""} {putquick "NOTICE $nick :$cmdchnlg This network doesn't have any channel services, or you set its nick blank, I cannot DeOp you since I'm not opped." ; return 0}
  280. putquick "PRIVMSG $cmdsvrnick :deop $chan $nick" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! $cmdsvrnick DeOp: $nick on channel: $chan." ; return 0
  281. }
  282. if {![onchan $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are not on channel: $chan." ; return 0}
  283. putquick "MODE $chan -o $nick" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! DeOp: $nick on channel: $chan." ; return 0
  284. }
  285. set deopnicks "" ; set nopnicks "" ; set nonenicks "" ; set ownicks "" ; set gotdeop 0
  286. foreach x $deopnick {
  287. if {(![onchansplit $x $chan]) && (![isbotnick $x])} {
  288. if {[string toupper $x] == "ME"} {set x $nick}
  289. if {$gotdeop < 6} {if {![isop $x $chan]} {append nopnicks " $x"} else {if {![onchan $x $chan]} {append nonenicks " $x"} else {if {[matchattr [nick2hand $x $chan] m]} {append ownicks " $x"} else {append deopnicks " $x" ; set gotdeop [expr $gotdeop + 1]}}}}
  290. if {$gotdeop == 6} {
  291. set gotdeop 0
  292. if {$deopnicks != ""} {
  293. if {![botisop $chan]} {
  294. if {$cmdsvrnick == ""} {putquick "NOTICE $nick :$cmdchnlg This network doesn't have any channel services, or you set its nick blank, I cannot DeOp anyone since I'm not opped." ; return 0}
  295. putquick "PRIVMSG $cmdsvrnick :deop $chan $deopnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! $cmdsvrnick DeOp: $deopnicks on channel: $chan."
  296. } else {
  297. putquick "MODE $chan -oooooo $deopnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! DeOp: $deopnicks on channel: $chan."
  298. }
  299. set deopnicks "" ; append deopnicks " $x" ; set gotdeop 1
  300. }
  301. }
  302. }
  303. }
  304. if {$nonenicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nonenicks is not on channel: $chan."}
  305. if {$nopnicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nopnicks already DeOped on channel: $chan."}
  306. if {$ownicks != ""} {putquick "NOTICE $nick :$cmdchnlg $ownicks are my \[Master(s)\], and will I will not DeOp them on channel: $chan."}
  307. if {$deopnicks != ""} {
  308. if {![botisop $chan]} {
  309. if {$cmdsvrnick == ""} {putquick "NOTICE $nick :$cmdchnlg This network doesn't have any channel services, or you set its nick blank, I cannot DeOp anyone since I'm not opped." ; return 0}
  310. putquick "PRIVMSG $cmdsvrnick :deop $chan $deopnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! $cmdsvrnick DeOp: $deopnicks on channel: $chan."
  311. } else {
  312. putquick "MODE $chan -oooooo $deopnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! DeOp: $deopnicks on channel: $chan."
  313. }
  314. } ; return 0
  315. }
  316.  
  317. proc pub_turunin {nick uhost hand chan rest} {
  318. global CHPRM botnick cmdchnlg
  319. set chans "" ; set channel [lindex $rest 0]
  320. if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}
  321. msg_turunin $nick $uhost $hand $chans
  322. }
  323.  
  324. proc msg_massop {nick uhost hand rest} {
  325. global botnick cmdchnlg
  326. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  327. set chan [lindex $rest 0]
  328. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick mop <#channel>" ; return 0}
  329. set massopnick [chanlist $chan]
  330. if {![string match "#*" $chan]} {set chan "#$chan"}
  331. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  332. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  333. set massopnicks "" ; set gotop 0
  334. foreach x $massopnick {
  335. if {(![isop $x $chan]) && (![onchansplit $x $chan]) && (![isbotnick $x])} {
  336. if {$gotop < 6} {append massopnicks " $x" ; set gotop [expr $gotop + 1]}
  337. if {$gotop == 6} {
  338. set gotop 0
  339. if {$massopnicks != ""} {
  340. putquick "MODE $chan +oooooo $massopnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! MassOp on channel: $chan by: $nick."
  341. set massopnicks "" ; append massopnicks " $x" ; set gotop 1
  342. }
  343. }
  344. }
  345. }
  346. if {$massopnicks != ""} {putquick "MODE $chan +oooooo $massopnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! MassOp on channel: $chan by: $nick."} ; return 0
  347. }
  348.  
  349. proc pub_massop {nick uhost hand chan rest} {
  350. global CHPRM botnick cmdchnlg
  351. set channel [lindex $rest 0]
  352. if {$channel == ""} {set channel $chan} else {if {![string match "#*" $channel]} {set channel "#$channel"}}
  353. msg_massop $nick $uhost $hand $channel
  354. }
  355.  
  356. proc msg_massdeop {nick uhost hand rest} {
  357. global botnick cmdchnlg
  358. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  359. set chan [lindex $rest 0]
  360. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick mdeop <#channel>" ; return 0}
  361. set massdeopnick [chanlist $chan]
  362. if {![string match "#*" $chan]} {set chan "#$chan"}
  363. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  364. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  365. set massdeopnicks "" ; set ownicks "" ; set gotdeop 0
  366. foreach x $massdeopnick {
  367. if {([isop $x $chan]) && (![onchansplit $x $chan]) && (![isbotnick $x])} {
  368. if {$gotdeop < 6} {if {[matchattr [nick2hand $x $chan] m]} {append ownicks " $x"} else {append massdeopnicks " $x" ; set gotdeop [expr $gotdeop + 1]}}
  369. if {$gotdeop == 6} {
  370. set gotdeop 0
  371. if {$massdeopnicks != ""} {
  372. putquick "MODE $chan -oooooo $massdeopnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Mass DeOp on channel: $chan by: $nick."
  373. set massdeopnicks "" ; append massdeopnicks " $x" ; set gotdeop 1
  374. }
  375. }
  376. }
  377. }
  378. if {$ownicks != ""} {putquick "NOTICE $nick :$cmdchnlg $ownicks are my \[Master(s)\], and will I will not DeOp them on channel: $chan."}
  379. if {$massdeopnicks != ""} {putquick "MODE $chan -oooooo $massdeopnicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Mass DeOp on channel: $chan by: $nick."} ; return 0
  380. }
  381.  
  382. proc pub_massdeop {nick uhost hand chan rest} {
  383. global CHPRM botnick cmdchnlg
  384. set channel [lindex $rest 0]
  385. if {$channel == ""} {set channel $chan} else {if {![string match "#*" $channel]} {set channel "#$channel"}}
  386. msg_massdeop $nick $uhost $hand $channel
  387. }
  388.  
  389. proc msg_pois {nick uhost hand rest} {
  390. global botnick cmdchnlg
  391. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  392. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  393. set chan [lindex $rest 0] ; set vonick [lrange $rest 1 end]
  394. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick voice <#channel> <nickname(s)>" ; return 0}
  395. if {![string match "#*" $chan]} {set chan "#$chan"}
  396. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  397. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  398. if {$vonick == ""} {
  399. if {[isvoice $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are already Voiced on channel: $chan." ; return 0}
  400. if {![onchan $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are not on channel: $chan." ; return 0}
  401. putquick "MODE $chan +v $nick" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Voice: $nick on channel: $chan." ; return 0
  402. }
  403. set vonicks "" ; set gvonicks "" ; set nonenicks "" ; set gotvoiced 0
  404. foreach x $vonick {
  405. if {(![onchansplit $x $chan]) && (![isbotnick $x])} {
  406. if {[string toupper $x] == "ME"} {set x $nick}
  407. if {$gotvoiced < 6} {if {[isvoice $x $chan]} {append gvonicks " $x"} else {if {![onchan $x $chan]} {append nonenicks " $x"} else {append vonicks " $x" ; set gotvoiced [expr $gotvoiced + 1]}}}
  408. if {$gotvoiced == 6} {
  409. set gotvoiced 0
  410. if {$vonicks != ""} {
  411. putquick "MODE $chan +vvvvvv $vonicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Voice: $vonicks on channel: $chan."
  412. set vonicks "" ; append vonicks " $x" ; set gotvoiced 1
  413. }
  414. }
  415. }
  416. }
  417. if {$nonenicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nonenicks is not on channel: $chan."}
  418. if {$gvonicks != ""} {putquick "NOTICE $nick :$cmdchnlg $gvonicks already Voiced on channel: $chan."}
  419. if {$vonicks != ""} {putquick "MODE $chan +vvvvvv $vonicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Voice: $vonicks on channel: $chan."} ; return 0
  420. }
  421.  
  422. proc pub_pois {nick uhost hand chan rest} {
  423. global CHPRM botnick cmdchnlg
  424. set chans "" ; set channel [lindex $rest 0]
  425. if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}
  426. msg_pois $nick $uhost $hand $chans
  427. }
  428.  
  429. proc msg_depois {nick uhost hand rest} {
  430. global botnick cmdchnlg
  431. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  432. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  433. set chan [lindex $rest 0] ; set dvonick [lrange $rest 1 end]
  434. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick devoice <#channel> <nickname(s)>" ; return 0}
  435. if {![string match "#*" $chan]} {set chan "#$chan"}
  436. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  437. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  438. if {$dvonick == ""} {
  439. if {![isvoice $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are already DeVoiced on channel: $chan." ; return 0}
  440. if {![onchan $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are not on channel: $chan." ; return 0}
  441. putquick "MODE $chan -v $nick" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! DeVoice: $nick on channel: $chan." ; return 0
  442. }
  443. set dvonicks "" ; set gdvonicks "" ; set nonenicks "" ; set devoiced 0
  444. foreach x $dvonick {
  445. if {(![onchansplit $x $chan]) && (![isbotnick $x])} {
  446. if {[string toupper $x] == "ME"} {set x $nick}
  447. if {$devoiced < 6} {if {![isvoice $x $chan]} {append gdvonicks " $x"} else {if {![onchan $x $chan]} {append nonenicks " $x"} else {append dvonicks " $x" ; set devoiced [expr $devoiced + 1]}}}
  448. if {$devoiced == 6} {
  449. set devoiced 0
  450. if {$dvonicks != ""} {
  451. putquick "MODE $chan -vvvvvv $dvonicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! DeVoice: $dvonicks on channel: $chan."
  452. set dvonicks "" ; append dvonicks " $x" ; set devoiced 1
  453. }
  454. }
  455. }
  456. }
  457. if {$nonenicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nonenicks is not on channel: $chan."}
  458. if {$gdvonicks != ""} {putquick "NOTICE $nick :$cmdchnlg $gdvonicks are not Voiced on channel: $chan."}
  459. if {$dvonicks != ""} {putquick "MODE $chan -vvvvvv $dvonicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! DeVoice: $dvonicks on channel: $chan."} ; return 0
  460. }
  461.  
  462. proc pub_depois {nick uhost hand chan rest} {
  463. global CHPRM botnick cmdchnlg
  464. set chans "" ; set channel [lindex $rest 0]
  465. if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}
  466. msg_depois $nick $uhost $hand $chans
  467. }
  468.  
  469. proc msg_massvo {nick uhost hand rest} {
  470. global botnick cmdchnlg
  471. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  472. set chan [lindex $rest 0]
  473. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick mvoice <#channel>" ; return 0}
  474. set massvonick [chanlist $chan]
  475. if {![string match "#*" $chan]} {set chan "#$chan"}
  476. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  477. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  478. set massvonicks "" ; set gmvoiced 0
  479. foreach x $massvonick {
  480. if {(![isvoice $x $chan]) && (![onchansplit $x $chan]) && (![isbotnick $x])} {
  481. if {$gmvoiced < 6} {append massvonicks " $x" ; set gmvoiced [expr $gmvoiced + 1]}
  482. if {$gmvoiced == 6} {
  483. set gmvoiced 0
  484. if {$massvonicks != ""} {
  485. putquick "MODE $chan +vvvvvv $massvonicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Mass Voice on channel: $chan by: $nick."
  486. set massvonicks "" ; append massvonicks " $x" ; set gmvoiced 1
  487. }
  488. }
  489. }
  490. }
  491. if {$massvonicks != ""} {putquick "MODE $chan +vvvvvv $massvonicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Mass Voice on channel: $chan by: $nick."} ; return 0
  492. }
  493.  
  494. proc pub_massvo {nick uhost hand chan rest} {
  495. global CHPRM botnick cmdchnlg
  496. set channel [lindex $rest 0]
  497. if {$channel == ""} {set channel $chan} else {if {![string match "#*" $channel]} {set channel "#$channel"}}
  498. msg_massvo $nick $uhost $hand $channel
  499. }
  500.  
  501. proc msg_massdevo {nick uhost hand rest} {
  502. global botnick cmdchnlg
  503. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  504. set chan [lindex $rest 0]
  505. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick mdevo <#channel>" ; return 0}
  506. set massdevonick [chanlist $chan]
  507. if {![string match "#*" $chan]} {set chan "#$chan"}
  508. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  509. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  510. set massdevonicks "" ; set gmdvoice 0
  511. foreach x $massdevonick {
  512. if {([isvoice $x $chan]) && (![onchansplit $x $chan]) && (![isbotnick $x])} {
  513. if {$gmdvoice < 6} {append massdevonicks " $x" ; set gmdvoice [expr $gmdvoice + 1]}
  514. if {$gmdvoice == 6} {
  515. set gmdvoice 0
  516. if {$massdevonicks != ""} {
  517. putquick "MODE $chan -vvvvvv $massdevonicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Mass DeVoice on channel: $chan by: $nick."
  518. set massdevonicks "" ; append massdevonicks " $x" ; set gmdvoice 1
  519. }
  520. }
  521. }
  522. }
  523. if {$massdevonicks != ""} {putquick "MODE $chan -vvvvvv $massdevonicks" ; putcmdlog "$cmdchnlg <<$nick>> !$hand! Mass DeVoice on channel: $chan by: $nick."} ; return 0
  524. }
  525.  
  526. proc pub_massdevo {nick uhost hand chan rest} {
  527. global CHPRM botnick cmdchnlg
  528. set channel [lindex $rest 0]
  529. if {$channel == ""} {set channel $chan} else {if {![string match "#*" $channel]} {set channel "#$channel"}}
  530. msg_massdevo $nick $uhost $hand $channel
  531. }
  532.  
  533. proc msg_tendang {nick uhost hand rest} {
  534. global botnick cmdchnlg
  535. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  536. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  537. set chan [lindex $rest 0] ; set knick [lrange $rest 1 end]
  538. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick kick <#channel> <nickname(s)> \[!reason\]" ; return 0}
  539. if {![string match "#*" $chan]} {set chan "#$chan"}
  540. if {$knick == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick kick $chan <nickname(s)> \[!reason\]" ; return 0}
  541. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  542. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  543. set knicks "" ; set ownicks "" ; set nonenicks "" ; set reason ""
  544. foreach x $knick {
  545. if {(![onchansplit $x $chan]) && (![isbotnick $x])} {
  546. if {[string match "!*" $x]} {set reason "4$cmdchnlg $x"} else {if {[matchattr [nick2hand $x $chan] m]} {append ownicks " $x"} else {if {![onchan $x $chan]} {append nonenicks " $x"} else {append knicks "$x,"}}}
  547. }
  548. }
  549. if {$nonenicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nonenicks is not on channel: $chan."}
  550. if {$ownicks != ""} {putquick "NOTICE $nick :$cmdchnlg $ownicks are my \[Master(s)\], and will I will not Kick them from channel: $chan."}
  551. if {$knicks != ""} {
  552. if {$reason == ""} {set reason "4$cmdchnlg Requested by: $nick"} ; putkick $chan $knicks $reason
  553. putcmdlog "$cmdchnlg <<$nick>> !$hand! Kick: ${knicks} from channel: $chan. Reason: $reason."
  554. } ; return 0
  555. }
  556.  
  557. proc pub_tendang {nick uhost hand chan rest} {
  558. global CHPRM botnick cmdchnlg
  559. set chans "" ; set channel [lindex $rest 0]
  560. if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}
  561. set knicks [lindex $chans 1]
  562. if {$knicks == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}kick $chan <nickname(s)> \[!reason\]" ; return 0}
  563. msg_tendang $nick $uhost $hand $chans
  564. }
  565.  
  566. proc msg_mtendang {nick uhost hand rest} {
  567. global botnick cmdchnlg
  568. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  569. set chan [lindex $rest 0]
  570. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick mkick <#channel> \[!reason\]" ; return 0}
  571. if {![string match "#*" $chan]} {set chan "#$chan"}
  572. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  573. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  574. set knick [chanlist $chan]
  575. set knicks "" ; set ownicks "" ; set reason ""
  576. foreach x $knick {
  577. if {(![onchansplit $x $chan]) && (![isbotnick $x])} {
  578. if {[string match "!*" $x]} {set reason "4$cmdchnlg $x"} else {if {[matchattr [nick2hand $x $chan] m]} {append ownicks " $x"} else {append knicks "$x,"}}
  579. }
  580. }
  581. if {$ownicks != ""} {putquick "NOTICE $nick :$cmdchnlg $ownicks are my \[Master(s)\], and will I will not Kick them from channel: $chan."}
  582. if {$knicks != ""} {
  583. if {$reason == ""} {set reason "4$cmdchnlg Mass Kick by: $nick"} ; putkick $chan $knicks $reason
  584. putcmdlog "$cmdchnlg <<$nick>> !$hand! Mass Kick on channel: $chan. Reason: $reason."
  585. } ; return 0
  586. }
  587.  
  588. proc pub_mtendang {nick uhost hand chan rest} {
  589. global CHPRM botnick cmdchnlg
  590. set chans "" ; set channel [lindex $rest 0]
  591. if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}
  592. msg_mtendang $nick $uhost $hand $chans
  593. }
  594.  
  595. proc msg_+ban {nick uhost hand rest} {
  596. global botnick gbantime cmdchnlg
  597. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  598. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  599. set chan [lindex $rest 0]
  600. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick +ban <#channel> <nickname/hostname> \[ban time (minute(s))\] \[reason\]" ; return 0}
  601. if {![string match "#*" $chan]} {set chan "#$chan"}
  602. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  603. set rest [lrange $rest 1 end]
  604. if {$rest == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick +ban <#channel> <nickname/hostname> \[ban time (minute(s))\] \[reason\]" ; return 0}
  605. set bntime [lindex $rest 1] ; set reason [lrange $rest 2 end]
  606. set bntime [string trim $bntime "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+|~,./;'<>?:{}"]
  607. if {$bntime == ""} {if {$gbantime <= 0} {set gbantime 15} ; set bntime $gbantime}
  608. if {$reason == ""} {set reason "4$cmdchnlg Requested by: $nick"}
  609. set bannick [lindex $rest 0]
  610. if {[string match "*@*" $bannick]} {
  611. set host $bannick ; set banhost $host ; set banhand $host
  612. } else {
  613. if {![onchan $bannick $chan]} {putquick "NOTICE $nick :$cmdchnlg $bannick is not on channel: $chan." ; return 0
  614. } else {set host [getchanhost $bannick $chan] ; set banhost *!*@[lindex [split $host @] 1]}
  615. set banhand [nick2hand $bannick $chan]
  616. }
  617. if {[string tolower $bannick] == [string tolower $botnick]} {putquick "NOTICE $nick :$cmdchnlg I will not ban on myself." ; return 0}
  618. if {[matchattr $banhand f]} {putquick "NOTICE $nick :$cmdchnlg I will not place ban on $bannick coz a hostmask of this user is included in my user list." ; return 0}
  619. foreach x [userlist] {
  620. if {[string match *$x* $banhost]} {putquick "NOTICE $nick :$cmdchnlg I will not place ban on $bannick coz this hostmask belongs to me or one of my users." ; return 0}
  621. if {[getchanhost $x $chan] != ""} {
  622. set rhostmem [lindex [split [getchanhost $x $chan] @] 1] ; set rhostban [string trim [lindex [split $banhost @] 1] "\*\."]
  623. set lhostmem [lindex [split [getchanhost $x $chan] @] 0] ; set lhostban [string trim [lindex [split $banhost @] 0] "\*\!\."]
  624. if {[string match *$rhostban* $rhostmem] && [string match *$lhostban* $lhostmem]} {putquick "NOTICE $nick :$cmdchnlg I will not place ban on $bannick coz this hostmask belongs to me or one of my users." ; return 0}
  625. }
  626. }
  627. if {[ischanban $banhost $chan]} {putquick "NOTICE $nick :$cmdchnlg A local ban already exist on channel: $chan for: $banhost" ; return 0}
  628. putquick "NOTICE $nick :$cmdchnlg Creating new ban on channel: $chan for: $banhost"
  629. newchanban $chan $banhost $hand $reason $bntime
  630. set bmembers [chanlist $chan]
  631. foreach banmember $bmembers {
  632. set bselectedhost [getchanhost $banmember $chan]
  633. set ubanhost *!*@[lindex [split $bselectedhost @] 1]
  634. if {$ubanhost == $banhost} {putkick $chan $banmember $reason}
  635. }
  636. putcmdlog "$cmdchnlg <<$nick>> !$hand! ($chan) +ban $host $bntime $reason" ; return 0
  637. }
  638.  
  639. proc pub_+ban {nick uhost hand chan rest} {
  640. global CHPRM botnick cmdchnlg
  641. set chans "" ; set channel [lindex $rest 0]
  642. if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}
  643. set bnicks [lindex $chans 1]
  644. if {$bnicks == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}+ban \[#channel\] <nickname/hostname> \[ban time (minute(s))\] \[reason\]" ; return 0}
  645. msg_+ban $nick $uhost $hand $chans
  646. }
  647.  
  648. proc msg_-ban {nick uhost hand rest} {
  649. global botnick banlist cmdchnlg
  650. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  651. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  652. set chan [lindex $rest 0]
  653. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick -ban <#channel> <nickname/hostname>" ; return 0}
  654. if {![string match "#*" $chan]} {set chan "#$chan"}
  655. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  656. set rest [lrange $rest 1 end]
  657. if {$rest == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick -ban <#channel> <nickname/hostname>" ; return 0}
  658. if {![string match "*@*" $rest]} {
  659. if {![onchan $rest $chan]} {putquick "NOTICE $nick :$cmdchnlg $rest is not on channel: $chan." ; return 0
  660. } else {set rest [getchanhost $rest $chan] ; set rest *!*@[lindex [split $rest @] 1]}
  661. }
  662. if {[string match *$rest* [lrange [banlist $chan] 0 end]]} {
  663. putquick "NOTICE $nick :$cmdchnlg Releasing current ban: $rest on channel: $chan"
  664. killchanban $chan $rest
  665. } else {
  666. putquick "NOTICE $nick :$cmdchnlg There are no Bans for: $rest on channel: $chan. Perhaps it was a Global Ban." ; return 0
  667. }
  668. putcmdlog "$cmdchnlg <<$nick>> !$hand! ($chan) -ban $rest" ; return 0
  669. }
  670.  
  671. proc pub_-ban {nick uhost hand chan rest} {
  672. global CHPRM botnick cmdchnlg
  673. set chans "" ; set channel [lindex $rest 0]
  674. if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}
  675. set bnicks [lindex $chans 1]
  676. if {$bnicks == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}-ban \[#channel\] <nickname/hostname>" ; return 0}
  677. msg_-ban $nick $uhost $hand $chans
  678. }
  679.  
  680. proc msg_+gban {nick uhost hand rest} {
  681. global botnick gbantime cmdchnlg
  682. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  683. set rest [lindex $rest 0]
  684. if {[string match "#*" $rest]} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick +gban <nickname/hostname> \[ban time (minute(s))\] \[reason\]" ; return 0}
  685. if {$rest == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick +gban <nickname/hostname> \[ban time (minute(s))\] \[reason\]" ; return 0}
  686. set bntime [lindex $rest 1] ; set reason [lrange $rest 2 end]
  687. set bntime [string trim $bntime "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+|~,./;'<>?:{}"]
  688. if {$bntime == ""} {if {$gbantime <= 0} {set gbantime 15} ; set bntime $gbantime}
  689. if {$reason == ""} {set reason "4$cmdchnlg \[GLOBAL Ban\] Requested by: $nick"}
  690. set bannick [lindex $rest 0]
  691. if {[string match "*@*" $bannick]} {set host $bannick ; set banhost $host ; set banhand $host} else {set host "" ; set banhost "" ; set banhand ""}
  692. foreach x [channels] {
  693. set chan $x
  694. if {[onchan $bannick $chan]} {if {$host == "" || $banhost == "" || $bannick == ""} {set host [getchanhost $bannick $chan] ; set banhost *!*@[lindex [split $host @] 1] ; set banhand [nick2hand $bannick $chan]}}
  695. }
  696. if {$host == "" || $banhost == "" || $banhand == ""} {putquick "NOTICE $nick :$cmdchnlg $bannick is not on any of my channel(s)." ; return 0}
  697. if {[string tolower $bannick] == [string tolower $botnick]} {putquick "NOTICE $nick :$cmdchnlg I will not ban on myself." ; return 0}
  698. if {[matchattr $banhand f]} {putquick "NOTICE $nick :$cmdchnlg I will not place ban on $bannick coz a hostmask of this user is included in my user list." ; return 0}
  699. foreach x [userlist] {
  700. if {[string match *$x* $banhost]} {putquick "NOTICE $nick :$cmdchnlg I will not place ban on $bannick coz this hostmask belongs to me or one of my users." ; return 0}
  701. if {[getchanhost $x $chan] != ""} {
  702. set rhostmem [lindex [split [getchanhost $x $chan] @] 1] ; set rhostban [string trim [lindex [split $banhost @] 1] "\*\."]
  703. set lhostmem [lindex [split [getchanhost $x $chan] @] 0] ; set lhostban [string trim [lindex [split $banhost @] 0] "\*\!\."]
  704. if {[string match *$rhostban* $rhostmem] && [string match *$lhostban* $lhostmem]} {putquick "NOTICE $nick :$cmdchnlg I will not place ban on $bannick coz this hostmask belongs to me or one of my users." ; return 0}
  705. }
  706. }
  707. if {[isban $banhost]} {putquick "NOTICE $nick :$cmdchnlg A Global ban already exist for: $banhost" ; return 0}
  708. putquick "NOTICE $nick :$cmdchnlg Creating new Global ban for: $banhost"
  709. newban $banhost $hand $reason $bntime
  710. putcmdlog "$cmdchnlg <<$nick>> !$hand! +gban $host $bntime $reason" ; return 0
  711. }
  712.  
  713. proc pub_+gban {nick uhost hand chan rest} {
  714. global CHPRM botnick cmdchnlg
  715. set banhost [lindex $rest 0]
  716. if {[string match "#*" $banhost]} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}+gban <nickname/hostname> \[ban time (minute(s))\] \[reason\]" ; return 0}
  717. if {$banhost == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}+gban <nickname/hostname> \[ban time (minute(s))\] \[reason\]" ; return 0}
  718. msg_+gban $nick $uhost $hand $banhost
  719. }
  720.  
  721. proc msg_-gban {nick uhost hand rest} {
  722. global botnick cmdchnlg
  723. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  724. set rest [lindex $rest 0]
  725. if {[string match "#*" $rest]} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick -gban <nickname/hostname>" ; return 0}
  726. if {$rest == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick -gban <nickname/hostname>" ; return 0}
  727. if {![isban $rest]} {putquick "NOTICE $nick :$cmdchnlg There are no Global Bans for: $rest." ; return 0}
  728. putquick "NOTICE $nick :$cmdchnlg Releasing Global ban for: $rest"
  729. killban $rest ; regsub -all " " [channels] ", " chans
  730. putcmdlog "$cmdchnlg <<$nick>> !$hand! -gban $rest" ; return 0
  731. }
  732.  
  733. proc pub_-gban {nick uhost hand chan rest} {
  734. global CHPRM botnick cmdchnlg
  735. set banhost [lindex $rest 0]
  736. if {[string match "#*" $banhost]} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}-gban <nickname/hostname>" ; return 0}
  737. if {$banhost == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}-gban <nickname/hostname>" ; return 0}
  738. msg_-gban $nick $uhost $hand $banhost
  739. }
  740.  
  741. proc msg_infoban {nick uhost hand rest} {
  742. global botnick cmdchnlg
  743. set chan [lindex $rest 0]
  744. if {$chan == "#" || $chan == ""} {if {[string toupper $chan] != "GLOBAL"} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick baninfo <#channel|GLOBAL>" ; return 0}}
  745. if {[string toupper $chan] != "GLOBAL"} {if {![string match "#*" $chan]} {set chan "#$chan"}}
  746. set banlistchan ""
  747. if {[string toupper $chan] != "GLOBAL"} {
  748. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  749. foreach x [banlist $chan] {set banlister [lindex $x 0] ; set banlistchan "$banlistchan $banlister"}
  750. if {[banlist $chan] == ""} {set banlistchan "empty"}
  751. putquick "NOTICE $nick :$cmdchnlg Ban records for channel: $chan: $banlistchan."
  752. putcmdlog "$cmdchnlg <<$nick>> !$hand! List Bans on: $banlistchan." ; return 0
  753. }
  754. set banlist ""
  755. if {[string toupper $chan] == "GLOBAL"} {
  756. foreach x [banlist] {set banlisting [lindex $x 0] ; set banlist "$banlist $banlisting"}
  757. if {$banlist == ""} {set banlist "empty"}
  758. putquick "NOTICE $nick :$cmdchnlg Global Ban records: $banlist."
  759. putcmdlog "$cmdchnlg <<$nick>> !$hand! List Global Bans." ; return 0
  760. }
  761. }
  762.  
  763. proc pub_infoban {nick uhost hand chan rest} {
  764. global CHPRM botnick cmdchnlg
  765. set channel [lindex $rest 0]
  766. if {$channel == "" && [string toupper $channel] != "GLOBAL"} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}baninfo <#channel|GLOBAL>" ; return 0}
  767. msg_infoban $nick $uhost $hand $channel
  768. }
  769.  
  770. proc msg_lepasban {nick uhost hand rest} {
  771. global botnick cmdchnlg
  772. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  773. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  774. set chan [lindex $rest 0]
  775. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick rlbans <#channel>" ; return 0}
  776. if {![string match "#*" $chan]} {set chan "#$chan"}
  777. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  778. if {![botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I am not an Operator on channel: $chan. Your command cannot be perform." ; return 0}
  779. set ban "" ; foreach ban [banlist $chan] {putquick "MODE $chan +b [lindex $ban 0]"} ; putquick "MODE $chan +b"
  780. putquick "NOTICE $nick :$cmdchnlg Releasing all Bans on channel: $chan. Updating Ban records."
  781. putcmdlog "$cmdchnlg <<$nick>> !$hand! Release Bans on: $chan." ; return 0
  782. }
  783.  
  784. proc pub_lepasban {nick uhost hand chan rest} {
  785. global CHPRM botnick cmdchnlg
  786. set channel [lindex $rest 0]
  787. if {$channel == ""} {set channel $chan} else {if {![string match "#*" $channel]} {set channel "#$channel"}}
  788. msg_lepasban $nick $uhost $hand $channel
  789. }
  790.  
  791. proc msg_inpait {nick uhost hand rest} {
  792. global botnick cmdchnlg
  793. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  794. if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth <password>\] to do so." ; return 0}
  795. set chan [lindex $rest 0] ; set inick [lindex $rest 1]
  796. if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick invite <#channel> <nickname>" ; return 0}
  797. if {![string match "#*" $chan]} {set chan "#$chan"}
  798. if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}
  799. if {$inick == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick invite $chan <nickname>" ; return 0}
  800. if {[onchan $inick $chan]} {putquick "NOTICE $nick :$cmdchnlg $inick already on channel: $chan. Invites are not needed." ; return 0}
  801. putquick "INVITE $inick $chan"
  802. putquick "NOTICE $nick :$cmdchnlg $inick are now invited to join channel: $chan."
  803. putcmdlog "$cmdchnlg <<$nick>> !$hand! Inviting: $inick to channel: $chan." ; return 0
  804. }
  805.  
  806. proc pub_inpait {nick uhost hand chan rest} {
  807. global CHPRM botnick cmdchnlg
  808. set chans "" ; set channel [lindex $rest 0]
  809. if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}
  810. set inicks [lindex $chans 1]
  811. if {$inicks == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}invite $channel <nickname>" ; return 0}
  812. msg_inpait $nick $uhost $hand $chans
  813. }
  814.  
  815. proc msg_chanhelp {nick uhost hand rest} {
  816. global CHPRM botnick cmdchnlg
  817. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  818. set chlptype [string toupper [lindex $rest 0]]
  819. if {$chlptype == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick chanhelp PUB or /msg $botnick chanhelp MSG" ; return 0}
  820. if {[string toupper $chlptype] != "PUB" && [string toupper $chlptype] != "MSG"} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick chanhelp PUB or /msg $botnick chanhelp MSG" ; return 0}
  821. putquick "NOTICE $nick :$cmdchnlg Channel Control Commands $cmdchnlg"
  822. putquick "NOTICE $nick : "
  823. putquick "NOTICE $nick :NOTES:"
  824. putquick "NOTICE $nick :<> sign means you MUST fill the value."
  825. putquick "NOTICE $nick :\[\] sign means you can either fill the value or leave it blank."
  826. putquick "NOTICE $nick :| sign means you MUST choose one between value placed on the left side of | sign, or on the right side."
  827. putquick "NOTICE $nick : "
  828. if {$chlptype == "PUB"} {
  829. putquick "NOTICE $nick :Public Commands:"
  830. putquick "NOTICE $nick : "
  831. if {[matchattr $hand n]} {
  832. putquick "NOTICE $nick :${CHPRM}join <#channel> \[join-key\]"
  833. putquick "NOTICE $nick :${CHPRM}leave <#channel>"
  834. putquick "NOTICE $nick :${CHPRM}cycle \[#channel\]"
  835. }
  836. putquick "NOTICE $nick :${CHPRM}lock \[#channel\]"
  837. putquick "NOTICE $nick :${CHPRM}unlock \[#channel\]"
  838. putquick "NOTICE $nick :${CHPRM}cmode \[#channel\] <+/-modelocks>"
  839. putquick "NOTICE $nick :${CHPRM}up \[#channel\]"
  840. putquick "NOTICE $nick :${CHPRM}down \[#channel\]"
  841. putquick "NOTICE $nick :${CHPRM}op \[#channel\] <nickname(s)>"
  842. putquick "NOTICE $nick :${CHPRM}deop \[#channel\] <nickname(s)>"
  843. if {[matchattr $hand m]} {
  844. putquick "NOTICE $nick :${CHPRM}mop \[#channel\]"
  845. putquick "NOTICE $nick :${CHPRM}mdeop \[#channel\]"
  846. }
  847. putquick "NOTICE $nick :${CHPRM}voice \[#channel\] <nickname(s)>"
  848. putquick "NOTICE $nick :${CHPRM}devoice \[#channel\] <nickname(s)>"
  849. if {[matchattr $hand m]} {
  850. putquick "NOTICE $nick :${CHPRM}mvoice \[#channel\]"
  851. putquick "NOTICE $nick :${CHPRM}mdevo \[#channel\]"
  852. }
  853. putquick "NOTICE $nick :${CHPRM}kick \[#channel\] <nickname(s)> \[!reason\]"
  854. if {[matchattr $hand m]} {
  855. putquick "NOTICE $nick :${CHPRM}mkick \[#channel\] \[!reason\]"
  856. }
  857. putquick "NOTICE $nick :${CHPRM}+ban \[#channel\] <nickname/hostname> \[ban-time (minute(s))\] \[reason\]"
  858. putquick "NOTICE $nick :${CHPRM}-ban \[#channel\] <nickname/hostname>"
  859. if {[matchattr $hand m]} {
  860. putquick "NOTICE $nick :${CHPRM}+gban <nickname/hostname> \[ban-time (minute(s))\] \[reason\]"
  861. putquick "NOTICE $nick :${CHPRM}-gban <nickname/hostname>"
  862. }
  863. putquick "NOTICE $nick :${CHPRM}baninfo <#channel|GLOBAL>"
  864. putquick "NOTICE $nick :${CHPRM}rlbans \[#channel\]"
  865. putquick "NOTICE $nick :${CHPRM}invite \[#channel\] <nickname>"
  866. putquick "NOTICE $nick : "
  867. }
  868. if {$chlptype == "MSG"} {
  869. putquick "NOTICE $nick :MSG Commands:"
  870. putquick "NOTICE $nick : "
  871. if {[matchattr $hand n]} {
  872. putquick "NOTICE $nick :/msg $botnick join <#channel> \[join-key\]"
  873. putquick "NOTICE $nick :/msg $botnick leave <#channel>"
  874. putquick "NOTICE $nick :/msg $botnick cycle \[#channel\]"
  875. }
  876. putquick "NOTICE $nick :/msg $botnick lock <#channel>"
  877. putquick "NOTICE $nick :/msg $botnick unlock <#channel>"
  878. putquick "NOTICE $nick :/msg $botnick cmode <#channel> <+/-modelocks>"
  879. putquick "NOTICE $nick :/msg $botnick up <#channel>"
  880. putquick "NOTICE $nick :/msg $botnick down <#channel>"
  881. putquick "NOTICE $nick :/msg $botnick op <#channel> <nickname(s)>"
  882. putquick "NOTICE $nick :/msg $botnick deop <#channel> <nickname(s)>"
  883. if {[matchattr $hand m]} {
  884. putquick "NOTICE $nick :/msg $botnick mop <#channel>"
  885. putquick "NOTICE $nick :/msg $botnick mdeop <#channel>"
  886. }
  887. putquick "NOTICE $nick :/msg $botnick voice <#channel> <nickname(s)>"
  888. putquick "NOTICE $nick :/msg $botnick devoice <#channel> <nickname(s)>"
  889. if {[matchattr $hand m]} {
  890. putquick "NOTICE $nick :/msg $botnick mvoice <#channel>"
  891. putquick "NOTICE $nick :/msg $botnick mdevo <#channel>"
  892. }
  893. putquick "NOTICE $nick :/msg $botnick kick <#channel> <nickname(s)> \[!reason\]"
  894. if {[matchattr $hand m]} {
  895. putquick "NOTICE $nick :/msg $botnick mkick <#channel> \[!reason\]"
  896. }
  897. putquick "NOTICE $nick :/msg $botnick +ban <#channel> <nickname/hostname> \[ban-time (minute(s))\] \[reason\]"
  898. putquick "NOTICE $nick :/msg $botnick -ban <#channel> <nickname/hostname>"
  899. if {[matchattr $hand m]} {
  900. putquick "NOTICE $nick :/msg $botnick +gban <nickname/hostname> \[ban-time (minute(s))\] \[reason\]"
  901. putquick "NOTICE $nick :/msg $botnick -gban <nickname/hostname>"
  902. }
  903. putquick "NOTICE $nick :/msg $botnick baninfo <#channel|GLOBAL>"
  904. putquick "NOTICE $nick :/msg $botnick rlbans <#channel>"
  905. putquick "NOTICE $nick :/msg $botnick invite <#channel> <nickname>"
  906. putquick "NOTICE $nick : "
  907. }
  908. putquick "NOTICE $nick :Other Commands:"
  909. putquick "NOTICE $nick : "
  910. putquick "NOTICE $nick :${CHPRM}chanhelp PUB or ${CHPRM}chanhelp MSG"
  911. putquick "NOTICE $nick :/msg $botnick chanhelp PUB or /msg $botnick chanhelp MSG"
  912. putquick "NOTICE $nick : "
  913. putcmdlog "$cmdchnlg <<$nick>> !$hand! Channel Control Commands Help." ; return 0
  914. }
  915.  
  916. proc pub_chanhelp {nick uhost hand chan rest} {
  917. global CHPRM botnick cmdchnlg
  918. if {![matchattr $hand p]} {putquick "NOTICE $nick :$cmdchnlg You have +o privelage but you don't have +p, you need +p flag to set your password and authenticate before phrasing commands. Ask my owner/master to set that flag for you =)" ; return 0}
  919. set chlptype [string toupper [lindex $rest 0]]
  920. if {$chlptype == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}chanhelp PUB or ${CHPRM}chanhelp MSG" ; return 0}
  921. if {[string toupper $chlptype] != "PUB" && [string toupper $chlptype] != "MSG"} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}chanhelp PUB or ${CHPRM}chanhelp MSG" ; return 0}
  922. msg_chanhelp $nick $uhost $hand $chlptype
  923. }
  924.  
  925. # Set this to "1" if you like the script to be loaded.. and set it to "0" to unload.
  926. set cmdchanloaded 1
  927.  
  928. if {[info exist cmdchanloaded]} {
  929. if {${cmdchanloaded}} {
  930. bind pub n ${CHPRM}join pub_masuk
  931. bind msg n leave msg_cabut
  932. bind pub n ${CHPRM}leave pub_cabut
  933. bind msg n join msg_masuk
  934. bind pub n ${CHPRM}cycle pub_cycle
  935. bind msg n cycle msg_cycle
  936. bind pub o|o ${CHPRM}lock pub_konci
  937. bind msg o|o lock msg_konci
  938. bind pub o|o ${CHPRM}unlock pub_buka
  939. bind msg o|o unlock msg_buka
  940. bind pub o|o ${CHPRM}cmode pub_cmode
  941. bind msg o|o cmode msg_cmode
  942. bind pub o|o ${CHPRM}up pub_opbot
  943. bind msg o|o up msg_opbot
  944. bind pub o|o ${CHPRM}down pub_deopbot
  945. bind msg o|o down msg_deopbot
  946. bind pub o|o ${CHPRM}op pub_naekin
  947. bind msg o|o op msg_naekin
  948. bind pub o|o ${CHPRM}deop pub_turunin
  949. bind msg o|o deop msg_turunin
  950. bind pub m ${CHPRM}mop pub_massop
  951. bind msg m mop msg_massop
  952. bind pub m ${CHPRM}mdeop pub_massdeop
  953. bind msg m mdeop msg_massdeop
  954. bind pub o|o ${CHPRM}voice pub_pois
  955. bind msg o|o voice msg_pois
  956. bind pub o|o ${CHPRM}devoice pub_depois
  957. bind msg o|o devoice msg_depois
  958. bind pub m ${CHPRM}mvoice pub_massvo
  959. bind msg m mvoice msg_massvo
  960. bind pub m ${CHPRM}mdevo pub_massdevo
  961. bind msg m mdevo msg_massdevo
  962. bind pub o|o ${CHPRM}kick pub_tendang
  963. bind msg o|o kick msg_tendang
  964. bind pub m ${CHPRM}mkick pub_mtendang
  965. bind msg m mkick msg_mtendang
  966. bind pub o|o ${CHPRM}+ban pub_+ban
  967. bind msg o|o +ban msg_+ban
  968. bind pub o|o ${CHPRM}-ban pub_-ban
  969. bind msg o|o -ban msg_-ban
  970. bind pub m ${CHPRM}+gban pub_+gban
  971. bind msg m +gban msg_+gban
  972. bind pub m ${CHPRM}-gban pub_-gban
  973. bind msg m -gban msg_-gban
  974. bind pub o|o ${CHPRM}baninfo pub_infoban
  975. bind msg o|o baninfo msg_infoban
  976. bind pub o|o ${CHPRM}rlbans pub_lepasban
  977. bind msg o|o rlbans msg_lepasban
  978. bind pub o|o ${CHPRM}invite pub_inpait
  979. bind msg o|o invite msg_inpait
  980. bind pub o|o ${CHPRM}chanhelp pub_chanhelp
  981. bind msg o|o chanhelp msg_chanhelp
  982. } else {
  983. unbind pub n ${CHPRM}join pub_masuk
  984. unbind msg n leave msg_cabut
  985. unbind pub n ${CHPRM}leave pub_cabut
  986. unbind msg n join msg_masuk
  987. unbind pub n ${CHPRM}cycle pub_cycle
  988. unbind msg n cycle msg_cycle
  989. unbind pub o|o ${CHPRM}lock pub_konci
  990. unbind msg o|o lock msg_konci
  991. unbind pub o|o ${CHPRM}unlock pub_buka
  992. unbind msg o|o unlock msg_buka
  993. unbind pub o|o ${CHPRM}cmode pub_cmode
  994. unbind msg o|o cmode msg_cmode
  995. unbind pub o|o ${CHPRM}up pub_opbot
  996. unbind msg o|o up msg_opbot
  997. unbind pub o|o ${CHPRM}down pub_deopbot
  998. unbind msg o|o down msg_deopbot
  999. unbind pub o|o ${CHPRM}op pub_naekin
  1000. unbind msg o|o op msg_naekin
  1001. unbind pub o|o ${CHPRM}deop pub_turunin
  1002. unbind msg o|o deop msg_turunin
  1003. unbind pub m ${CHPRM}mop pub_massop
  1004. unbind msg m mop msg_massop
  1005. unbind pub m ${CHPRM}mdeop pub_massdeop
  1006. unbind msg m mdeop msg_massdeop
  1007. unbind pub o|o ${CHPRM}voice pub_pois
  1008. unbind msg o|o voice msg_pois
  1009. unbind pub o|o ${CHPRM}devoice pub_depois
  1010. unbind msg o|o devoice msg_depois
  1011. unbind pub m ${CHPRM}mvoice pub_massvo
  1012. unbind msg m mvoice msg_massvo
  1013. unbind pub m ${CHPRM}mdevo pub_massdevo
  1014. unbind msg m mdevo msg_massdevo
  1015. unbind pub o|o ${CHPRM}kick pub_tendang
  1016. unbind msg o|o kick msg_tendang
  1017. unbind pub m ${CHPRM}mkick pub_mtendang
  1018. unbind msg m mkick msg_mtendang
  1019. unbind pub o|o ${CHPRM}+ban pub_+ban
  1020. unbind msg o|o +ban msg_+ban
  1021. unbind pub o|o ${CHPRM}-ban pub_-ban
  1022. unbind msg o|o -ban msg_-ban
  1023. unbind pub m ${CHPRM}+gban pub_+gban
  1024. unbind msg m +gban msg_+gban
  1025. unbind pub m ${CHPRM}-gban pub_-gban
  1026. unbind msg m -gban msg_-gban
  1027. unbind pub o|o ${CHPRM}baninfo pub_infoban
  1028. unbind msg o|o baninfo msg_infoban
  1029. unbind pub o|o ${CHPRM}rlbans pub_lepasban
  1030. unbind msg o|o rlbans msg_lepasban
  1031. unbind pub o|o ${CHPRM}invite pub_inpait
  1032. unbind msg o|o invite msg_inpait
  1033. unbind pub o|o ${CHPRM}chanhelp pub_chanhelp
  1034. unbind msg o|o chanhelp msg_chanhelp
  1035. }
  1036. putlog "*** ${cmdchnlg} Commands & Control, Channel Control. Loaded."
  1037. }
  1038.  
  1039. # End of - Commands & Control, Channel Control. (cmd_chan.tcl)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement