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

	<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>2025-12-09T15:19:07-04:00</updated>

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

		<entry>
		<author><name><![CDATA[pektek]]></name></author>
		<updated>2025-12-09T15:19:07-04:00</updated>

		<published>2025-12-09T15:19:07-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113418#p113418</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113418#p113418"/>
		<title type="html"><![CDATA[Re: Bad-Nick script with stack bans.]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113418#p113418"><![CDATA[
Which Tcl version is your Eggdrop running on?<br>And are you using Dalnet or UnrealirCd    ?<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=13010">pektek</a> — Tue Dec 09, 2025 3:19 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Carlin0]]></name></author>
		<updated>2025-02-25T15:53:40-04:00</updated>

		<published>2025-02-25T15:53:40-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113249#p113249</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113249#p113249"/>
		<title type="html"><![CDATA[Re: Bad-Nick script with stack bans.]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113249#p113249"><![CDATA[
It would be useful to be able to add nicknames without having to edit the script<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12778">Carlin0</a> — Tue Feb 25, 2025 3:53 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2025-02-25T15:14:04-04:00</updated>

		<published>2025-02-25T15:14:04-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113248#p113248</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113248#p113248"/>
		<title type="html"><![CDATA[Re: Bad-Nick script with stack bans.]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113248#p113248"><![CDATA[
ive been testing this code yesterday and managed to find a fix so in honor of Spike^^ for those that need it i'll post it here<br><div class="codebox"><p>Code: </p><pre><code># advanced badnick script v. 0.1 by SpiKe^^ ## list of badnicks #set bnik(nicks) [list "suckmy" \ "bobslovr" \ "pregnat" \ "sonofdog" \ "fkc" \ "fck" \ "incest" \ "big*dick" \ "bitch" \ "biatch" \ "slut" \ "dickhead" \ "prostitu" \ "whore" \]# list badnick channel(s) or "*" for all channels ##set bnik(chans) "#sumChannel #notherChan #test"set bnik(chans) "*"# max number of bans to stack in one mode command (1 or more) #set bnik(maxban) 6# set seconds to wait before removing bans or 0 to not remove #set bnik(btime) 30# max number of kicks to stack in one kick command (1 or more) #set bnik(maxkick) 4# set the kick-ban reason #set bnik(reasn) "\00304Bad Nick \00314Type: \002/nick New-Nick\002\00304 &amp; rejoin the channel."# set exempt userfile flags or "" for none #set bnik(xflag) "bmnof|of"# exempt all users with +o in the channel ?? ## ! this will add a brief delay (2 second minimum) ! ##  0 = disabled: don't exempt users with +o ##  1 = exempt all users with +o   ##  2 = also exempt users with +v  #set bnik(xops) 2# set seconds to wait before checking the channel for +o or +v #set bnik(otime) 2   ;# (0 = no delay) OR 2+ secs ## set seconds to wait to gather a queue (1 or more) #set bnik(qtime) 2#### !End of Settings! !End of Settings! !End of Settings! ####set bnik(nicks) [split [string tolower $bnik(nicks)]]set bnik(chans) [split [string tolower $bnik(chans)]]if {$bnik(xops)!=1 &amp;&amp; $bnik(xops)!=2} { set bnik(xops) 0 }bind join - * join:badnickproc join:badnick {nk uh hn ch} {  global bnik bnop  if {[isbotnick $nk]} { return }  set ch [string tolower $ch]  if {[lsearch -exact $bnik(chans) $ch] == -1 &amp;&amp; $bnik(chans)!="*"} { return }  if {$bnik(xflag)!="" &amp;&amp; [matchattr $hn $bnik(xflag) $ch]} { return }  foreach badnk $bnik(nicks) {    if {[string match -nocase *$badnk* $nk]} {  set isbad $badnk  ;  break  }  }  if {![info exists isbad]} { return }  set tid $ch,[unixtime]  lappend bnop($tid) [string tolower $nk!$uh!$isbad]  if {$bnik(otime)==0} {  check:badnick $tid  } elseif {[llength $bnop($tid)]==1} {    utimer $bnik(otime) [list check:badnick $tid]  }  return}proc check:badnick {tid} {  global bnik bnop bnqu  lassign [split $tid ","] ch ut  if {![info exists bnop($tid)]} { return }  foreach nkuh $bnop($tid) {  lassign [split $nkuh "!"] nk uh isbad    if {$bnik(xops)&gt;0 &amp;&amp; [isop $nk $ch]} { continue }    if {$bnik(xops)&gt;1 &amp;&amp; [isvoice $nk $ch]} { continue }    if {![info exists bnqu($ch)]} {      utimer $bnik(qtime) [list queue:badnick $ch]    }    lappend bnqu($ch) $nkuh  }  unset bnop($tid)}proc queue:badnick {ch} {  global bnik bnqu  if {![info exists bnqu($ch)]} { return }  if {![botisop $ch]} { unset bnqu($ch) ; return }  set banList ""  ;  set nickList ""  foreach nkuh $bnqu($ch) {  lassign [split $nkuh "!"] nk uh isbad    if {![onchan $nk $ch]} { continue }    set bmask "*$isbad*!*@*"    if {[lsearch $banList $bmask] == -1} { lappend banList $bmask }    if {[lsearch $nickList $nk] == -1} { lappend nickList $nk }  }  unset bnqu($ch)  set len [llength $banList]  ;  set max $bnik(maxban)  while {$len &gt; 0} {    if {$len &gt; $max} {      set mode [string repeat "b" $max]      set masks [join [lrange $banList 0 [expr {$max - 1}]]]      set banList [lrange $banList $max end]      incr len -$max    } else {      set mode [string repeat "b" $len]      set masks [join $banList]      set len 0    }    putquick "MODE $ch +$mode $masks"    if {$bnik(btime) &gt; 0} {      utimer $bnik(btime) [list putquick "MODE $ch -$mode $masks"]    }  }  set len [llength $nickList]  ;  set max $bnik(maxkick)  while {$len &gt; 0} {    if {$len &gt; $max} {      set nicks [join [lrange $nickList 0 [expr {$max - 1}]] ,]      set nickList [lrange $nickList $max end]      incr len -$max    } else {      set nicks [join $nickList]      set len 0    }    putquick "KICK $ch [join $nicks ,] :$bnik(reasn)"  }}</code></pre></div><br>i didnt change much just this line <br>  <blockquote class="uncited"><div> putquick "KICK $ch $nicks :$bnik(reasn)"  </div></blockquote>  <br><br>  and changed to<br>  <blockquote class="uncited"><div> putquick "KICK $ch [join $nicks ,] :$bnik(reasn)" </div></blockquote><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Tue Feb 25, 2025 3:14 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Arnold_X-P]]></name></author>
		<updated>2019-09-05T19:55:59-04:00</updated>

		<published>2019-09-05T19:55:59-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=107791#p107791</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=107791#p107791"/>
		<title type="html"><![CDATA[Bad-Nick script with stack bans.]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=107791#p107791"><![CDATA[
hi SpiKe^^<br>interesting its writing but it would be good to also have an example warning set that warns 3 times and of bankick and that also recognizes the variant of nickname changes is to say that when the offender changes the nickname he still recognizes it and applies the warning set..<br><br>example; description; that the bot warns 2 times and the third one that ban kick ///  if the set is 0 then it is direct ban when entering the channel<br><strong class="text-strong">set warnings 3</strong><br><br>it would be great if your writing has that already mentioned<br>set of warnings and nickname acknowledgments when you have changed to another nickname;<br>* symors (~Apna@181.115.129.223) has joined #beni2<br>* symors is now known as horny<br>eggdrop in channel; horny, change your nick please, 1 warning<br>eggdrop in channel; horny, if you don't change your nickname you will be ejected last warning.<br>in channel;  * horny was kicked by eggdrop (sorry on this channel badnicks are not allowed)<br><strong class="text-strong">or -----</strong><br>* horny (~Apna@181.115.129.223) has joined #beni2<br>eggdrop in channel; horny, change your nick please, 1 warning<br>eggdrop in channel; horny, if you don't change your nickname you will be ejected last warning.<br>in channel;  * horny was kicked by eggdrop (sorry on this channel badnicks are not allowed)<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8327">Arnold_X-P</a> — Thu Sep 05, 2019 7:55 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2019-06-05T03:30:37-04:00</updated>

		<published>2019-06-05T03:30:37-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=107681#p107681</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=107681#p107681"/>
		<title type="html"><![CDATA[Bad-Nick script with stack bans.]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=107681#p107681"><![CDATA[
i tested it somewhat it seems to not kick all stacked bans the stacked bans part seem to work  fine tho<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Wed Jun 05, 2019 3:30 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[SpiKe^^]]></name></author>
		<updated>2019-06-03T23:41:03-04:00</updated>

		<published>2019-06-03T23:41:03-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=107680#p107680</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=107680#p107680"/>
		<title type="html"><![CDATA[Bad-Nick script with stack bans.]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=107680#p107680"><![CDATA[
Try this and let me know.<br><div class="codebox"><p>Code: </p><pre><code># advanced badnick script v. 0.1 by SpiKe^^ ## list of badnicks #set bnik(nicks) "sumbadword notherbadword"# list badnick channel(s) or "*" for all channels #set bnik(chans) "#sumChannel #notherChan"# max number of bans to stack in one mode command (1 or more) #set bnik(maxban) 6# set seconds to wait before removing bans or 0 to not remove #set bnik(btime) 30# max number of kicks to stack in one kick command (1 or more) #set bnik(maxkick) 3# set the kick-ban reason #set bnik(reasn) "\00304Bad Nick \00314Type: \002/nick New-Nick\002\00304 &amp; rejoin the channel."# set exempt userfile flags or "" for none #set bnik(xflag) "bmno|o"# exempt all users with +o in the channel ?? ## ! this will add a brief delay (2 second minimum) ! ##  0 = disabled: don't exempt users with +o ##  1 = exempt all users with +o   ##  2 = also exempt users with +v  #set bnik(xops) 2# set seconds to wait before checking the channel for +o or +v #set bnik(otime) 2   ;# (0 = no delay) OR 2+ secs ## set seconds to wait to gather a queue (1 or more) #set bnik(qtime) 2#### !End of Settings! !End of Settings! !End of Settings! ####set bnik(nicks) [split [string tolower $bnik(nicks)]]set bnik(chans) [split [string tolower $bnik(chans)]]if {$bnik(xops)!=1 &amp;&amp; $bnik(xops)!=2} { set bnik(xops) 0 }bind join - * join:badnickproc join:badnick {nk uh hn ch} {  global bnik bnop  if {[isbotnick $nk]} { return }  set ch [string tolower $ch]  if {[lsearch -exact $bnik(chans) $ch] == -1 &amp;&amp; $bnik(chans)!="*"} { return }  if {$bnik(xflag)!="" &amp;&amp; [matchattr $hn $bnik(xflag) $ch]} { return }  foreach badnk $bnik(nicks) {    if {[string match -nocase *$badnk* $nk]} {  set isbad $badnk  ;  break  }  }  if {![info exists isbad]} { return }  set tid $ch,[unixtime]  lappend bnop($tid) [string tolower $nk!$uh!$isbad]  if {$bnik(otime)==0} {  check:badnick $tid  } elseif {[llength $bnop($tid)]==1} {    utimer $bnik(otime) [list check:badnick $tid]  }  return}proc check:badnick {tid} {  global bnik bnop bnqu  lassign [split $tid ","] ch ut  if {![info exists bnop($tid)]} { return }  foreach nkuh $bnop($tid) {  lassign [split $nkuh "!"] nk uh isbad    if {$bnik(xops)&gt;0 &amp;&amp; [isop $nk $ch]} { continue }    if {$bnik(xops)&gt;1 &amp;&amp; [isvoice $nk $ch]} { continue }    if {![info exists bnqu($ch)]} {      utimer $bnik(qtime) [list queue:badnick $ch]    }    lappend bnqu($ch) $nkuh  }  unset bnop($tid)}proc queue:badnick {ch} {  global bnik bnqu  if {![info exists bnqu($ch)]} { return }  if {![botisop $ch]} { unset bnqu($ch) ; return }  set banList ""  ;  set nickList ""  foreach nkuh $bnqu($ch) {  lassign [split $nkuh "!"] nk uh isbad    if {![onchan $nk $ch]} { continue }    set bmask "*$isbad*!*@*"    if {[lsearch $banList $bmask] == -1} { lappend banList $bmask }    if {[lsearch $nickList $nk] == -1} { lappend nickList $nk }  }  unset bnqu($ch)  set len [llength $banList]  ;  set max $bnik(maxban)  while {$len &gt; 0} {    if {$len &gt; $max} {      set mode [string repeat "b" $max]      set masks [join [lrange $banList 0 [expr {$max - 1}]]]      set banList [lrange $banList $max end]      incr len -$max    } else {      set mode [string repeat "b" $len]      set masks [join $banList]      set len 0    }    putquick "MODE $ch +$mode $masks"    if {$bnik(btime) &gt; 0} {      utimer $bnik(btime) [list putquick "MODE $ch -$mode $masks"]    }  }  set len [llength $nickList]  ;  set max $bnik(maxkick)  while {$len &gt; 0} {    if {$len &gt; $max} {      set nicks [join [lrange $nickList 0 [expr {$max - 1}]] ,]      set nickList [lrange $nickList $max end]      incr len -$max    } else {      set nicks [join $nickList]      set len 0    }    putquick "KICK $ch $nicks :$bnik(reasn)"  }}</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=7749">SpiKe^^</a> — Mon Jun 03, 2019 11:41 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[F|irT]]></name></author>
		<updated>2019-05-22T01:10:56-04:00</updated>

		<published>2019-05-22T01:10:56-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=107663#p107663</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=107663#p107663"/>
		<title type="html"><![CDATA[Bad-Nick script with stack bans.]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=107663#p107663"><![CDATA[
<div class="codebox"><p>Code: </p><pre><code>bind join - * join:badnickproc join:badnick {nick host hand chan} {global botnick badnicks badnickchans badnickexempt badnicktime badnicktimerif {(([lsearch -exact [string tolower $badnickchans] [string tolower $chan]] != -1) || ($badnickchans == "*")) &amp;&amp; ($nick != $botnick)} {foreach badnick [string tolower $badnicks] {set badnickban1 "*$badnick*!*@*"if {[string match *$badnick* [string tolower $nick]]} {if {([botisop $chan]) &amp;&amp; (![isop $nick $chan]) &amp;&amp; (![isvoice $nick $chan]) &amp;&amp; (![matchattr $hand $badnickexempt $chan]) &amp;&amp; ([onchan $nick $chan])} {putquick "MODE $chan +b $badnickban1"putquick "KICK $chan $nick :4Bad Nick 14Type /nick New-Nick 4&amp; rejoin The Channel ."timer $badnicktime "pushmode $chan -b $badnickban1"return 0}}}}}</code></pre></div>This is bad nickname kicker working fine ... but when flooder join with ban nick bot make ban one by one .. it's possible to make bot ban max in the raw ...  .. <br><br>like this ...<div class="codebox"><p>Code: </p><pre><code>+bbbbb *!*@103.111.54.* *!*@103.73.225.* *!*@103.124.236.* *!*@103.117.228.* *!*@101.51.141.*+bbbbbb *s*x*!*@* *pimp*!*@* *suck*!*@* ...</code></pre></div>if any scripter help me kindly it will be gr8 help .. thanks..<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12521">F|irT</a> — Wed May 22, 2019 1:10 am</p><hr />
]]></content>
	</entry>
	</feed>
