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

	<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-03-19T05:52:49-04:00</updated>

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

		<entry>
		<author><name><![CDATA[^DooM^]]></name></author>
		<updated>2005-03-19T05:52:49-04:00</updated>

		<published>2005-03-19T05:52:49-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=47923#p47923</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=47923#p47923"/>
		<title type="html"><![CDATA[Sticky]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=47923#p47923"><![CDATA[
There is a script called unbanparrot.tcl by egghead that removes internal bans when channel bans are removed you can find it here. <a href="http://members.fortunecity.com/eggheadtcl/" class="postlink">Click Me</a><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3723">^DooM^</a> — Sat Mar 19, 2005 5:52 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[demond]]></name></author>
		<updated>2005-03-19T03:43:26-04:00</updated>

		<published>2005-03-19T03:43:26-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=47919#p47919</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=47919#p47919"/>
		<title type="html"><![CDATA[Sticky]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=47919#p47919"><![CDATA[
no, it doesn't create sticky bans<br><br>here's a code snippet which on channel unban should remove the corresponding bot ban (only if set by the script):<div class="codebox"><p>Code: </p><pre><code>bind mode - "% -b" unbanproc unban {n u h c m v} {  foreach ban [banlist $c] {    set mask [lindex $ban 0]; set creator [lindex $ban 5]    if {[string equal -nocase $v $mask] &amp;&amp; $creator == $::botnick} {      killchanban $c $mask    }  }}</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5056">demond</a> — Sat Mar 19, 2005 3:43 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Mash]]></name></author>
		<updated>2005-03-19T00:57:59-04:00</updated>

		<published>2005-03-19T00:57:59-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=47914#p47914</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=47914#p47914"/>
		<title type="html"><![CDATA[Sticky]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=47914#p47914"><![CDATA[
I have this script here which sets sticky ban for 1 min, and creates a new ban if someone removes it before it expires<br>Is there some way this stickyban can be made in to normal ban, i mean to say, even if it creates ban , when some ops remove the ban from chan, bots should also remove the particular ban from its list.Would be a great if someone could help.<br>thanks in advance <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_surprised.gif" width="15" height="15" alt=":o" title="Surprised"> <br><br><br><div class="codebox"><p>Code: </p><pre><code># Let's now begin setting up variables!# You may use this variable to either Enable or Disable Control-Code Checking feature.# If you set this to "1", the bot will count the maximum length of any control codes-# phrased in the channel or to itself from a user.# The control codes I meant are Bold, Underline, Color.# Set this to "0" if you do not wish to use this feature.set chktsu 1# This variable is used to either Enable or Disable Character Length Checking feature.# If you set this to "1", the bot will count the maximum length of any characters-# phrased in the channel or to itself from a user.# Set this to "0" if you do not wish to use this feature.set chkltx 1# This variable is used to determine MAXIMUM VALUES allowed for control codes.# If you set "chktsu" to "1", the bot will count control codes. And if it found-# that control codes phrased are more and/or same with "tsu_maxchar", then it will-# trigger the ban and locking procedure.set tsu_maxchar 100# This variable is used to determine MAXIMUM VALUES allowed for any characters.# If you set "chkltx" to "1", the bot will count any characters pasted. And if it-# found that characters phrased are more and/or same with "ltx_maxchar", then it-# will trigger the ban and locking procedure.set ltx_maxchar 300# Ah, you may want to exclude some hosts from being checked by the bot for-# control codes and/or character length. Well, this is where you may set-# them. Note that you can set this as many as you want. separated by lines.# As an example below.set tsu_hostallow {  "@dal.net"}# You may put any kick messages below. As always you can put any kick-# messages as many as you wish, separated by lines. The bot will use-# one of these kick messages RANDOMLY. :)# Note that this kick message variable used when the bot kick a user-# triggered by "chktsu", exceeded control codes.set tsu_kmsgs {  "To many Control Codes!"  "beh!"}# This one has same mechanism with above variable. But this variable-# used when the bot kick a user triggered by "chkltx", exceeded-# character length.set ltx_kmsgs {  "calm down, you can always separate your words into few lines!"}# Hey, we might not want kick an Operator in our own room, so this-# is the variable where you might set it. Set this to "0" if you-# do not wish the bot to kick/ban an Operator who had their control codes-# exceeded, or character length exceeded. The bot will only 'insult' them.set tsu_banop 0# And this one is the 'insult' or some kind of warning message the bot will-# say to an Operator that triggered kick/ban procedure caused by their-# exceeded control codes. As usual you may want to put many 'insult' messages here.# Just separate them by lines. The bot will pick one randomly.set tsu_amsgs {  "well, was it your finger so itchy or your CTRL button so sultry?"}# Same as above, but this message in this variable taken when an Operator-# triggered kick/ban procedure caused by their exceeded characters.set ltx_amsgs {  "well, was it your finger so itchy or your keyboard keys so sultry?"}# This variable is used by the bot to determine how long it will ban the user-# from a channel. The measurement time is in 'minute'.# Note that this ban-time will only be used when control codes exceeds, regarding-# that you've set "chktsu" to "1"# Note that this variable is not used if you set "chktsu" to "0"set tsu_bantime 1# This variable is used by the bot to determine how long it will ignore the user.# Like above, the measurement time is in 'minute'. But remember this is also used-# ONLY when control codes exceeds, as above.# Note that this variable is not used if you set "chktsu" to "0"set tsu_ignoretime 1# This variable is used by the bot to determine how long it will ban the user-# from a channel. The measurement time is in 'minute'.# Note that this ban-time will only be used when character length exceeds, regarding-# that you've set "chkltx" to "1"# Note that this variable is not used if you set "chkltx" to "0"set ltx_bantime 1# This variable is used by the bot to determine how long it will ignore the user.# Like above, the measurement time is in 'minute'. But remember this is used-# ONLY when character length exceeds, as above.# Note that this variable is not used if you set "chkltx" to "0"set ltx_ignoretime 1# Here you can set either to Enable or Disable the locking feature regarding any floods-# happened. Either it was an exceeded control codes or exceeded character length.set tsu_lockchan 1# Here you can set how long the bot will lock (+mc) (moderated and color lock), when-# any of kick/ban/locking procedures triggered (includes both control code length and-# character length). And the measurement time is in 'sec'.# Note that this variable is ignored if you set "tsu_lockchan" to "0"set tsu_locktime 40# This is for your benefit hehe ;), you can either set your own LOGO here, your logo will appear-# when the bot notice you, or when it makes msgs/notices/kicks or scripts loading. So keep smiling-# and set this variable as you wish ;), you can either set this to "" to leave it blank.set pltxlg "Ban :"######### Please do not edit anything below unless you know what you are doing ;) #########proc bottsutrig {nick uhost hand rest} {global botnick chktsu chkltx tsu_maxchar ltx_maxchar tsu_hostallow tsu_kmsgs tsu_amsgs ltx_kmsgs ltx_amsgs tsu_bantime tsu_ignoretime tsu_lockchan tsu_locktime ltx_bantime ltx_ignoretime pltxlgif {[isbotnick $nick] || [matchattr $hand o]} {return 0}foreach tallowhost [string tolower $tsu_hostallow] {if {[string match *$tallowhost* [string tolower $uhost]]} {return 0}} if {[string match "#*" [lindex $rest 0]]} {set chan [lindex $rest 0] ; set tvictim $chan ; set rest [lrange $rest 1 end]} else {set chan "" ; set tvictim $botnick}if {$chktsu} {if {[string match *\002* $rest] || [string match ** $rest] || [string match * * $rest]} {set tlength [string length $rest] ; set bcode 0 ; set ucode 0 ; set kcode 0for {set i 0} {$i &lt; $tlength} {incr i} {if {[string index $rest $i] == "\002"} {incr bcode}if {[string index $rest $i] == ""} {incr ucode}if {[string index $rest $i] == " "} {incr kcode}}if {$bcode &gt;= $tsu_maxchar/3 || $ucode &gt;= $tsu_maxchar/3 || $kcode &gt;= $tsu_maxchar/3} {set banhost *!*@[lindex [split $uhost @] 1]set tsu_reason "$pltxlg \002Control Codes Exceed\002 (BC: \002$bcode\002 - UC: \002$ucode\002 - CC: \002$kcode\002) to \002$tvictim\002 from: \002$nick\002."set tsu_kmsg " 4$pltxlg \002$nick\002: (BC: \002$bcode\002 - UC: \002$ucode\002 - CC: \002$kcode\002): [lindex $tsu_kmsgs [rand [llength $tsu_kmsgs]]] "set tsu_amsg "$pltxlg $nick: (BC: \002$bcode\002 - UC: \002$ucode\002 - CC: \002$kcode\002): [lindex $tsu_amsgs [rand [llength $tsu_amsgs]]]"dotsuban $nick $uhost $banhost $chan $tsu_reason $tsu_kmsg $tsu_amsg $tsu_bantime $tsu_ignoretimeputlog "$pltxlg \002Control Codes Exceed\002 (BC: \002$bcode\002 - UC: \002$ucode\002 - CC: \002$kcode\002) to \002$tvictim\002 from: \002$nick\002." ; return 0}}}if {$chkltx} {if {[string length $rest] &gt;= $ltx_maxchar} {set banhost *!*@[lindex [split $uhost @] 1]set ltx_reason "$pltxlg \002Long Text\002 (\002[string length $rest]\002) to \002$tvictim\002 from: \002$nick\002."set ltx_kmsg " 4$pltxlg \002$nick\002: [lindex $ltx_kmsgs [rand [llength $ltx_kmsgs]]] "set ltx_amsg "$pltxlg $nick: (\002[string length $rest]\002): [lindex $ltx_amsgs [rand [llength $ltx_amsgs]]]"dotsuban $nick $uhost $banhost $chan $ltx_reason $ltx_kmsg $ltx_amsg $ltx_bantime $ltx_ignoretimeputlog "$pltxlg \002Long Text\002 (\002[string length $rest]\002) to \002$tvictim\002 from: \002$nick\002." ; return 0}} ; return 0}proc dotsuban {nick uhost tbanhost tchan treason tkickmsg topmsg tbantime tignoretime} {global botnick tsu_banop tsu_lockchan tsu_locktime pltxlgif {$tchan != ""} {if {[botisop $tchan]} {if {[isop $nick $tchan]} {if {!$tsu_banop} {putquick "PRIVMSG $tchan :$topmsg" ; return 0}} ; newignore $tbanhost $botnick $treason $tignoretimeputlog "$pltxlg Placing in Ignore on: \002$tbanhost\002 for \002$tignoretime\002 minute(s)."if {$tsu_lockchan} {putquick "MODE $tchan +MRc" -next ; if {$tsu_locktime &lt;= 0} {set tsu_locktime 5}putlog "$pltxlg Activating Channel lock in channel: \002$tchan\002 for \002$tsu_locktime\002 sec(s)."utimer $tsu_locktime "utsulock $tchan"}newchanban $tchan $tbanhost $botnick $treason $tbantimeset lmembers [chanlist $tchan]foreach tsumember $lmembers {set lselectedhost [getchanhost $tsumember $tchan]set tsubanhost *!*@[lindex [split $lselectedhost @] 1]if {$tbanhost == $tsubanhost} {if {[isop $tsumember $tchan]} {putquick "MODE $tchan -o+b $tsumember $tsumember!*@*"} ; putkick $tchan $tsumember $tkickmsg}}} else {newignore $tbanhost $botnick $treason $tignoretimeputlog "$pltxlg Placing in Ignore on: \002$tbanhost\002 for \002$tignoretime\002 minute(s). Reason: $treason."}} else {newignore $tbanhost $botnick $treason $tignoretimeputlog "$pltxlg Placing in Ignore on: \002$tbanhost\002 for \002$tignoretime\002 minute(s). Reason: $treason."} ; return 0}  proc chntsutrig {nick uhost hand chan rest} {global botnick ; append chars "$chan $rest" ; bottsutrig $nick $uhost $hand $chars}proc utsulock {tsu_chan} {global botnick pltxlgif {[validchan $tsu_chan]} {if {[botisop $tsu_chan]} {set tcurrmode [getchanmode $tsu_chan]if {[string match "*M*" $tcurrmode] || [string match "*R*" $tcurrmode] || [string match "*R*" $tcurrmode]} {putquick "MODE $tsu_chan -mMRc" ; putlog "$pltxlg Opening Channel lock on: \002$tsu_chan\002."}}} ; return 0}proc nottsutrig {from keyword arg} {global botnickset nick [lindex [split $from !] 0] ; set uhost [lindex [split $from !] 1]if {[string match "*.*" $from]} {return 0} ; set chan ""if {[string match "#*" [lindex $arg 0]]} {# if {[string match "*@*" [lindex $arg 0]]} {set chan [lindex [split [string tolower [lindex $arg 0]] @] 1]}set chan [lindex $arg 0] ; set rest [lrange $arg 1 end]} else {set rest $arg}if {$chan != ""} {append chars "$chan $rest"} else {set chars $rest} ; bottsutrig $nick $uhost $uhost $chars ; return 0}</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=4991">Mash</a> — Sat Mar 19, 2005 12:57 am</p><hr />
]]></content>
	</entry>
	</feed>
