<?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/19158" />

	<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>2012-11-16T10:21:48-04:00</updated>

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

		<entry>
		<author><name><![CDATA[desperado836]]></name></author>
		<updated>2012-11-16T10:21:48-04:00</updated>

		<published>2012-11-16T10:21:48-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100222#p100222</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100222#p100222"/>
		<title type="html"><![CDATA[EggServ missing close-bracket]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100222#p100222"><![CDATA[
Thanks SpiKe^^, that seemed to fix the error, and I can ban/kickban just fine now. Thanks again!<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12122">desperado836</a> — Fri Nov 16, 2012 10:21 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[SpiKe^^]]></name></author>
		<updated>2012-11-16T09:38:50-04:00</updated>

		<published>2012-11-16T09:38:50-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100221#p100221</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100221#p100221"/>
		<title type="html"><![CDATA[EggServ missing close-bracket]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100221#p100221"><![CDATA[
That error is caused by this line of code in the script:<div class="codebox"><p>Code: </p><pre><code>puthelp "NOTICE $nick :\002Usage:\002 [string trim $!ban &lt;nick|mask&gt; \[time\] \[reason\]"</code></pre></div>Looks to me like it has a couple of issues with that line.<br>Let's just try making that line look more like:<div class="codebox"><p>Code: </p><pre><code>puthelp "NOTICE $nick :\002Usage:\002 !ban &lt;nick|mask&gt; \[time\] \[reason\]"</code></pre></div>See if that helps.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=7749">SpiKe^^</a> — Fri Nov 16, 2012 9:38 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[desperado836]]></name></author>
		<updated>2012-11-16T01:06:03-04:00</updated>

		<published>2012-11-16T01:06:03-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100218#p100218</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100218#p100218"/>
		<title type="html"><![CDATA[EggServ missing close-bracket]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100218#p100218"><![CDATA[
I am using EggServ v0.8.1 on my eggdrop v1.6.21. I get a error when trying out the !ban feature, I get a Tcl error [pub_eggserv_ban]: missing close-bracket. As far as I can tell, it seems everything else works fine except bans/kickbans. <br>I have just this script running and got the .set errorInfo:<blockquote class="uncited"><div>[23:48] &lt;ScouseBot&gt; Currently: missing close-bracket<br>[23:48] &lt;ScouseBot&gt; Currently:     while compiling<br>[23:48] &lt;ScouseBot&gt; Currently: "puthelp "NOTICE $nick :\002Usage:\002 [string trim $!ban &lt;nick|mask&gt; \[time\] \[reason\]"<br>[23:48] &lt;ScouseBot&gt; Currently: return 0<br>[23:48] &lt;ScouseBot&gt; Currently: "<br>[23:48] &lt;ScouseBot&gt; Currently:     ("if" then script line 2)<br>[23:48] &lt;ScouseBot&gt; Currently:     while compiling<br>[23:48] &lt;ScouseBot&gt; Currently: "if {[llength $arg] &lt; 1} {<br>[23:48] &lt;ScouseBot&gt; Currently: puthelp "NOTICE $nick :\002Usage:\002 [string trim $!ban &lt;nick|mask&gt; \[time\] \[reason\]"<br>[23:48] &lt;ScouseBot&gt; Currently: return 0<br>[23:48] &lt;ScouseBot&gt; Currently: }"<br>[23:48] &lt;ScouseBot&gt; Currently:     ("if" then script line 2)<br>[23:48] &lt;ScouseBot&gt; Currently:     while compiling<br>[23:48] &lt;ScouseBot&gt; Currently: "if {[matchattr $opper |+n] || [matchattr $opper |+m] ||  [matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] ||  [matchattr $opper |+o $chan]..."<br>[23:48] &lt;ScouseBot&gt; Currently:     (compiling body of proc "pub_eggserv_ban", line 5)<br>[23:48] &lt;ScouseBot&gt; Currently:     invoked from within<br>[23:48] &lt;ScouseBot&gt; Currently: "pub_eggserv_ban $_pub1 $_pub2 $_pub3 $_pub4 $_pub5"</div></blockquote><div class="codebox"><p>Code: </p><pre><code>################################################### ######################################################      _____            _____                 ######     / ___/__ __ __ __/  __/___ __ ___ __    ######    /  _// . ` / . ` /\__ \  ._\  `_/ ` /    ######   /____/\__  /\__  /_____/\__/|__| \__/     ######        /____//____/          .Tcl v0.8.1    ######                                             ###################################################### ######################################################            EggServ.tcl by Lupo              ######       Come and visit us on #EggServ         ######             On irc.ircbox.com!              ###########################################################################################################  Portions based on SuperScript.tcl, lol.tcl   ####         and opcmds.tcl by xTc^bLiTz           ########################################################################################################## Thanks and hello to :                         #### Thommey and Rudenstam from #egghelp@freenode  #### The nice people from #tcl@freenode            #### BoNe, Sir_Fz, dwr, DarkIntentions             ############################################################################################################ This script offers a range of public commands to the channel###### Version History## v0.8.1 Bug fixes based on feedback from initial release (check VERSION_HISTORY for overview on fixed bugs)## v0.8.0 Ban system cleanups## v0.7.9 added !topic command## v0.7.8 Synchronisation for channelmodes between eggdrop and services, added NOPstatus## v0.7.7 code cleanup, nick to hand optimalisations## v0.7.6 Implemented a quite nifty assign routine :o)## v0.7.5 Added User Registration and msg commands## v0.7.4 Added assign/unassign commands## v0.7.3 Added verbose messages, protectops and retaliation## v0.7.2 Bugfixes## v0.7.1 Changes to private messages, help menu## v0.7.0 Original version (split off from chancommands.tcl)#### Settings### Channel settings## Set the channels the script should be active on ("" for all channels)### Set Services Version## Set your services flavor here ## Supported Services## No Services - "none"## Anope 1.x - "anope"## Atheme 2.x - "atheme"set services "anope"## Set chanserv## Set your ChanServ nickname here set chanserv "ScouseBot"#### Set ServiceChannel## This is EggServs Default Channelset servicechan ""## ProtectOps## Prevents ops from being kicked and banned## Set to 0 to disableset protectops 1## Retaliation## Take revenge on opkick and opban## Set to 1 to Enableset retaliation 0## Set Verbose Messages## Makes EggServ more chatty (debug)## Set to 1 to enableset verbosemsgs 0## Set Debug Messages## Makes EggServ Even more chatty (debug)## Set to 1 to enableset debugmsgs 0## Have Management tools installed?set mgmttools 1#ban type#  0 - *!*user@*.domain#  1 - *!*@host.domainset eggserv_bantype 1############################# Advanced Settings############################# Disable Ident functionset eggserv_ident 1# Disable clones functionset eggserv_clones 1###### Public binds - Change to your liking ###bind pub -|- !register pub_eggserv_registerbind pub -|- !drop pub_eggserv_dropbind pub -|- !assign pub_eggserv_assignbind pub -|- !unassign pub_eggserv_unassignbind pub -|- !topic pub_eggserv_topicbind pub -|- !k pub_eggserv_kickbind pub -|- !kick pub_eggserv_kickbind pub -|- !b pub_eggserv_banbind pub -|- !ban pub_eggserv_banbind pub -|- !kb pub_eggserv_banbind pub -|- !kickban pub_eggserv_banbind pub -|- !banlist pub_eggserv_banlistbind pub -|- !ub pub_eggserv_unbanbind pub -|- !unban pub_eggserv_unbanbind pub -|- !v pub_eggserv_voicebind pub -|- !dv pub_eggserv_devoicebind pub -|- !voice pub_eggserv_voicebind pub -|- !devoice pub_eggserv_devoicebind pub -|- !h pub_eggserv_halfopbind pub -|- !dh pub_eggserv_dehalfopbind pub -|- !hop pub_eggserv_halfopbind pub -|- !dehop pub_eggserv_dehalfopbind pub -|- !halfop pub_eggserv_halfopbind pub -|- !dehalfop pub_eggserv_dehalfopbind pub -|- !o pub_eggserv_opbind pub -|- !do pub_eggserv_deopbind pub -|- !op pub_eggserv_opbind pub -|- !deop pub_eggserv_deopbind pub -|- !p pub_eggserv_protectbind pub -|- !dp pub_eggserv_deprotectbind pub -|- !protect pub_eggserv_protectbind pub -|- !deprotect pub_eggserv_deprotectbind pub -|- !q pub_eggserv_ownerbind pub -|- !dq pub_eggserv_deownerbind pub -|- !owner pub_eggserv_ownerbind pub -|- !deowner pub_eggserv_deownerbind pub -|- !addvoice pub_eggserv_addvopbind pub -|- !delvoice pub_eggserv_delvopbind pub -|- !addnop pub_eggserv_addnopbind pub -|- !delnop pub_eggserv_delnopbind pub -|- !addvop pub_eggserv_addvopbind pub -|- !delvop pub_eggserv_delvopbind pub -|- !addhop pub_eggserv_addhopbind pub -|- !delhop pub_eggserv_delhopbind pub -|- !addhalfop pub_eggserv_addhopbind pub -|- !delhalfop pub_eggserv_delhopbind pub -|- !addaop pub_eggserv_addaopbind pub -|- !delaop pub_eggserv_delaopbind pub -|- !addfullop pub_eggserv_addaopbind pub -|- !delfullop pub_eggserv_delaopbind pub -|- !addsop pub_eggserv_addsopbind pub -|- !delsop pub_eggserv_delsopbind pub -|- !addadmin pub_eggserv_addsopbind pub -|- !deladmin pub_eggserv_delsopbind pub -|- !addprotect pub_eggserv_addsopbind pub -|- !delprotect pub_eggserv_delsopbind pub -|- !help pub_eggserv_help##################################################                                                                                       ################################ Configuration Ends Here ######################################                                                                                       ############################# Some basic functions used later ###############################proc low {i} {return [string tolower $i]}proc stringtopattern {string} {return [string map [list \\ \\\\ \[ \\\[ \] \\\] ] $string]}###########################################################################################set eggservvers "0.8.1"############################################################################################# Channel Assign / Unassign#################################################################################################Assigning Channelproc pub_eggserv_assign {nick host handle chan text} {global botnick verbosemsgs  if {[set channel [string trim [lindex [split $text] 0]]] == "" || [string index $channel 0] != "#"} {        putserv "PRIVMSG $chan :Syntax: $::lastbind &lt;#channel&gt;"        return 0  }  if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :$nick is assigning $botnick to $channel."}if {[validchan $channel]} {putserv "NOTICE $nick :$botnick is already assigned to $channel."return 1}channel add $channel  set ::request_from_chan($channel) $chan  set ::request_from_nick($channel) $nickif {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :$botnick joined $channel for modechecking."}}######bind raw - 315 do_assign_finalisationproc do_assign_finalisation {from key text} {   global botnick verbosemsgs servicechan     set channel [lindex [split $text] 1]     if {![info exists ::request_from_chan($channel)]} {        return 0     }   if { [isop $::request_from_nick($channel) $channel] == 1 || \ [isadmin $::request_from_nick($channel) $channel] == 1 || \ [isowner $::request_from_nick($channel) $channel] == 1 } {set owner [nick2hand $::request_from_nick($channel) $channel]putserv "NOTICE $owner :$botnick has been assigned to $channel."chattr $owner |+mnoflv $channelif {$verbosemsgs == 1 } {putserv "PRIVMSG $servicechan :$botnick has been successfully assigned to $channel"}return 1} else {if {$verbosemsgs == 1 } {putserv "PRIVMSG $servicechan :Modecheck for $::request_from_nick($channel) by $botnick has failed for $channel"}putserv "NOTICE $::request_from_nick($channel) : You need to be an operator or higher in order to assign $botnick to $channel."channel remove $wherereturn 1}}######part channelproc pub_eggserv_unassign {nick host handle chan text} {global botnick servicechan verbosemsgs debugmsgsset owner [nick2hand $nick $chan]if { $chan == $servicechan } {channel remove $chanputserv "NOTICE $nick :You cannot unassign $botnick's default channel."if {$verbosemsgs == 1 } {putserv "PRIVMSG $servicechan :$chan has been unassigned from $botnick by $owner"}}if {[matchattr $owner +n $chan] || [matchattr $owner +n] } {channel remove $chanputserv "NOTICE $nick :$chan has been unassigned from $botnick"if {$verbosemsgs == 1 } {putserv "PRIVMSG $servicechan :$chan has been unassigned from $botnick by $owner"}}}################################################################################################### User Registration options#################################################################################################Add a user to the botproc pub_eggserv_register {nick host handle chan text} {global botnickset who [lindex $text 0]set thost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]if {$who == ""} {adduser $nick $mhostputserv "NOTICE $nick :You have been registered to $botnick."set thandle [nick2hand $nick $chan]chattr $thandle +hreturn 1}if {![onchan $who $chan]} {putserv "NOTICE $nick :$who needs to be online and on $chan."return 1} adduser $who $mhostputserv "PRIVMSG $nick :User $who has been registered in $botnick."set thandle [nick2hand $who $chan]chattr $thandle +h#addhost $thandle $mhostreturn 1}############Delete an user from the records.proc pub_eggserv_drop {nick host handle chan text} {global botnick verbosemsgsset who [lindex $text 0]if {[matchattr $who +n]} {return 1}if {$who == ""} {set thandle [nick2hand $nick $chan]if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Deleting $nick ($thandle) from $botnick."}deluser $nickputserv "NOTICE $nick :Your registration has been dropped from $botnick."return 1}if {![onchan $who $chan]} {putserv "NOTICE $nick :The user needs to be online to be removed from $botnick."return 1} set thandle [nick2hand $who $chan]if {$thandle == "*"} {putserv "NOTICE $nick :$who isn't in the $botnick user database."return 1}if {[matchattr $who +n] } {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Deleting $nick ($thandle) from $botnick."}deluser $thandleputserv "NOTICE $nick :User $who has been removed from $botnick."return 1}}################################################################################################### Services Integration#################################################################################################proc pub_eggserv_addnop {nick host handle chan text} {global services botnick verbosemsgsset opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan]} {set who [lindex $text 0]if {$who == $botnick} {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to modify modes on myself."}    return 0    }set whohost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]adduser $who $mhostif {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Done adding $who in the $botnick user database for channel $chan."}set whohandle [nick2hand $who $chan]if {$who == ""} {putserv "NOTICE $nick :Usage: !addnop &lt;Nick to add&gt;"return 1}chattr $whohandle +f|+dr $chanif {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :$who added to $chan NOP list."}putserv "NOTICE $nick :$who added to $chan NOP list."}}############proc pub_eggserv_delnop {nick host handle chan text} {global services botnick verbosemsgsset opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] } {set who [lindex $text 0]if {$who == $botnick} {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to modify modes on myself."}    return 0    }set whohost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Done removing $who in the $botnick user database for channel $chan."}set whohandle [nick2hand $who $chan]chattr $whohandle +f|-v $chanif {$who == ""} {putserv "NOTICE $nick :Usage: !delvop &lt;Nick to add&gt;"return 1}if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :$who added to $chan NOP list."}putserv "NOTICE $nick :$who added to $chan NOP list."}}############proc pub_eggserv_addvop {nick host handle chan text} {global services botnick verbosemsgsset opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan]} {set who [lindex $text 0]if {$who == $botnick} {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to modify modes on myself."}    return 0    }set whohost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]adduser $who $mhostif {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Done adding $who in the $botnick user database for channel $chan."}set whohandle [nick2hand $who $chan]chattr $whohandle +f|+fv $chanif {$who == ""} {putserv "NOTICE $nick :Usage: !addvop &lt;Nick to add&gt;"return 1}if { ($services == "anope") } {return [do_addservicesuser $nick $who $chan VOP]   }if { ($services == "atheme") } {return [do_addservicesuser $nick $who $chan +V]   }if { ($services == "none") } {return 1}}}############proc pub_eggserv_delvop {nick host handle chan text} {global services botnick verbosemsgsset opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] } {set who [lindex $text 0]if {$who == $botnick} {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to modify modes on myself."}    return 0    }set whohost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Done removing $who in the $botnick user database for channel $chan."}set whohandle [nick2hand $who $chan]chattr $whohandle +f|-v $chanif {$who == ""} {putserv "NOTICE $nick :Usage: !delvop &lt;Nick to add&gt;"return 1}if { ($services == "anope") } {return [do_delservicesuser $nick $who $chan VOP]   }if { ($services == "atheme") } {return [do_addservicesuser $nick $who $chan -V]   }if { ($services == "none") } {return 1}}}############proc pub_eggserv_addhop {nick host handle chan text} {global services botnick verbosemsgsset opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || [matchattr $opper |+o $chan]} {set who [lindex $text 0]if {$who == $botnick} {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to modify modes on myself."}    return 0    }set whohost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]adduser $who $mhostif {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Done adding $who in the $botnick user database for channel $chan."}set whohandle [nick2hand $who $chan]chattr $whohandle +f|+flv $chanif {$who == ""} {putserv "NOTICE $nick :Usage: !addhop &lt;Nick to add&gt;"return 1}if { ($services == "anope") } {return [do_addservicesuser $nick $who $chan HOP]   }if { ($services == "atheme") } {return [do_addservicesuser $nick $who $chan +H]   }if { ($services == "none") } {return 1}}}############proc pub_eggserv_delhop {nick host handle chan text} {global services botnick verbosemsgsset opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || [matchattr $opper |+o $chan]} {set who [lindex $text 0]if {$who == $botnick} {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to modify modes on myself."}    return 0    }set whohost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Done removing $who in the $botnick user database for channel $chan."}set whohandle [nick2hand $who $chan]chattr $whohandle +f|-lv $chanif { ($services == "anope") } {return [do_delservicesuser $nick $who $chan HOP]   }if { ($services == "atheme") } {return [do_addservicesuser $nick $who $chan -H]   }   if { ($services == "none") } {return 1}}}############proc pub_eggserv_addaop {nick host handle chan text} {global services botnick verbosemsgsset opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan]} {set who [lindex $text 0]if {$who == $botnick} {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to modify modes on myself."}    return 0    }set whohost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]adduser $who $mhostif {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Done adding $who in the $botnick user database for channel $chan."}set whohandle [nick2hand $who $chan]chattr $whohandle +f|+faolv $chanif {$who == ""} {putserv "NOTICE $nick :Usage: !addaop &lt;Nick to add&gt;"return 1}if { ($services == "anope") } {return [do_addservicesuser $nick $who $chan AOP]   }if { ($services == "atheme") } {return [do_addservicesuser $nick $who $chan +Oh]   } if { ($services == "none") } {return 1}}}############proc pub_eggserv_delaop {nick host handle chan text} {global services botnick verbosemsgsset opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan]} {set who [lindex $text 0]if {$who == $botnick} {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to modify modes on myself."}    return 0    }set whohost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Done removing $who in the $botnick user database for channel $chan."}set whohandle [nick2hand $who $chan]chattr $whohandle +f|-aolv $chanif { ($services == "anope") } {return [do_delservicesuser $nick $who $chan AOP]   }if { ($services == "atheme") } {return [do_addservicesuser $nick $who $chan -Oh]   }    if { ($services == "none") } {return 1}}}############proc pub_eggserv_addsop {nick host handle chan text} {global services botnick verbosemsgsset opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] } {set who [lindex $text 0]if {$who == $botnick} {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to modify modes on myself."}    return 0    }set whohost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]adduser $who $mhostif {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Done adding $who in the $botnick user database for channel $chan."}set whohandle [nick2hand $who $chan]chattr $whohandle +f|+famolv $chanif {$who == ""} {putserv "NOTICE $nick :Usage: !addvop &lt;Nick to add&gt;"return 1}if { ($services == "anope") } {return [do_addservicesuser $nick $who $chan SOP]   }if { ($services == "atheme") } {return [do_addservicesuser $nick $who $chan +a]   } if { ($services == "none") } {return 1}}}############proc pub_eggserv_delsop {nick host handle chan text} {global services botnick verbosemsgsset opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] } {set who [lindex $text 0]if {$who == $botnick} {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to modify modes on myself."}    return 0    }set whohost [getchanhost $who $chan]set mhost [maskhost [getchanhost $who $chan]]if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Done removing $who in the $botnick user database for channel $chan."}set whohandle [nick2hand $who $chan]chattr $whohandle +f|-amolv $chanif { ($services == "anope") } {return [do_delservicesuser $nick $who $chan SOP]   }if { ($services == "atheme") } {return [do_addservicesuser $nick $who $chan -a]   }    if { ($services == "none") } {return 1}}}############proc do_addservicesuser {nick who chan mode} {global services chanserv workingchansif { ($services == "anope") } {putserv "PRIVMSG $chanserv :$mode $chan ADD $who"}if { ($services == "atheme") } {putserv "PRIVMSG $chanserv :FLAGS $chan $who $mode"}if { ($services == "none") } {return 1}putserv "NOTICE $nick :$who added to $chan $mode list."       return 1}############proc do_delservicesuser {nick who chan mode} {global services chanserv workingchansif { ($services == "anope") } {putserv "PRIVMSG $chanserv :$mode $chan DEL $who"}if { ($services == "atheme") } {putserv "PRIVMSG $chanserv :FLAGS $chan $who $mode"}if { ($services == "none") } {return 1}putserv "NOTICE $nick :$who removed from $chan $mode list."       return 1}################################################################################################### Channel Kick/Ban#################################################################################################Kickproc pub_eggserv_kick {nick host handle chan text} {global botnick workingchansglobal protectops retaliationproc gethandle {nick} {set host [getchanhost $nick]set handle [finduser "*!$host"]return $handle}set who [lindex $text 0]set why [lrange $text 1 end]# leave when bot dont has opset opper [nick2hand $nick $chan]if {![botisop $chan]} {return 0}if {$protectops == 1 } {if {[isop $who $chan] == 1} {if {$retaliation == 1 } {putserv "KICK $chan $nick :Kicking an operator is not allowed"}return 1}}if {[string tolower $who] == [string tolower $botnick]} {if {$retaliation == 1 } {putserv "KICK $chan $nick :Attempted channel takeover"}return 1 }if {[string tolower $who] == [string tolower $nick]} {putserv "KICK $chan $nick :Requested Self-kick"return 1}if {[matchattr $opper |+n] || [matchattr $opper |+m] || \[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || \[ishalfop $nick $chan] == 1 || [isop $nick $chan] == 1 || \[isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1 } {putserv "KICK $chan $who :$why" } else {putserv "NOTICE $nick :You do not have the correct privileges to use this command."}return 1}######proc pub_eggserv_ban {nick host hand chan arg} {global botnick eggserv_bantypeset arg [charfilter $arg]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n] || [matchattr $opper |+m] || \[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || \[ishalfop $nick $chan] == 1 || [isop $nick $chan] == 1 || \[isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1 } {if {[llength $arg] &lt; 1} {puthelp "NOTICE $nick :\002Usage:\002 [string trim $!ban &lt;nick|mask&gt; \[time\] \[reason\]"return 0}set who [lindex $arg 0]if {[strlwr $who] == [strlwr $botnick]} {puthelp "NOTICE $nick :Yeah right, like I'm going to let you ban ME!"return 0}set ti [lindex $arg 1]if {[isnumber $ti]} {set reason [lrange $arg 2 end]} else {set ti ""set reason [lrange $arg 1 end]}if {$reason == ""} { set reason "requested" }if {[onchan $who $chan]} {if { $eggserv_bantype == 0 } { set ipmask [lindex [split [maskhost $who![getchanhost $who $chan]] "@"] 1]set usermask [lindex [split [getchanhost $who $chan] "@"] 0]set banmask *!*$usermask@$ipmask} else { set banmask [getchanhost $who $chan]           set banmask "*!*[string range $banmask [string first @ $banmask] e]" }} else {  set banmask [lindex $arg 0]if {[string first "!" $banmask] == -1 &amp;&amp; [string first "@" $banmask] == -1} {if {[isnumber [string index $banmask 0]]} { set banmask *!*@$banmask } else { set banmask $banmask*!*@* }}if {[string first "!" $banmask] == -1} { set banmask *!*$banmask }if {[string first "@" $banmask] == -1} { set banmask $banmask*@* }}   if {![botisop $chan]} { return 0 }putserv "MODE $chan +b $banmask"  foreach chanuser [chanlist $chan] {      if {[string match [strlwr $banmask] [strlwr "$chanuser![getchanhost $chanuser $chan]"]] &amp;&amp; $chanuser != $botnick } { if {[nick2hand $chanuser $chan] != "*"} {if {$hand != [nick2hand $chanuser $chan]} {if {[matchattr [nick2hand $chanuser $chan] o|o $chan] &amp;&amp; ![matchattr $hand o|o $chan]} {                              puthelp "NOTICE $nick :Sorry, you must be an operator to ban an operator."return 0}if {([matchattr [nick2hand $chanuser $chan] m|m $chan] || [matchattr [nick2hand $who $chan] b]) &amp;&amp; ![matchattr $hand m|m $chan]} {                              puthelp "NOTICE $nick :Sorry, you must be a master to ban a master or a bot."return 0}}}       putkick $chan $chanuser $reason}       } switch $ti {""{newchanban $chan $banmask $nick $reasonputhelp "NOTICE $nick :New mask added : $banmask"}0{newchanban $chan $banmask $nick $reason $tiputhelp "NOTICE $nick :New mask added permanently : $banmask"}default{newchanban $chan $banmask $nick $reason $tiputhelp "NOTICE $nick :New mask added for $ti minutes : $banmask"}}return 0}}###### Banproc pub_eggserv_unban {nick host hand chan arg} {set arg [charfilter $arg]global botnick verbosemsgs debugmsgs servicechanif {[llength $arg] != 1} {        if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :We're in second if loop."}puthelp "NOTICE $nick :\002Usage:\002 !unban &lt;mask|number&gt;"return 0}set find 0set mask [lindex $arg 0]if {[isnumber $mask]} {foreach bans [banlist $chan] {incr findif {$find == $mask} { set mask [lindex $bans 0] ; break }        if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :We're in third if loop."}}if {[isnumber $mask]} {puthelp "NOTICE $nick :There is no ban number $mask in this chan, type !banlist."return 0} } else {if {[string first "!" $mask] == -1 &amp;&amp; [string first "@" $mask] == -1} {if {[isnumber [string index $mask 0]]} { set mask *!*@$mask } else { set mask $mask*!*@* }}if {[string first "!" $mask] == -1} {set mask *!*$mask}if {[string first "@" $mask] == -1} {set mask $mask*@*}}if {[isban $mask $chan]} { killchanban $chan $maskkillban $maskputhelp "NOTICE $nick :Ban successfully removed on $chan."return 0} foreach bans [chanbans $chan] {set victim [lindex $bans 0]if {[strlwr $victim] == [strlwr $mask]} {set find 1}}if {[botisop $chan] &amp;&amp; $find == 1} {pushmode $chan -b $mask            puthelp "NOTICE $nick :Ban successfully removed."return 0}puthelp "NOTICE $nick :No such ban on $chan."return 0}############Banlistproc pub_eggserv_banlist {nick host handle chan text} {global botnickglobal protectops retaliationset opper [nick2hand $nick $chan]if {[matchattr $opper |+n] || [matchattr $opper |+m] || \[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || \[ishalfop $nick $chan] == 1 || [isop $nick $chan] == 1 || \[isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1 } {putserv "NOTICE $nick :Banlist for $chan in $botnick."set num 1foreach chanbans [ banlist $chan ] {set banneduser [lindex $chanbans 0]set why [lindex $chanbans 1]set expire [lindex $chanbans 2]set who [lindex $chanbans 5]set remain [expr $expire - [unixtime]]if {$remain &gt; 0} {set remain "expire in [time_diff2 $expire]."} else {set remain "Permanent"}putserv "NOTICE $nick :\002BAN $num:\002 $banneduser, $remain"putserv "NOTICE $nick :$who: $why"incr num}putserv "NOTICE $nick :End of banlist for $chan." } else {putserv "NOTICE $nick :You do not have the correct privileges to use this command."}return 1}################################################################################################### Set Modes#################################################################################################proc do_mode {nick chan mode} {global workingchans botnick global verbosemsgs servicechan# leave when bot dont has opif {![botisop $chan] &amp;&amp; ![isowner $botnick $chan] &amp;&amp; ![isadmin $botnick $chan]} {return 0}#if {$verbosemsgs == 1 } {putserv "PRIVMSG $servicechan :$botnick and $nick."}  if { [string equal -nocase $botnick $nick] } {if {$verbosemsgs == 1 } {putserv "PRIVMSG $chan :Cowardly refusing to set modes on myself."}    return 1    }if {$verbosemsgs == 1 } {putserv "PRIVMSG $servicechan :Setting $mode to $nick on $chan..."}putserv "MODE $chan $mode $nick"}################################################################################################### Mode commands#################################################################################################proc pub_eggserv_voice {nick host handle chan text} {set who [lindex $text 0]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || \[matchattr $opper |+v $chan] || [ishalfop $nick $chan] == 1 || \[isop $nick $chan] == 1 || [isadmin $nick $chan] == 1 || \[isowner $nick $chan] == 1} {if {$who == ""} {set who $nick} if {[isvoice $who $chan]} {putserv "NOTICE $nick :$who already has a voice on $chan."return 1}if {![onchan $who $chan]} {putserv "NOTICE $nick :I dont see $who on $chan"return 1} return [do_mode $who $chan +v]  }}############proc pub_eggserv_devoice {nick host handle chan text} {set who [lindex $text 0]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || \[matchattr $opper |+v $chan] || [ishalfop $nick $chan] == 1 || \[isop $nick $chan] == 1 || [isadmin $nick $chan] == 1 || \[isowner $nick $chan] == 1 } {if {$who == ""} {set who $nick} if {![onchan $who $chan]} {putserv "NOTICE $nick :I dont see $who on $chan"return 1} #if {![isvoice $who $chan]} {#putserv "NOTICE $nick :$who doesn't have a voice on $chan."#return 1#}return [do_mode $who $chan -v]            }}############proc pub_eggserv_halfop {nick host handle chan text} {set who [lindex $text 0]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || \[ishalfop $nick $chan] == 1 || [isop $nick $chan] == 1 || \[isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {if {$who == ""} {set who $nick} if {[ishalfop $who $chan]} {putserv "NOTICE $nick :$who already has a halfop on $chan."return 1}if {![onchan $who $chan]} {putserv "NOTICE $nick :I dont see $who on $chan"return 1} return [do_mode $who $chan +h]  }}############proc pub_eggserv_dehalfop {nick host handle chan text} {set who [lindex $text 0]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || \[ishalfop $nick $chan] == 1 || [isop $nick $chan] == 1 || \[isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {if {$who == ""} {set who $nick} if {![onchan $who $chan]} {putserv "NOTICE $nick :I dont see $who on $chan"return 1} if {![ishalfop $who $chan]} {putserv "NOTICE $nick :$who doesn't have a halfop on $chan."return 1}return [do_mode $who $chan -h]            }}############proc pub_eggserv_op {nick host handle chan text} {global verbosemsgs debugmsgs servicechanset who [lindex $text 0]set opper [nick2hand $nick $chan]if {$who == ""} {set who $nick} if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Channelname : $chan."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Opper : $opper."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Nickname : $who."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :IsOwner (bot) : [matchattr $opper |+n $chan]"}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :IsAdmin (bot) : [matchattr $opper |+m $chan]"}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Isop (bot) : [matchattr $opper |+o $chan]"}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :IsOwner (services) : [isowner [strlwr $who] $chan]"}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :IsAdmin (services) : [isadmin [strlwr $who] $chan]"}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :IsOp (services) : [isop [strlwr $who] $chan]"}if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [isop $nick $chan] == 1 || \[isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {if {[isop $who $chan]} {putserv "NOTICE $nick :$who already has an op on $chan."return 1}if {![onchan $who $chan]} {putserv "NOTICE $nick :I dont see $who on $chan"return 1} if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Opping $who on $chan"}return [do_mode $who $chan +o]  }}############proc pub_eggserv_deop {nick host handle chan text} {set who [lindex $text 0]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [isop $nick $chan] == 1 || \[isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {if {$who == ""} {set who $nick} if {![onchan $who $chan]} {putserv "NOTICE $nick :I dont see $who on $chan"return 1} if {![isop $who $chan]} {putserv "NOTICE $nick $who doesn't have an op on $chan."return 1}return [do_mode $who $chan -o]            }}############proc pub_eggserv_protect {nick host handle chan text} {global verbosemsgs debugmsgs servicechanset who [lindex $text 0]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {if {$who == ""} {set who $nick} if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Channelname : $chan."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Nickname : $who."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :IsAdmin : [isadmin [strlwr $who] $chan]"}if {$who == ""} {set who $nick} if { [isadmin [strlwr $who] $chan] == 1 } {putserv "NOTICE $nick :$who already is protected on $chan."return 1}if {![onchan $who $chan]} {putserv "NOTICE $nick :I dont see $who on $chan"return 1} return [do_mode $who $chan +a]  }}############proc pub_eggserv_deprotect {nick host handle chan text} {global verbosemsgs debugmsgs servicechanset who [lindex $text 0]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {if {$who == ""} {set who $nick} if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Channelname : $chan."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Nickname : $who."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :IsAdmin : [isadmin [strlwr $who] $chan]"}if {![onchan $who $chan]} {putserv "NOTICE $nick :I dont see $who on $chan"return 1} if {![isadmin [strlwr $who] $chan] == 1} {putserv "NOTICE $nick :$who doesn't have admin rights on $chan."return 1}return [do_mode $who $chan -a]            }}############proc pub_eggserv_owner {nick host handle chan text} {global verbosemsgs debugmsgs servicechanset who [lindex $text 0]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [isowner $nick $chan] == 1} {if {$who == ""} {set who $nick} if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Channelname : $chan."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Nickname : $who."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :IsOwner : [isowner [strlwr $who] $chan]"}if {[isowner [strlwr $who] $chan] == 1} {putserv "NOTICE $nick :$who is already has owner privileges on the $chan."return 1}if {![onchan $who $chan]} {putserv "NOTICE $nick :I dont see $who on $chan"return 1} return [do_mode $who $chan +q]  }}############proc pub_eggserv_deowner {nick host handle chan text} {global verbosemsgs debugmsgs servicechanset who [lindex $text 0]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [isowner $nick $chan] == 1} {if {$who == ""} {set who $nick} if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Channelname : $chan."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :Nickname : $who."}if {$debugmsgs == 1 } {putserv "PRIVMSG $servicechan :IsOwner : [isowner [strlwr $who] $chan]"}if {![onchan $who $chan]} {putserv "NOTICE $nick :I dont see $who on $chan"return 1} if {[isowner [strlwr $who] $chan] == 0} {putserv "NOTICE $nick :$who doesn't have owner privileges on $chan."return 1}return [do_mode $who $chan -q]            }}################################################################################################### Topic ################################################################################################# Set Topicproc pub_eggserv_topic {nick host handle chan text} {global botnickset topic [lrange $text 0 end]set opper [nick2hand $nick $chan]if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || \[ishalfop $nick $chan] == 1 || [isop $nick $chan] == 1 || \[isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1 } {if {$topic == ""} {putserv "NOTICE $nick :Usage: !topic &lt;Topic you want.&gt;"return 1}if {![botisop $chan] &amp;&amp; ![isadmin $botnick $chan] == 1 &amp;&amp; ![isowner $botnick $chan] == 1 &amp;&amp; ![ishalfop $botnick $chan] == 1} {putserv "NOTICE $nick :Insufficient privileges to set the topic on $chan.&gt;"return 1} putserv "TOPIC $chan :$topic"return 1}}################################################################################################### Calculate ###########################################################################################proc time_diff2 {time} {set ltime [expr $time - [unixtime]]set seconds [expr $ltime % 60]set ltime [expr ($ltime - $seconds) / 60]set minutes [expr $ltime % 60]set ltime [expr ($ltime - $minutes) / 60]set hours [expr $ltime % 24]set days [expr ($ltime - $hours) / 24]set result ""if {$days} {append result "$days "if {$days} {append result "day "} {append result "days "}}if {$hours} {append result "$hours "if {$hours} {append result "hour "} {append result "hours "}}if {$minutes} {append result "$minutes "if {$minutes} {append result "minute"} {append result "minutes"}}if {$seconds} {append result " $seconds "if {$seconds} {append result "second"} {append result "seconds"}}return $result}proc charfilter {x {y ""} } {for {set i 0} {$i &lt; [string length $x]} {incr i} {switch -- [string index $x $i] {"\"" {append y "\\\""}"\\" {append y "\\\\"}"\[" {append y "\\\["}"\]" {append y "\\\]"}"\} " {append y "\\\} "}"\{" {append y "\\\{"}default {append y [string index $x $i]}}}return $y}proc check {hand nick host} {global eggserv_ident eggserv_clonesif {$eggserv_ident == 0} {return 1}if {[getuser $hand xtra auth] != "DEAD"} {set perm_host [getuser $hand xtra permident]if {[string match [strlwr $perm_host] [strlwr $nick!$host]]} { return 1}}set host [lindex [split $host "@"] 1]if {[getuser $hand xtra auth] == 1} {if {$eggserv_clones == 1} {if {[getuser $hand xtra authhost] == $host} { return 1 }}if {[getuser $hand xtra authnick] == $nick} { return 1 }}return 0}proc checksilent {hand} {set temp [getuser $hand xtra silent]if {$temp == 1} {return 1}return 0}############################################################################################# Help ###########################################################################################proc pub_eggserv_help {nick host handle chan text} {global eggservvers botnick mgmttoolsset opper [nick2hand $nick $chan]putserv "NOTICE $nick :----------------\002 $botnick $eggservvers Help \002----------------"putserv "NOTICE $nick : !register       Registers a user to $botnick"putserv "NOTICE $nick : !drop           Drops a user registration from $botnick"putserv "NOTICE $nick : !assign         Assigns $botnick to a channel"putserv "NOTICE $nick : !unassign       Releases $botnick from the channel"if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || \[matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || \[matchattr $opper |+v $chan] || [ishalfop $nick $chan] == 1 || \[isop $nick $chan] == 1 || [isadmin $nick $chan] == 1 || \[isowner $nick $chan] == 1} {putserv "NOTICE $nick :----------------------------------------------------"putserv "NOTICE $nick : !voice          Voices a user"putserv "NOTICE $nick : !devoice        Devoices a user"}if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || [matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || [ishalfop $nick $chan] == 1 || [isop $nick $chan] == 1 || [isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {putserv "NOTICE $nick : !halfop         Halfops a user"putserv "NOTICE $nick : !dehalfop       Dehalfops a user"}if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || [matchattr $opper |+o $chan] || [isop $nick $chan] == 1 || [isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {putserv "NOTICE $nick : !op             Ops a user"putserv "NOTICE $nick : !deop           Deops a user"}if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || [isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {putserv "NOTICE $nick : !protect        Protects a user"putserv "NOTICE $nick : !deprotect      Deprotects a user"}if {[matchattr $opper |+n $chan] || [isowner $nick $chan] == 1} {putserv "NOTICE $nick : !owner          Give owner status to a user"putserv "NOTICE $nick : !deowner        Takes owner status to a user"}if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || [matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || [ishalfop $nick $chan] == 1 || [isop $nick $chan] == 1 || [isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {putserv "NOTICE $nick :----------------------------------------------------"putserv "NOTICE $nick : !kick           Kicks a user"putserv "NOTICE $nick : !ban            Bans a user"putserv "NOTICE $nick : !kickban        Kickbans a user"putserv "NOTICE $nick : !unban          Unbans a user"}if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || [matchattr $opper |+o $chan] || [matchattr $opper |+l $chan] || [ishalfop $nick $chan] == 1 || [isop $nick $chan] == 1 || [isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {putserv "NOTICE $nick :----------------------------------------------------"putserv "NOTICE $nick : !addvop         Adds a user to the voice list"putserv "NOTICE $nick : !delvop         Removes user from the voice list"putserv "NOTICE $nick : !addnop         Adds a user to the neverop list"putserv "NOTICE $nick : !delnop         Removes user from the neverop list"}if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || [matchattr $opper |+o $chan] || [isop $nick $chan] == 1 || [isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {putserv "NOTICE $nick : !addhop         Adds a user to the hop list"putserv "NOTICE $nick : !delhop         Removes user from the hop list"}if {[matchattr $opper |+n $chan] || [matchattr $opper |+m $chan] || [isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {putserv "NOTICE $nick : !addaop         Adds a user to the op list"putserv "NOTICE $nick : !delaop         Removes user from the op list"}if {[matchattr $opper |+n $chan] || [isowner $nick $chan] == 1} {putserv "NOTICE $nick : !addsop         Adds a user to the admin list"putserv "NOTICE $nick : !delsop         Removes user from the admin list"}if { $mgmttools == 1} {if {[matchattr $nick +n $botnick] || [matchattr $nick +n $botnick] || [isadmin $nick $chan] == 1 || [isowner $nick $chan] == 1} {putserv "NOTICE $nick :----------------------------------------------------"putserv "NOTICE $nick : !status         Displays $botnick Status Messag"putserv "NOTICE $nick : !rehash         Rehashes $botnick Config File"putserv "NOTICE $nick : !reload         Reloads $botnick User Database"putserv "NOTICE $nick : !restart        Restarts $botnick Services"}if {[matchattr $nick +n] } {putserv "NOTICE $nick : !shutdown       Shuts $botnick Services down"}}putserv "NOTICE $nick :----------------\002 $botnick $eggservvers Help \002----------------"}putlog "EggServ.tcl $eggservvers TCL by Lupo Loaded"###### End of Script</code></pre></div>Thanks!<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12122">desperado836</a> — Fri Nov 16, 2012 1:06 am</p><hr />
]]></content>
	</entry>
	</feed>
