<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forum.eggheads.org/app.php/feed/topic/9065" />

	<title>egghelp/eggheads community</title>
	<subtitle>Discussion of eggdrop bots, shell accounts and tcl scripts.</subtitle>
	<link href="https://forum.eggheads.org/index.php" />
	<updated>2005-01-29T06:39:08-04:00</updated>

	<author><name><![CDATA[egghelp/eggheads community]]></name></author>
	<id>https://forum.eggheads.org/app.php/feed/topic/9065</id>

		<entry>
		<author><name><![CDATA[Sir_Fz]]></name></author>
		<updated>2005-01-29T06:39:08-04:00</updated>

		<published>2005-01-29T06:39:08-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=45929#p45929</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=45929#p45929"/>
		<title type="html"><![CDATA[cmd_chan.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=45929#p45929"><![CDATA[
Hi,<br><br>You need to either '.chattr &lt;your hand&gt; +Q' or use cmd_auth.tcl which should be used with this script for authing. If you want to be more secure, then use cmd_auth.tcl; it will remove your +Q flag when you quit, part, sign...etc<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3085">Sir_Fz</a> — Sat Jan 29, 2005 6:39 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[awyeah]]></name></author>
		<updated>2005-01-29T01:32:55-04:00</updated>

		<published>2005-01-29T01:32:55-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=45924#p45924</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=45924#p45924"/>
		<title type="html"><![CDATA[cmd_chan.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=45924#p45924"><![CDATA[
My best guess would be to contact the author, because not all of us like me have the time to go through such a long script.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=4875">awyeah</a> — Sat Jan 29, 2005 1:32 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[coolio2004]]></name></author>
		<updated>2005-01-29T00:20:35-04:00</updated>

		<published>2005-01-29T00:20:35-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=45921#p45921</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=45921#p45921"/>
		<title type="html"><![CDATA[cmd_chan.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=45921#p45921"><![CDATA[
i'd check if i could but cant coz im at work <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_sad.gif" width="15" height="15" alt=":(" title="Sad"><br>but i doubt i got that flag<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5904">coolio2004</a> — Sat Jan 29, 2005 12:20 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Alchera]]></name></author>
		<updated>2005-01-28T23:38:45-04:00</updated>

		<published>2005-01-28T23:38:45-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=45920#p45920</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=45920#p45920"/>
		<title type="html"><![CDATA[cmd_chan.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=45920#p45920"><![CDATA[
.. and do you have the Q flag?<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3646">Alchera</a> — Fri Jan 28, 2005 11:38 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[coolio2004]]></name></author>
		<updated>2005-01-28T17:37:12-04:00</updated>

		<published>2005-01-28T17:37:12-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=45917#p45917</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=45917#p45917"/>
		<title type="html"><![CDATA[cmd_chan.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=45917#p45917"><![CDATA[
im assuming that was what you were after? as you can see the first 10-15 lines which are for help doesn't state much/anything about password. ive tried my .user password also but its not accepting it.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5904">coolio2004</a> — Fri Jan 28, 2005 5:37 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[coolio2004]]></name></author>
		<updated>2005-01-28T17:34:58-04:00</updated>

		<published>2005-01-28T17:34:58-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=45916#p45916</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=45916#p45916"/>
		<title type="html"><![CDATA[cmd_chan.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=45916#p45916"><![CDATA[
# Begin - Commands &amp; Control, Channel Control. (cmd_chan.tcl)<br>#Designed &amp; Written by TCP-IP (<a href="mailto:Vicky@Vic.ky">Vicky@Vic.ky</a>), © April 1999<br>#Developed by Ninja_baby (<a href="mailto:Jaysee@Jaysee.Tv">Jaysee@Jaysee.Tv</a>), © March 2000<br><br># This script was made by TCP-IP in middle of 1999, I develop this script since he passes this script-<br># to me in middle of 2000. I made few changes, add some features, and fixed some bugs that were remain-<br># here in this script package.<br><br># This TCL contains some public / msg commands related to channel's stuffs.. such as to ban, kick, op-<br># deop, etc... simpy do /msg &lt;yourbotnick&gt; chanhelp or do `chanhelp in channel to see what commands-<br># did this script has.. I set 2 types of commands.. /msg commands and public (channel) commands.<br># NOTE: not much.. even almost has no DCC command stuffs here.. I will make the DCC commands very soon <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"><br>#       so please support <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"><br><br># Set this as your Public (channel) command character. For example: you set this to "!".. means you must-<br># type !mycommand in channel to activate public commands.<br>set CHPRM "`"<br><br># This is for network compatiblity (be sure your IRC network using SirvServces) with ChanServ arround.<br># I set this with DALnet's ChanServ's nickname.. you can set it according to your ChanServ's nickname-<br># in your IRC network <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"><br>set cmdsvrnick "<a href="mailto:ChanServ@services.dal.net">ChanServ@services.dal.net</a>"<br><br>if {[info exist ban-time]} {<br># Checking whenever the "ban-time" variable is exist on your bot conf file. (Default)<br>set gbantime ${ban-time}<br>} else {<br># Set this as global ban time.. this will be use when you trigger +ban / +gban command to ban ppl-<br># out of channel.. when you're not typing a ban time.. the bot will set the ban time according with-<br># what you set here.. set this variable in Minute(s) format.<br># Remember that if "ban-time" variable (which taken from your eggdrop.conf.dist file) already-<br># exist, you do not need to set the bantime from here, this script will automaticly add the-<br># variable from your bot conf file.<br>set gbantime 15<br>}<br><br># This is for your benefit hehe <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink">, you can either set your own LOGO here, your logo will appear-<br># when the bot notice you, or when it makes msgs/notices/kicks or scripts loading. So keep smiling-<br># and set this variable as you wish <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink">, you can either set this to "" to leave it blank.<br>set cmdchnlg "\[J-C\]:"<br><br>######### Please do not edit anything below unless you know what you are doing <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"> #########<br><br>proc msg_masuk {nick uhost hand rest} {<br>global botnick cmdchnlg<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0] ; set chankey [lindex $rest 1]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick join &lt;#channel&gt; \[join-key\]" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {[validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am already on $chan." ; return 0}<br>channel add $chan ; utimer 1 save<br>if {$chankey == ""} {putquick "NOTICE $nick :$cmdchnlg Joining myself to channel: $chan. Updating channel list." ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Join $chan." ; return 0}<br>putquick "JOIN $chan $chankey"<br>putquick "NOTICE $nick :$cmdchnlg Joining myself to channel: $chan with Join-key: $chankey. Updating channel list."<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Join $chan (Join-key: $chankey)." ; return 0<br>}<br><br>proc pub_masuk {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set channel [lindex $rest 0] ; if {$channel == "#" || $channel == ""} {putquick "NOTICE $nick :$cmdchnlg Command: \[${CHPRM}join &lt;#channel&gt; \[join-key\]\]" ; return 0}<br>msg_masuk $nick $uhost $hand $rest<br>}<br><br>proc msg_cabut {nick uhost hand rest} {<br>global botnick cmdchnlg<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick leave &lt;#channel&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>if {![isdynamic $chan]} {putquick "NOTICE $nick :$cmdchnlg I appologize, but I cannot part from $chan, coz' it is not a dynamic channel." ; return 0}<br>channel remove $chan ; utimer 1 save<br>putquick "NOTICE $nick :$cmdchnlg I am now leaving channel: $chan. Updating channel list."<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Leave $chan." ; return 0<br>}<br><br>proc pub_cabut {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set rest [lindex $rest 0] ; if {$rest == "#" || $rest == ""} {set rest $chan}<br>msg_cabut $nick $uhost $hand $rest<br>}<br><br>proc msg_cycle {nick uhost hand rest} {<br>global botnick cmdchnlg<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#"} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick cycle \[#channel\]" ; return 0}<br>if {$chan == ""} {set chan "ALL"<br>} 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}}}<br>if {$chan != "ALL"} {<br>putquick "PART $chan :$chan" ; putquick "JOIN $chan" ; putquick "NOTICE $nick :$cmdchnlg Cycling: $chan."<br>} else {<br>foreach pchan [channels] {<br>putquick "PART $pchan :Cycling" ; putquick "JOIN $pchan" ; putquick "NOTICE $nick :$cmdchnlg Cycling: $pchan."<br>}<br>} ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Cycle." ; return 0<br>}<br><br>proc pub_cycle {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; if {$rest == ""} {msg_cycle $nick $uhost $hand $chan} else {msg_cycle $nick $uhost $hand $rest}<br>}<br><br>proc msg_konci {nick uhost hand rest} {<br>global botnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick lock &lt;#channel&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>set currmode [getchanmode $chan] ; set lockmode ""<br>if {![string match "*m*" $currmode]} {append lockmode "m"}<br>if {![string match "*i*" $currmode]} {append lockmode "i"}<br>if {$lockmode == ""} {putquick "NOTICE $nick :$cmdchnlg Channel $chan already locked. I will not lock that channel twice." ; return 0}<br>putquick "MODE $chan $lockmode"<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Lock $chan." ; return 0<br>}<br><br>proc pub_konci {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set rest [lindex $rest 0] ; if {$rest == "#" || $rest == ""} {set rest $chan}<br>msg_konci $nick $uhost $hand $rest<br>}<br><br>proc msg_buka {nick uhost hand rest} {<br>global botnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick unlock &lt;#channel&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>set currmode [getchanmode $chan] ; set lockmode ""<br>if {[string match "*m*" $currmode]} {append lockmode "m"}<br>if {[string match "*i*" $currmode]} {append lockmode "i"}<br>if {$lockmode == ""} {putquick "NOTICE $nick :$cmdchnlg Channel $chan is not locked." ; return 0}<br>putquick "MODE $chan -$lockmode"<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Unlock $chan." ; return 0<br>}<br><br>proc pub_buka {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set rest [lindex $rest 0] ; if {$rest == "#" || $rest == ""} {set rest $chan}<br>msg_buka $nick $uhost $hand $rest<br>}<br><br>proc msg_cmode {nick uhost hand rest} {<br>global botnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0] ; set mlock [lrange $rest 1 end]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick cmode &lt;#channel&gt; &lt;+/-modelocks&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {$mlock == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick cmode $chan &lt;+/-modelocks&gt;" ; return 0}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>putquick "MODE $chan $mlock"<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Mode change: $rest on channel: $chan." ; return 0<br>}<br><br>proc pub_cmode {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; set channel [lindex $rest 0]<br>if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}<br>set cmodes [lindex $chans 1]<br>if {$cmodes == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}cmode \[#channel\] &lt;+/-modelocks&gt;" ; return 0}<br>msg_cmode $nick $uhost $hand $chans<br>}<br><br>proc msg_opbot {nick uhost hand rest} {<br>global CHPRM botnick cmdsvrnick cmdchnlg<br>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}<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick up &lt;#channel&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>if {[botisop $chan]} {putquick "NOTICE $nick :$cmdchnlg I am already Opped on channel: $chan." ; return 0}<br>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}<br>putquick "PRIVMSG $cmdsvrnick :op $chan $botnick"<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Self-Op on channel: $chan." ; return 0<br>}<br><br>proc pub_opbot {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set rest [lindex $rest 0] ; if {$rest == "#" || $rest == ""} {set rest $chan}<br>msg_opbot $nick $uhost $hand $rest<br>}<br><br>proc msg_deopbot {nick uhost hand rest} {<br>global CHPRM botnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick down &lt;#channel&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>putquick "MODE $chan +v-o $botnick $botnick"<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Self-DeOp on channel: $chan." ; return 0<br>}<br><br>proc pub_deopbot {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set rest [lindex $rest 0] ; if {$rest == "#" || $rest == ""} {set rest $chan}<br>msg_deopbot $nick $uhost $hand $rest<br>}<br><br>proc msg_naekin {nick uhost hand rest} {<br>global botnick cmdsvrnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0] ; set opnick [lrange $rest 1 end]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick op &lt;#channel&gt; &lt;nickname(s)&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>if {$opnick == ""} {<br>if {[isop $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are already Opped on channel: $chan." ; return 0}<br>if {![botisop $chan]} {<br>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}<br>putquick "PRIVMSG $cmdsvrnick :op $chan $nick" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! $cmdsvrnick Op: $nick on channel: $chan." ; return 0<br>}<br>if {![onchan $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are not on channel: $chan." ; return 0}<br>putquick "MODE $chan +o $nick" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Op: $nick on channel: $chan." ; return 0<br>}<br>set opnicks "" ; set gopnicks "" ; set nonenicks "" ; set gotop 0<br>foreach x $opnick {<br>if {(![onchansplit $x $chan]) &amp;&amp; (![isbotnick $x])} {<br>if {[string toupper $x] == "ME"} {set x $nick}<br>if {$gotop &lt; 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]}}}<br>if {$gotop == 6} {<br>set gotop 0<br>if {$opnicks != ""} {<br>if {![botisop $chan]} {<br>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}<br>putquick "PRIVMSG $cmdsvrnick :op $chan $opnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! $cmdsvrnick Op: $opnicks on channel: $chan."<br>} else {<br>putquick "MODE $chan +oooooo $opnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Op: $opnicks on channel: $chan."<br>}<br>set opnicks "" ; append opnicks " $x" ; set gotop 1<br>}<br>}<br>}<br>}<br>if {$nonenicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nonenicks is not on channel: $chan."}<br>if {$gopnicks != ""} {putquick "NOTICE $nick :$cmdchnlg $gopnicks already Oped on channel: $chan."}<br>if {$opnicks != ""} {<br>if {![botisop $chan]} {<br>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}<br>putquick "PRIVMSG $cmdsvrnick :op $chan $opnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! $cmdsvrnick Op: $opnicks on channel: $chan."<br>} else {<br>putquick "MODE $chan +oooooo $opnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Op: $opnicks on channel: $chan."<br>}<br>} ; return 0<br>}<br><br>proc pub_naekin {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; set channel [lindex $rest 0]<br>if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}<br>msg_naekin $nick $uhost $hand $chans<br>}<br><br>proc msg_turunin {nick uhost hand rest} {<br>global botnick cmdsvrnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0] ; set deopnick [lrange $rest 1 end]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick deop &lt;#channel&gt; &lt;nickname(s)&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>if {$deopnick == ""} {<br>if {![isop $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are not Opped on channel: $chan." ; return 0}<br>if {![botisop $chan]} {<br>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}<br>putquick "PRIVMSG $cmdsvrnick :deop $chan $nick" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! $cmdsvrnick DeOp: $nick on channel: $chan." ; return 0<br>}<br>if {![onchan $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are not on channel: $chan." ; return 0}<br>putquick "MODE $chan -o $nick" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! DeOp: $nick on channel: $chan." ; return 0<br>}<br>set deopnicks "" ; set nopnicks "" ; set nonenicks "" ; set ownicks "" ; set gotdeop 0<br>foreach x $deopnick {<br>if {(![onchansplit $x $chan]) &amp;&amp; (![isbotnick $x])} {<br>if {[string toupper $x] == "ME"} {set x $nick}<br>if {$gotdeop &lt; 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]}}}}<br>if {$gotdeop == 6} {<br>set gotdeop 0<br>if {$deopnicks != ""} {<br>if {![botisop $chan]} {<br>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}<br>putquick "PRIVMSG $cmdsvrnick :deop $chan $deopnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! $cmdsvrnick DeOp: $deopnicks on channel: $chan."<br>} else {<br>putquick "MODE $chan -oooooo $deopnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! DeOp: $deopnicks on channel: $chan."<br>}<br>set deopnicks "" ; append deopnicks " $x" ; set gotdeop 1<br>}<br>}<br>}<br>}<br>if {$nonenicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nonenicks is not on channel: $chan."}<br>if {$nopnicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nopnicks already DeOped on channel: $chan."}<br>if {$ownicks != ""} {putquick "NOTICE $nick :$cmdchnlg $ownicks are my \[Master(s)\], and will I will not DeOp them on channel: $chan."}<br>if {$deopnicks != ""} {<br>if {![botisop $chan]} {<br>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}<br>putquick "PRIVMSG $cmdsvrnick :deop $chan $deopnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! $cmdsvrnick DeOp: $deopnicks on channel: $chan."<br>} else {<br>putquick "MODE $chan -oooooo $deopnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! DeOp: $deopnicks on channel: $chan."<br>}<br>} ; return 0<br>}<br><br>proc pub_turunin {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; set channel [lindex $rest 0]<br>if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}<br>msg_turunin $nick $uhost $hand $chans<br>}<br><br>proc msg_massop {nick uhost hand rest} {<br>global botnick cmdchnlg<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick mop &lt;#channel&gt;" ; return 0}<br>set massopnick [chanlist $chan]<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>set massopnicks "" ; set gotop 0<br>foreach x $massopnick {<br>if {(![isop $x $chan]) &amp;&amp; (![onchansplit $x $chan]) &amp;&amp; (![isbotnick $x])} {<br>if {$gotop &lt; 6} {append massopnicks " $x" ; set gotop [expr $gotop + 1]}<br>if {$gotop == 6} {<br>set gotop 0<br>if {$massopnicks != ""} {<br>putquick "MODE $chan +oooooo $massopnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! MassOp on channel: $chan by: $nick."<br>set massopnicks "" ; append massopnicks " $x" ; set gotop 1<br>}<br>}<br>}<br>}<br>if {$massopnicks != ""} {putquick "MODE $chan +oooooo $massopnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! MassOp on channel: $chan by: $nick."} ; return 0<br>}<br><br>proc pub_massop {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set channel [lindex $rest 0]<br>if {$channel == ""} {set channel $chan} else {if {![string match "#*" $channel]} {set channel "#$channel"}}<br>msg_massop $nick $uhost $hand $channel<br>}<br><br>proc msg_massdeop {nick uhost hand rest} {<br>global botnick cmdchnlg<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick mdeop &lt;#channel&gt;" ; return 0}<br>set massdeopnick [chanlist $chan]<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>set massdeopnicks "" ; set ownicks "" ; set gotdeop 0<br>foreach x $massdeopnick {<br>if {([isop $x $chan]) &amp;&amp; (![onchansplit $x $chan]) &amp;&amp; (![isbotnick $x])} {<br>if {$gotdeop &lt; 6} {if {[matchattr [nick2hand $x $chan] m]} {append ownicks " $x"} else {append massdeopnicks " $x" ; set gotdeop [expr $gotdeop + 1]}}<br>if {$gotdeop == 6} {<br>set gotdeop 0<br>if {$massdeopnicks != ""} {<br>putquick "MODE $chan -oooooo $massdeopnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Mass DeOp on channel: $chan by: $nick."<br>set massdeopnicks "" ; append massdeopnicks " $x" ; set gotdeop 1<br>}<br>}<br>}<br>}<br>if {$ownicks != ""} {putquick "NOTICE $nick :$cmdchnlg $ownicks are my \[Master(s)\], and will I will not DeOp them on channel: $chan."}<br>if {$massdeopnicks != ""} {putquick "MODE $chan -oooooo $massdeopnicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Mass DeOp on channel: $chan by: $nick."} ; return 0<br>}<br><br>proc pub_massdeop {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set channel [lindex $rest 0]<br>if {$channel == ""} {set channel $chan} else {if {![string match "#*" $channel]} {set channel "#$channel"}}<br>msg_massdeop $nick $uhost $hand $channel<br>}<br><br>proc msg_pois {nick uhost hand rest} {<br>global botnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0] ; set vonick [lrange $rest 1 end]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick voice &lt;#channel&gt; &lt;nickname(s)&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>if {$vonick == ""} {<br>if {[isvoice $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are already Voiced on channel: $chan." ; return 0}<br>if {![onchan $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are not on channel: $chan." ; return 0}<br>putquick "MODE $chan +v $nick" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Voice: $nick on channel: $chan." ; return 0<br>}<br>set vonicks "" ; set gvonicks "" ; set nonenicks "" ; set gotvoiced 0<br>foreach x $vonick {<br>if {(![onchansplit $x $chan]) &amp;&amp; (![isbotnick $x])} {<br>if {[string toupper $x] == "ME"} {set x $nick}<br>if {$gotvoiced &lt; 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]}}}<br>if {$gotvoiced == 6} {<br>set gotvoiced 0<br>if {$vonicks != ""} {<br>putquick "MODE $chan +vvvvvv $vonicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Voice: $vonicks on channel: $chan."<br>set vonicks "" ; append vonicks " $x" ; set gotvoiced 1<br>}<br>}<br>}<br>}<br>if {$nonenicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nonenicks is not on channel: $chan."}<br>if {$gvonicks != ""} {putquick "NOTICE $nick :$cmdchnlg $gvonicks already Voiced on channel: $chan."}<br>if {$vonicks != ""} {putquick "MODE $chan +vvvvvv $vonicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Voice: $vonicks on channel: $chan."} ; return 0<br>}<br><br>proc pub_pois {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; set channel [lindex $rest 0]<br>if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}<br>msg_pois $nick $uhost $hand $chans<br>}<br><br>proc msg_depois {nick uhost hand rest} {<br>global botnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0] ; set dvonick [lrange $rest 1 end]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick devoice &lt;#channel&gt; &lt;nickname(s)&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>if {$dvonick == ""} {<br>if {![isvoice $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are already DeVoiced on channel: $chan." ; return 0}<br>if {![onchan $nick $chan]} {putquick "NOTICE $nick :$cmdchnlg You are not on channel: $chan." ; return 0}<br>putquick "MODE $chan -v $nick" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! DeVoice: $nick on channel: $chan." ; return 0<br>}<br>set dvonicks "" ; set gdvonicks "" ; set nonenicks "" ; set devoiced 0<br>foreach x $dvonick {<br>if {(![onchansplit $x $chan]) &amp;&amp; (![isbotnick $x])} {<br>if {[string toupper $x] == "ME"} {set x $nick}<br>if {$devoiced &lt; 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]}}}<br>if {$devoiced == 6} {<br>set devoiced 0<br>if {$dvonicks != ""} {<br>putquick "MODE $chan -vvvvvv $dvonicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! DeVoice: $dvonicks on channel: $chan."<br>set dvonicks "" ; append dvonicks " $x" ; set devoiced 1<br>}<br>}<br>}<br>}<br>if {$nonenicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nonenicks is not on channel: $chan."}<br>if {$gdvonicks != ""} {putquick "NOTICE $nick :$cmdchnlg $gdvonicks are not Voiced on channel: $chan."}<br>if {$dvonicks != ""} {putquick "MODE $chan -vvvvvv $dvonicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! DeVoice: $dvonicks on channel: $chan."} ; return 0<br>}<br><br>proc pub_depois {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; set channel [lindex $rest 0]<br>if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}<br>msg_depois $nick $uhost $hand $chans<br>}<br><br>proc msg_massvo {nick uhost hand rest} {<br>global botnick cmdchnlg<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick mvoice &lt;#channel&gt;" ; return 0}<br>set massvonick [chanlist $chan]<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>set massvonicks "" ; set gmvoiced 0<br>foreach x $massvonick {<br>if {(![isvoice $x $chan]) &amp;&amp; (![onchansplit $x $chan]) &amp;&amp; (![isbotnick $x])} {<br>if {$gmvoiced &lt; 6} {append massvonicks " $x" ; set gmvoiced [expr $gmvoiced + 1]}<br>if {$gmvoiced == 6} {<br>set gmvoiced 0<br>if {$massvonicks != ""} {<br>putquick "MODE $chan +vvvvvv $massvonicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Mass Voice on channel: $chan by: $nick."<br>set massvonicks "" ; append massvonicks " $x" ; set gmvoiced 1<br>}<br>}<br>}<br>}<br>if {$massvonicks != ""} {putquick "MODE $chan +vvvvvv $massvonicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Mass Voice on channel: $chan by: $nick."} ; return 0<br>}<br><br>proc pub_massvo {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set channel [lindex $rest 0]<br>if {$channel == ""} {set channel $chan} else {if {![string match "#*" $channel]} {set channel "#$channel"}}<br>msg_massvo $nick $uhost $hand $channel<br>}<br><br>proc msg_massdevo {nick uhost hand rest} {<br>global botnick cmdchnlg<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick mdevo &lt;#channel&gt;" ; return 0}<br>set massdevonick [chanlist $chan]<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>set massdevonicks "" ; set gmdvoice 0<br>foreach x $massdevonick {<br>if {([isvoice $x $chan]) &amp;&amp; (![onchansplit $x $chan]) &amp;&amp; (![isbotnick $x])} {<br>if {$gmdvoice &lt; 6} {append massdevonicks " $x" ; set gmdvoice [expr $gmdvoice + 1]}<br>if {$gmdvoice == 6} {<br>set gmdvoice 0<br>if {$massdevonicks != ""} {<br>putquick "MODE $chan -vvvvvv $massdevonicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Mass DeVoice on channel: $chan by: $nick."<br>set massdevonicks "" ; append massdevonicks " $x" ; set gmdvoice 1<br>}<br>}<br>}<br>}<br>if {$massdevonicks != ""} {putquick "MODE $chan -vvvvvv $massdevonicks" ; putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Mass DeVoice on channel: $chan by: $nick."} ; return 0<br>}<br><br>proc pub_massdevo {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set channel [lindex $rest 0]<br>if {$channel == ""} {set channel $chan} else {if {![string match "#*" $channel]} {set channel "#$channel"}}<br>msg_massdevo $nick $uhost $hand $channel<br>}<br><br>proc msg_tendang {nick uhost hand rest} {<br>global botnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0] ; set knick [lrange $rest 1 end]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick kick &lt;#channel&gt; &lt;nickname(s)&gt; \[!reason\]" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {$knick == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick kick $chan &lt;nickname(s)&gt; \[!reason\]" ; return 0}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>set knicks "" ; set ownicks "" ; set nonenicks "" ; set reason ""<br>foreach x $knick {<br>if {(![onchansplit $x $chan]) &amp;&amp; (![isbotnick $x])} {<br>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,"}}}<br>}<br>}<br>if {$nonenicks != ""} {putquick "NOTICE $nick :$cmdchnlg $nonenicks is not on channel: $chan."}<br>if {$ownicks != ""} {putquick "NOTICE $nick :$cmdchnlg $ownicks are my \[Master(s)\], and will I will not Kick them from channel: $chan."}<br>if {$knicks != ""} {<br>if {$reason == ""} {set reason "4$cmdchnlg Requested by: $nick"} ; putkick $chan $knicks $reason<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Kick: ${knicks} from channel: $chan. Reason: $reason."<br>} ; return 0<br>}<br><br>proc pub_tendang {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; set channel [lindex $rest 0]<br>if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}<br>set knicks [lindex $chans 1]<br>if {$knicks == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}kick $chan &lt;nickname(s)&gt; \[!reason\]" ; return 0}<br>msg_tendang $nick $uhost $hand $chans<br>}<br><br>proc msg_mtendang {nick uhost hand rest} {<br>global botnick cmdchnlg<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick mkick &lt;#channel&gt; \[!reason\]" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>set knick [chanlist $chan]<br>set knicks "" ; set ownicks "" ; set reason ""<br>foreach x $knick {<br>if {(![onchansplit $x $chan]) &amp;&amp; (![isbotnick $x])} {<br>if {[string match "!*" $x]} {set reason "4$cmdchnlg $x"} else {if {[matchattr [nick2hand $x $chan] m]} {append ownicks " $x"} else {append knicks "$x,"}}<br>}<br>}<br>if {$ownicks != ""} {putquick "NOTICE $nick :$cmdchnlg $ownicks are my \[Master(s)\], and will I will not Kick them from channel: $chan."}<br>if {$knicks != ""} {<br>if {$reason == ""} {set reason "4$cmdchnlg Mass Kick by: $nick"} ; putkick $chan $knicks $reason<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Mass Kick on channel: $chan. Reason: $reason."<br>} ; return 0<br>}<br><br>proc pub_mtendang {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; set channel [lindex $rest 0]<br>if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}<br>msg_mtendang $nick $uhost $hand $chans<br>}<br><br>proc msg_+ban {nick uhost hand rest} {<br>global botnick gbantime cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick +ban &lt;#channel&gt; &lt;nickname/hostname&gt; \[ban time (minute(s))\] \[reason\]" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>set rest [lrange $rest 1 end]<br>if {$rest == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick +ban &lt;#channel&gt; &lt;nickname/hostname&gt; \[ban time (minute(s))\] \[reason\]" ; return 0}<br>set bntime [lindex $rest 1] ; set reason [lrange $rest 2 end]<br>set bntime [string trim $bntime "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&amp;*()_+|~,./;'&lt;&gt;?:{}"]<br>if {$bntime == ""} {if {$gbantime &lt;= 0} {set gbantime 15} ; set bntime $gbantime}<br>if {$reason == ""} {set reason "4$cmdchnlg Requested by: $nick"}<br>set bannick [lindex $rest 0]<br>if {[string match "*@*" $bannick]} {<br>set host $bannick ; set banhost $host ; set banhand $host<br>} else {<br>if {![onchan $bannick $chan]} {putquick "NOTICE $nick :$cmdchnlg $bannick is not on channel: $chan." ; return 0<br>} else {set host [getchanhost $bannick $chan] ; set banhost *!*@[lindex [split $host @] 1]}<br>set banhand [nick2hand $bannick $chan]<br>}<br>if {[string tolower $bannick] == [string tolower $botnick]} {putquick "NOTICE $nick :$cmdchnlg I will not ban on myself." ; return 0}<br>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}<br>foreach x [userlist] {<br>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}<br>if {[getchanhost $x $chan] != ""} {<br>set rhostmem [lindex [split [getchanhost $x $chan] @] 1] ; set rhostban [string trim [lindex [split $banhost @] 1] "\*\."]<br>set lhostmem [lindex [split [getchanhost $x $chan] @] 0] ; set lhostban [string trim [lindex [split $banhost @] 0] "\*\!\."]<br>if {[string match *$rhostban* $rhostmem] &amp;&amp; [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}<br>}<br>}<br>if {[ischanban $banhost $chan]} {putquick "NOTICE $nick :$cmdchnlg A local ban already exist on channel: $chan for: $banhost" ; return 0}<br>putquick "NOTICE $nick :$cmdchnlg Creating new ban on channel: $chan for: $banhost"<br>newchanban $chan $banhost $hand $reason $bntime<br>set bmembers [chanlist $chan]<br>foreach banmember $bmembers {<br>set bselectedhost [getchanhost $banmember $chan]<br>set ubanhost *!*@[lindex [split $bselectedhost @] 1]<br>if {$ubanhost == $banhost} {putkick $chan $banmember $reason}<br>}<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! ($chan) +ban $host $bntime $reason" ; return 0<br>}<br><br>proc pub_+ban {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; set channel [lindex $rest 0]<br>if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}<br>set bnicks [lindex $chans 1]<br>if {$bnicks == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}+ban \[#channel\] &lt;nickname/hostname&gt; \[ban time (minute(s))\] \[reason\]" ; return 0}<br>msg_+ban $nick $uhost $hand $chans<br>}<br><br>proc msg_-ban {nick uhost hand rest} {<br>global botnick banlist cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick -ban &lt;#channel&gt; &lt;nickname/hostname&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>set rest [lrange $rest 1 end]<br>if {$rest == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick -ban &lt;#channel&gt; &lt;nickname/hostname&gt;" ; return 0}<br>if {![string match "*@*" $rest]} {<br>if {![onchan $rest $chan]} {putquick "NOTICE $nick :$cmdchnlg $rest is not on channel: $chan." ; return 0<br>} else {set rest [getchanhost $rest $chan] ; set rest *!*@[lindex [split $rest @] 1]}<br>}<br>if {[string match *$rest* [lrange [banlist $chan] 0 end]]} {<br>putquick "NOTICE $nick :$cmdchnlg Releasing current ban: $rest on channel: $chan"<br>killchanban $chan $rest<br>} else {<br>putquick "NOTICE $nick :$cmdchnlg There are no Bans for: $rest on channel: $chan. Perhaps it was a Global Ban." ; return 0<br>}<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! ($chan) -ban $rest" ; return 0<br>}<br><br>proc pub_-ban {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; set channel [lindex $rest 0]<br>if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}<br>set bnicks [lindex $chans 1]<br>if {$bnicks == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}-ban \[#channel\] &lt;nickname/hostname&gt;" ; return 0}<br>msg_-ban $nick $uhost $hand $chans<br>}<br><br>proc msg_+gban {nick uhost hand rest} {<br>global botnick gbantime cmdchnlg<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set rest [lindex $rest 0]<br>if {[string match "#*" $rest]} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick +gban &lt;nickname/hostname&gt; \[ban time (minute(s))\] \[reason\]" ; return 0}<br>if {$rest == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick +gban &lt;nickname/hostname&gt; \[ban time (minute(s))\] \[reason\]" ; return 0}<br>set bntime [lindex $rest 1] ; set reason [lrange $rest 2 end]<br>set bntime [string trim $bntime "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&amp;*()_+|~,./;'&lt;&gt;?:{}"]<br>if {$bntime == ""} {if {$gbantime &lt;= 0} {set gbantime 15} ; set bntime $gbantime}<br>if {$reason == ""} {set reason "4$cmdchnlg \[GLOBAL Ban\] Requested by: $nick"}<br>set bannick [lindex $rest 0]<br>if {[string match "*@*" $bannick]} {set host $bannick ; set banhost $host ; set banhand $host} else {set host "" ; set banhost "" ; set banhand ""}<br>foreach x [channels] {<br>set chan $x<br>if {[onchan $bannick $chan]} {if {$host == "" || $banhost == "" || $bannick == ""} {set host [getchanhost $bannick $chan] ; set banhost *!*@[lindex [split $host @] 1] ; set banhand [nick2hand $bannick $chan]}}<br>}<br>if {$host == "" || $banhost == "" || $banhand == ""} {putquick "NOTICE $nick :$cmdchnlg $bannick is not on any of my channel(s)." ; return 0}<br>if {[string tolower $bannick] == [string tolower $botnick]} {putquick "NOTICE $nick :$cmdchnlg I will not ban on myself." ; return 0}<br>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}<br>foreach x [userlist] {<br>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}<br>if {[getchanhost $x $chan] != ""} {<br>set rhostmem [lindex [split [getchanhost $x $chan] @] 1] ; set rhostban [string trim [lindex [split $banhost @] 1] "\*\."]<br>set lhostmem [lindex [split [getchanhost $x $chan] @] 0] ; set lhostban [string trim [lindex [split $banhost @] 0] "\*\!\."]<br>if {[string match *$rhostban* $rhostmem] &amp;&amp; [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}<br>}<br>}<br>if {[isban $banhost]} {putquick "NOTICE $nick :$cmdchnlg A Global ban already exist for: $banhost" ; return 0}<br>putquick "NOTICE $nick :$cmdchnlg Creating new Global ban for: $banhost"<br>newban $banhost $hand $reason $bntime<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! +gban $host $bntime $reason" ; return 0<br>}<br><br>proc pub_+gban {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set banhost [lindex $rest 0]<br>if {[string match "#*" $banhost]} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}+gban &lt;nickname/hostname&gt; \[ban time (minute(s))\] \[reason\]" ; return 0}<br>if {$banhost == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}+gban &lt;nickname/hostname&gt; \[ban time (minute(s))\] \[reason\]" ; return 0}<br>msg_+gban $nick $uhost $hand $banhost<br>}<br><br>proc msg_-gban {nick uhost hand rest} {<br>global botnick cmdchnlg<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set rest [lindex $rest 0]<br>if {[string match "#*" $rest]} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick -gban &lt;nickname/hostname&gt;" ; return 0}<br>if {$rest == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick -gban &lt;nickname/hostname&gt;" ; return 0}<br>if {![isban $rest]} {putquick "NOTICE $nick :$cmdchnlg There are no Global Bans for: $rest." ; return 0}<br>putquick "NOTICE $nick :$cmdchnlg Releasing Global ban for: $rest"<br>killban $rest ; regsub -all " " [channels] ", " chans<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! -gban $rest" ; return 0<br>}<br><br>proc pub_-gban {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set banhost [lindex $rest 0]<br>if {[string match "#*" $banhost]} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}-gban &lt;nickname/hostname&gt;" ; return 0}<br>if {$banhost == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}-gban &lt;nickname/hostname&gt;" ; return 0}<br>msg_-gban $nick $uhost $hand $banhost<br>}<br><br>proc msg_infoban {nick uhost hand rest} {<br>global botnick cmdchnlg<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {if {[string toupper $chan] != "GLOBAL"} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick baninfo &lt;#channel|GLOBAL&gt;" ; return 0}}<br>if {[string toupper $chan] != "GLOBAL"} {if {![string match "#*" $chan]} {set chan "#$chan"}}<br>set banlistchan ""<br>if {[string toupper $chan] != "GLOBAL"} {<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>foreach x [banlist $chan] {set banlister [lindex $x 0] ; set banlistchan "$banlistchan $banlister"}<br>if {[banlist $chan] == ""} {set banlistchan "empty"}<br>putquick "NOTICE $nick :$cmdchnlg Ban records for channel: $chan: $banlistchan."<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! List Bans on: $banlistchan." ; return 0<br>}<br>set banlist ""<br>if {[string toupper $chan] == "GLOBAL"} {<br>foreach x [banlist] {set banlisting [lindex $x 0] ; set banlist "$banlist $banlisting"}<br>if {$banlist == ""} {set banlist "empty"}<br>putquick "NOTICE $nick :$cmdchnlg Global Ban records: $banlist."<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! List Global Bans." ; return 0<br>}<br>}<br><br>proc pub_infoban {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set channel [lindex $rest 0]<br>if {$channel == "" &amp;&amp; [string toupper $channel] != "GLOBAL"} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}baninfo &lt;#channel|GLOBAL&gt;" ; return 0}<br>msg_infoban $nick $uhost $hand $channel<br>}<br><br>proc msg_lepasban {nick uhost hand rest} {<br>global botnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick rlbans &lt;#channel&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>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}<br>set ban "" ; foreach ban [banlist $chan] {putquick "MODE $chan +b [lindex $ban 0]"} ; putquick "MODE $chan +b"<br>putquick "NOTICE $nick :$cmdchnlg Releasing all Bans on channel: $chan. Updating Ban records."<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Release Bans on: $chan." ; return 0<br>}<br><br>proc pub_lepasban {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set channel [lindex $rest 0]<br>if {$channel == ""} {set channel $chan} else {if {![string match "#*" $channel]} {set channel "#$channel"}}<br>msg_lepasban $nick $uhost $hand $channel<br>}<br><br>proc msg_inpait {nick uhost hand rest} {<br>global botnick cmdchnlg<br>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}<br>if {![matchattr $hand Q]} {putquick "NOTICE $nick :$cmdchnlg You haven't authenticate Yourself. Type: \[/msg $botnick auth &lt;password&gt;\] to do so." ; return 0}<br>set chan [lindex $rest 0] ; set inick [lindex $rest 1]<br>if {$chan == "#" || $chan == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick invite &lt;#channel&gt; &lt;nickname&gt;" ; return 0}<br>if {![string match "#*" $chan]} {set chan "#$chan"}<br>if {![validchan $chan]} {putquick "NOTICE $nick :$cmdchnlg I am not on channel: $chan, check out my channel list." ; return 0}<br>if {$inick == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick invite $chan &lt;nickname&gt;" ; return 0}<br>if {[onchan $inick $chan]} {putquick "NOTICE $nick :$cmdchnlg $inick already on channel: $chan. Invites are not needed." ; return 0}<br>putquick "INVITE $inick $chan"<br>putquick "NOTICE $nick :$cmdchnlg $inick are now invited to join channel: $chan."<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Inviting: $inick to channel: $chan." ; return 0<br>}<br><br>proc pub_inpait {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>set chans "" ; set channel [lindex $rest 0]<br>if {![string match "#*" $channel]} {set channel $chan ; append chans "$channel $rest "} else {append chans " $rest"}<br>set inicks [lindex $chans 1]<br>if {$inicks == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}invite $channel &lt;nickname&gt;" ; return 0}<br>msg_inpait $nick $uhost $hand $chans<br>}<br><br>proc msg_chanhelp {nick uhost hand rest} {<br>global CHPRM botnick cmdchnlg<br>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}<br>set chlptype [string toupper [lindex $rest 0]]<br>if {$chlptype == ""} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick chanhelp PUB or /msg $botnick chanhelp MSG" ; return 0}<br>if {[string toupper $chlptype] != "PUB" &amp;&amp; [string toupper $chlptype] != "MSG"} {putquick "NOTICE $nick :$cmdchnlg Command: /msg $botnick chanhelp PUB or /msg $botnick chanhelp MSG" ; return 0}<br>putquick "NOTICE $nick :$cmdchnlg Channel Control Commands $cmdchnlg"<br>putquick "NOTICE $nick : "<br>putquick "NOTICE $nick :NOTES:"<br>putquick "NOTICE $nick :&lt;&gt; sign means you MUST fill the value."<br>putquick "NOTICE $nick :\[\] sign means you can either fill the value or leave it blank."<br>putquick "NOTICE $nick <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_neutral.gif" width="15" height="15" alt=":|" title="Neutral"> sign means you MUST choose one between value placed on the left side of | sign, or on the right side."<br>putquick "NOTICE $nick : "<br>if {$chlptype == "PUB"} {<br>putquick "NOTICE $nick :Public Commands:"<br>putquick "NOTICE $nick : "<br>if {[matchattr $hand n]} {<br>putquick "NOTICE $nick :${CHPRM}join &lt;#channel&gt; \[join-key\]"<br>putquick "NOTICE $nick :${CHPRM}leave &lt;#channel&gt;"<br>putquick "NOTICE $nick :${CHPRM}cycle \[#channel\]"<br>}<br>putquick "NOTICE $nick :${CHPRM}lock \[#channel\]"<br>putquick "NOTICE $nick :${CHPRM}unlock \[#channel\]"<br>putquick "NOTICE $nick :${CHPRM}cmode \[#channel\] &lt;+/-modelocks&gt;"<br>putquick "NOTICE $nick :${CHPRM}up \[#channel\]"<br>putquick "NOTICE $nick :${CHPRM}down \[#channel\]"<br>putquick "NOTICE $nick :${CHPRM}op \[#channel\] &lt;nickname(s)&gt;"<br>putquick "NOTICE $nick :${CHPRM}deop \[#channel\] &lt;nickname(s)&gt;"<br>if {[matchattr $hand m]} {<br>putquick "NOTICE $nick :${CHPRM}mop \[#channel\]"<br>putquick "NOTICE $nick :${CHPRM}mdeop \[#channel\]"<br>}<br>putquick "NOTICE $nick :${CHPRM}voice \[#channel\] &lt;nickname(s)&gt;"<br>putquick "NOTICE $nick :${CHPRM}devoice \[#channel\] &lt;nickname(s)&gt;"<br>if {[matchattr $hand m]} {<br>putquick "NOTICE $nick :${CHPRM}mvoice \[#channel\]"<br>putquick "NOTICE $nick :${CHPRM}mdevo \[#channel\]"<br>}<br>putquick "NOTICE $nick :${CHPRM}kick \[#channel\] &lt;nickname(s)&gt; \[!reason\]"<br>if {[matchattr $hand m]} {<br>putquick "NOTICE $nick :${CHPRM}mkick \[#channel\] \[!reason\]"<br>}<br>putquick "NOTICE $nick :${CHPRM}+ban \[#channel\] &lt;nickname/hostname&gt; \[ban-time (minute(s))\] \[reason\]"<br>putquick "NOTICE $nick :${CHPRM}-ban \[#channel\] &lt;nickname/hostname&gt;"<br>if {[matchattr $hand m]} {<br>putquick "NOTICE $nick :${CHPRM}+gban &lt;nickname/hostname&gt; \[ban-time (minute(s))\] \[reason\]"<br>putquick "NOTICE $nick :${CHPRM}-gban &lt;nickname/hostname&gt;"<br>}<br>putquick "NOTICE $nick :${CHPRM}baninfo &lt;#channel|GLOBAL&gt;"<br>putquick "NOTICE $nick :${CHPRM}rlbans \[#channel\]"<br>putquick "NOTICE $nick :${CHPRM}invite \[#channel\] &lt;nickname&gt;"<br>putquick "NOTICE $nick : "<br>}<br>if {$chlptype == "MSG"} {<br>putquick "NOTICE $nick :MSG Commands:"<br>putquick "NOTICE $nick : "<br>if {[matchattr $hand n]} {<br>putquick "NOTICE $nick :/msg $botnick join &lt;#channel&gt; \[join-key\]"<br>putquick "NOTICE $nick :/msg $botnick leave &lt;#channel&gt;"<br>putquick "NOTICE $nick :/msg $botnick cycle \[#channel\]"<br>}<br>putquick "NOTICE $nick :/msg $botnick lock &lt;#channel&gt;"<br>putquick "NOTICE $nick :/msg $botnick unlock &lt;#channel&gt;"<br>putquick "NOTICE $nick :/msg $botnick cmode &lt;#channel&gt; &lt;+/-modelocks&gt;"<br>putquick "NOTICE $nick :/msg $botnick up &lt;#channel&gt;"<br>putquick "NOTICE $nick :/msg $botnick down &lt;#channel&gt;"<br>putquick "NOTICE $nick :/msg $botnick op &lt;#channel&gt; &lt;nickname(s)&gt;"<br>putquick "NOTICE $nick :/msg $botnick deop &lt;#channel&gt; &lt;nickname(s)&gt;"<br>if {[matchattr $hand m]} {<br>putquick "NOTICE $nick :/msg $botnick mop &lt;#channel&gt;"<br>putquick "NOTICE $nick :/msg $botnick mdeop &lt;#channel&gt;"<br>}<br>putquick "NOTICE $nick :/msg $botnick voice &lt;#channel&gt; &lt;nickname(s)&gt;"<br>putquick "NOTICE $nick :/msg $botnick devoice &lt;#channel&gt; &lt;nickname(s)&gt;"<br>if {[matchattr $hand m]} {<br>putquick "NOTICE $nick :/msg $botnick mvoice &lt;#channel&gt;"<br>putquick "NOTICE $nick :/msg $botnick mdevo &lt;#channel&gt;"<br>}<br>putquick "NOTICE $nick :/msg $botnick kick &lt;#channel&gt; &lt;nickname(s)&gt; \[!reason\]"<br>if {[matchattr $hand m]} {<br>putquick "NOTICE $nick :/msg $botnick mkick &lt;#channel&gt; \[!reason\]"<br>}<br>putquick "NOTICE $nick :/msg $botnick +ban &lt;#channel&gt; &lt;nickname/hostname&gt; \[ban-time (minute(s))\] \[reason\]"<br>putquick "NOTICE $nick :/msg $botnick -ban &lt;#channel&gt; &lt;nickname/hostname&gt;"<br>if {[matchattr $hand m]} {<br>putquick "NOTICE $nick :/msg $botnick +gban &lt;nickname/hostname&gt; \[ban-time (minute(s))\] \[reason\]"<br>putquick "NOTICE $nick :/msg $botnick -gban &lt;nickname/hostname&gt;"<br>}<br>putquick "NOTICE $nick :/msg $botnick baninfo &lt;#channel|GLOBAL&gt;"<br>putquick "NOTICE $nick :/msg $botnick rlbans &lt;#channel&gt;"<br>putquick "NOTICE $nick :/msg $botnick invite &lt;#channel&gt; &lt;nickname&gt;"<br>putquick "NOTICE $nick : "<br>}<br>putquick "NOTICE $nick :Other Commands:"<br>putquick "NOTICE $nick : "<br>putquick "NOTICE $nick :${CHPRM}chanhelp PUB or ${CHPRM}chanhelp MSG"<br>putquick "NOTICE $nick :/msg $botnick chanhelp PUB or /msg $botnick chanhelp MSG"<br>putquick "NOTICE $nick : "<br>putcmdlog "$cmdchnlg &lt;&lt;$nick&gt;&gt; !$hand! Channel Control Commands Help." ; return 0<br>}<br><br>proc pub_chanhelp {nick uhost hand chan rest} {<br>global CHPRM botnick cmdchnlg<br>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}<br>set chlptype [string toupper [lindex $rest 0]]<br>if {$chlptype == ""} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}chanhelp PUB or ${CHPRM}chanhelp MSG" ; return 0}<br>if {[string toupper $chlptype] != "PUB" &amp;&amp; [string toupper $chlptype] != "MSG"} {putquick "NOTICE $nick :$cmdchnlg Command: ${CHPRM}chanhelp PUB or ${CHPRM}chanhelp MSG" ; return 0}<br>msg_chanhelp $nick $uhost $hand $chlptype<br>}<br><br># Set this to "1" if you like the script to be loaded.. and set it to "0" to unload.<br>set cmdchanloaded 1<br><br>if {[info exist cmdchanloaded]} {<br>if {${cmdchanloaded}} {<br>bind pub n ${CHPRM}join pub_masuk<br>bind msg n leave msg_cabut<br>bind pub n ${CHPRM}leave pub_cabut<br>bind msg n join msg_masuk<br>bind pub n ${CHPRM}cycle pub_cycle<br>bind msg n cycle msg_cycle<br>bind pub o|o ${CHPRM}lock pub_konci<br>bind msg o|o lock msg_konci<br>bind pub o|o ${CHPRM}unlock pub_buka<br>bind msg o|o unlock msg_buka<br>bind pub o|o ${CHPRM}cmode pub_cmode<br>bind msg o|o cmode msg_cmode<br>bind pub o|o ${CHPRM}up pub_opbot<br>bind msg o|o up msg_opbot<br>bind pub o|o ${CHPRM}down pub_deopbot<br>bind msg o|o down msg_deopbot<br>bind pub o|o ${CHPRM}op pub_naekin<br>bind msg o|o op msg_naekin<br>bind pub o|o ${CHPRM}deop pub_turunin<br>bind msg o|o deop msg_turunin<br>bind pub m ${CHPRM}mop pub_massop<br>bind msg m mop msg_massop<br>bind pub m ${CHPRM}mdeop pub_massdeop<br>bind msg m mdeop msg_massdeop<br>bind pub o|o ${CHPRM}voice pub_pois<br>bind msg o|o voice msg_pois<br>bind pub o|o ${CHPRM}devoice pub_depois<br>bind msg o|o devoice msg_depois<br>bind pub m ${CHPRM}mvoice pub_massvo<br>bind msg m mvoice msg_massvo<br>bind pub m ${CHPRM}mdevo pub_massdevo<br>bind msg m mdevo msg_massdevo<br>bind pub o|o ${CHPRM}kick pub_tendang<br>bind msg o|o kick msg_tendang<br>bind pub m ${CHPRM}mkick pub_mtendang<br>bind msg m mkick msg_mtendang<br>bind pub o|o ${CHPRM}+ban pub_+ban<br>bind msg o|o +ban msg_+ban<br>bind pub o|o ${CHPRM}-ban pub_-ban<br>bind msg o|o -ban msg_-ban<br>bind pub m ${CHPRM}+gban pub_+gban<br>bind msg m +gban msg_+gban<br>bind pub m ${CHPRM}-gban pub_-gban<br>bind msg m -gban msg_-gban<br>bind pub o|o ${CHPRM}baninfo pub_infoban<br>bind msg o|o baninfo msg_infoban<br>bind pub o|o ${CHPRM}rlbans pub_lepasban<br>bind msg o|o rlbans msg_lepasban<br>bind pub o|o ${CHPRM}invite pub_inpait<br>bind msg o|o invite msg_inpait<br>bind pub o|o ${CHPRM}chanhelp pub_chanhelp<br>bind msg o|o chanhelp msg_chanhelp<br>} else {<br>unbind pub n ${CHPRM}join pub_masuk<br>unbind msg n leave msg_cabut<br>unbind pub n ${CHPRM}leave pub_cabut<br>unbind msg n join msg_masuk<br>unbind pub n ${CHPRM}cycle pub_cycle<br>unbind msg n cycle msg_cycle<br>unbind pub o|o ${CHPRM}lock pub_konci<br>unbind msg o|o lock msg_konci<br>unbind pub o|o ${CHPRM}unlock pub_buka<br>unbind msg o|o unlock msg_buka<br>unbind pub o|o ${CHPRM}cmode pub_cmode<br>unbind msg o|o cmode msg_cmode<br>unbind pub o|o ${CHPRM}up pub_opbot<br>unbind msg o|o up msg_opbot<br>unbind pub o|o ${CHPRM}down pub_deopbot<br>unbind msg o|o down msg_deopbot<br>unbind pub o|o ${CHPRM}op pub_naekin<br>unbind msg o|o op msg_naekin<br>unbind pub o|o ${CHPRM}deop pub_turunin<br>unbind msg o|o deop msg_turunin<br>unbind pub m ${CHPRM}mop pub_massop<br>unbind msg m mop msg_massop<br>unbind pub m ${CHPRM}mdeop pub_massdeop<br>unbind msg m mdeop msg_massdeop<br>unbind pub o|o ${CHPRM}voice pub_pois<br>unbind msg o|o voice msg_pois<br>unbind pub o|o ${CHPRM}devoice pub_depois<br>unbind msg o|o devoice msg_depois<br>unbind pub m ${CHPRM}mvoice pub_massvo<br>unbind msg m mvoice msg_massvo<br>unbind pub m ${CHPRM}mdevo pub_massdevo<br>unbind msg m mdevo msg_massdevo<br>unbind pub o|o ${CHPRM}kick pub_tendang<br>unbind msg o|o kick msg_tendang<br>unbind pub m ${CHPRM}mkick pub_mtendang<br>unbind msg m mkick msg_mtendang<br>unbind pub o|o ${CHPRM}+ban pub_+ban<br>unbind msg o|o +ban msg_+ban<br>unbind pub o|o ${CHPRM}-ban pub_-ban<br>unbind msg o|o -ban msg_-ban<br>unbind pub m ${CHPRM}+gban pub_+gban<br>unbind msg m +gban msg_+gban<br>unbind pub m ${CHPRM}-gban pub_-gban<br>unbind msg m -gban msg_-gban<br>unbind pub o|o ${CHPRM}baninfo pub_infoban<br>unbind msg o|o baninfo msg_infoban<br>unbind pub o|o ${CHPRM}rlbans pub_lepasban<br>unbind msg o|o rlbans msg_lepasban<br>unbind pub o|o ${CHPRM}invite pub_inpait<br>unbind msg o|o invite msg_inpait<br><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5904">coolio2004</a> — Fri Jan 28, 2005 5:34 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[^DooM^]]></name></author>
		<updated>2005-01-28T16:54:46-04:00</updated>

		<published>2005-01-28T16:54:46-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=45911#p45911</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=45911#p45911"/>
		<title type="html"><![CDATA[cmd_chan.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=45911#p45911"><![CDATA[
Take a look at the binds for the script see if there is any clues as to what commands are available to you.<br><br>Can you paste the whole script inside code tags as well <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_smile.gif" width="15" height="15" alt=":)" title="Smile"><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3723">^DooM^</a> — Fri Jan 28, 2005 4:54 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[coolio2004]]></name></author>
		<updated>2005-01-28T15:05:10-04:00</updated>

		<published>2005-01-28T15:05:10-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=45906#p45906</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=45906#p45906"/>
		<title type="html"><![CDATA[cmd_chan.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=45906#p45906"><![CDATA[
im not too sure but i've tried my userfile password which doesnt seem to be working and in the tcl i tried to look for help about the password but nothing is there.  and when i try to insert just a new password, its not responding to anything i say.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5904">coolio2004</a> — Fri Jan 28, 2005 3:05 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[^DooM^]]></name></author>
		<updated>2005-01-28T09:23:00-04:00</updated>

		<published>2005-01-28T09:23:00-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=45889#p45889</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=45889#p45889"/>
		<title type="html"><![CDATA[cmd_chan.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=45889#p45889"><![CDATA[
I dont know this script personally. Do you have to set your password within the script itself or is it supposed to use the one set in its userfile?<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3723">^DooM^</a> — Fri Jan 28, 2005 9:23 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[coolio2004]]></name></author>
		<updated>2005-01-28T06:25:42-04:00</updated>

		<published>2005-01-28T06:25:42-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=45888#p45888</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=45888#p45888"/>
		<title type="html"><![CDATA[cmd_chan.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=45888#p45888"><![CDATA[
anyone use that script? it says i need to authenticate myself to the bot with the following command and when i try to do it, it doesnt seem to take anything as a password.<br>for e..g<br><br>[21:17] -fc3- [J-C]: You haven't authenticate Yourself. Type: [/msg fc3 auth &lt;password&gt;] to do so.<br><br><br>so what i did was i typed: /msg fc3 auth password <br>and its not liking it, of course i dont put password as password (even though ive tried that also, but ive put my bot's dcc password which it is not accepting at all.  I was looking at the actual tcl script and it says this:<br><br>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 =)" <br><br><br>ok so my account is the master and it has +p flag already but its just not liking it, any ideas?<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5904">coolio2004</a> — Fri Jan 28, 2005 6:25 am</p><hr />
]]></content>
	</entry>
	</feed>
