<?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/forum/2" />

	<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-17T12:10:59-04:00</updated>

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

		<entry>
		<author><name><![CDATA[Urores]]></name></author>
		<updated>2025-12-17T12:10:59-04:00</updated>

		<published>2025-12-17T12:10:59-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113419#p113419</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113419#p113419"/>
		<title type="html"><![CDATA[Scripting Help • Re: eggdrop connect with chatgpt]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113419#p113419"><![CDATA[
I played with this a bit using Eggdrop + Tcl. The simplest way is to trigger on !ask, grab the text, then call the API using exec curl or http::geturl from Tcl. When the response comes back, just parse the JSON and send it with putserv "PRIVMSG $nick :$reply" so it stays private. Keep answers short or split them, since long messages can get cut.<br><br>Also watch rate limits and errors, or your bot will feel “dead” sometimes. Log failures so you know what’s happening behind the scenes.<br><br>In the  world of IRC bots, keeping things simple is usually best. Once it works reliably, you can always expand features later.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=13502">Urores</a> — Wed Dec 17, 2025 12:10 pm</p><hr />
]]></content>
	</entry>
		<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[Scripting Help • Re: Bad-Nick script with stack bans.]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<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[pektek]]></name></author>
		<updated>2025-12-07T11:05:06-04:00</updated>

		<published>2025-12-07T11:05:06-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113415#p113415</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113415#p113415"/>
		<title type="html"><![CDATA[Scripting Help • Re: check blacklisted channels after 5 minutes after joining channel]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113415#p113415"><![CDATA[
I don’t really know much about DALnet. This bot is based on Unreal 3.2. If you switch to Unreal, you can easily use what I shared with you. There are no errors; I carefully tested everything before sharing it. Thanks a lot for your interest, Simo. If you ever have any questions about an Unreal 3.2 Eggdrop, feel free to ask; I can test it for you and share a clean, trouble-free version anytime         <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_cool.gif" width="15" height="15" alt="8)" title="Cool"><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=13010">pektek</a> — Sun Dec 07, 2025 11:05 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2025-12-07T11:00:49-04:00</updated>

		<published>2025-12-07T11:00:49-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113414#p113414</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113414#p113414"/>
		<title type="html"><![CDATA[Scripting Help • Re: check blacklisted channels after 5 minutes after joining channel]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113414#p113414"><![CDATA[
thanks for your reply pektek but it seems all 3 methods you posted dont meet the criteria ive mentioned in my first post and also i dont need anything unrealircd related as this is used on dalnet, but i apreciate your attempt to contribute to a solution, this is much apreciated as always ofcourse.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Sun Dec 07, 2025 11:00 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[pektek]]></name></author>
		<updated>2025-12-06T12:22:57-04:00</updated>

		<published>2025-12-06T12:22:57-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113413#p113413</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113413#p113413"/>
		<title type="html"><![CDATA[Scripting Help • Re: check blacklisted channels after 5 minutes after joining channel]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113413#p113413"><![CDATA[
# NOTE:<br># Your Eggdrop bot MUST be inside the channels you want to monitor.<br># Otherwise the scanner will NOT work.<br># Tested and working. — Pektek<br># Please respect the time and effort put into this.<br><br>#  Just run it, sit down, and watch, Simo<br><br><div class="codebox"><p>Code: </p><pre><code>namespace eval checkbadchan {    # JOIN trigger    bind join - * checkbadchan::checkbadchan:scan    # Main scan procedure    proc checkbadchan:scan {nick uhost hand chan} {        # Skip bot, op, halfop        if {[isbotnick $nick] || [matchattr $hand of|of $chan]} {            return 0        }        # Convert channel name to lowercase        set lc [string tolower $chan]        # Blacklisted channel keywords        set regex {.*(sex|sexy|sexchat|seks|porno|porn|pornstar|gay|gey|[censored]|fck|fuk|dick|diq|cum|cumm|horny|bdsm|slut|whore|tits|milf).*}        # If match found        if {[regexp -nocase $regex $lc]} {            putlog "BADCHAN → $nick joined $chan (MATCH)"            # Create ban mask            set hostmask "*!*@[lindex [split $uhost @] 1]"            # Add ban if not already banned            if {![ischanban $hostmask $chan]} {                pushmode $chan +b $hostmask            }            # Send private message            putserv "PRIVMSG $nick :Warning: Blacklisted channel detected -&gt; $chan"            # Kick user            putserv "KICK $chan $nick :BLACKLISTED CHANNEL"            return 0        }        return 0    }}putlog "Loaded by Pektek"</code></pre></div>I’m giving you three versions, both tested and working. I spent hours on this for you, Simo.<br>Respectfully, Pektek.   <br><br>NOTE: What this TCL does (short &amp; clear):<br>     !add #channel → Adds the channel to the blacklist, saves it to .badchan and channels.conf.<br>Bot automatically JOINs the channel using OS RAW JOIN.<br><br>When the bot joins the channel, it takes +o, and after 2 seconds it scans everyone inside.<br><br>If the bot is in the channel, anyone who joins is banned + kicked after 5 seconds.<br><br>Even if the user is OP / founder / admin, they still get ban + kick.<br><br>Bot stays in the channel for 2 minutes, then sends PART and leaves.<br><br>After a bot restart, .badchan is loaded and the bot rejoins all blacklisted channels and continues working automatically. <br>Please move the bot you want to operate to an authorized channel and add it to the channel using !add #channel.<br><br>                                            Just run it, sit down, and watch, Simo   <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_cool.gif" width="15" height="15" alt="8)" title="Cool"> <br><div class="codebox"><p>Code: </p><pre><code>namespace eval badchan {    variable list {}    variable file ".badchan"    ###################################################    # LOAD CHANNEL LIST (ON RESTART)    ###################################################    proc load_list {} {        variable list        variable file        if {[file exists $file]} {            set fp [open $file r]            set data [split [read $fp] "\n"]            close $fp            foreach chan $data {                if {$chan ne ""} {                    lappend list $chan                }            }            putlog "BADCHAN → Loaded [llength $list] channels from file."        } else {            putlog "BADCHAN → .badchan file not found, creating new list."        }    }    ###################################################    # SAVE CHANNEL LIST TO FILE    ###################################################    proc save_list {} {        variable list        variable file        set fp [open $file w]        foreach chan $list { puts $fp $chan }        close $fp        putlog "BADCHAN -&gt; Channel list saved to file."    }    ###################################################    # APPEND CHANNEL TO channels.conf    ###################################################    proc save_conf {chan} {        set fp [open "channels.conf" a]        puts $fp "channel add $chan {\n    auto-join 1\n}"        close $fp        putlog "BADCHAN -&gt; $chan added to channels.conf."    }    ###################################################    # COMMAND: !add #channel    ###################################################    bind pub n|n !add ::badchan::cmd_add    proc cmd_add {nick uhost hand chan args} {        variable list        set target [string tolower [lindex $args 0]]        if {$target eq "" || [string index $target 0] ne "#"} {            putserv "PRIVMSG $chan :Usage: !add #channel"            return        }        if {[lsearch -exact $list $target] != -1} {            putserv "PRIVMSG $chan :$target is already in the blacklist."            return        }        # Add to internal list + save        lappend list $target        save_list        save_conf $target        putserv "PRIVMSG $chan :$target has been added to the BADCHAN blacklist."        putlog "BADCHAN → Added $target to blacklist."        # Register channel in Eggdrop        channel add $target        channel set $target +auto-join        channel set $target -inactive        # RAW JOIN through OS (guaranteed join)        utimer 2 "putserv \"PRIVMSG OS :RAW :$::botnick JOIN $target\""        putlog "BADCHAN → RAW JOIN sent for $target."    }    ###################################################    # SCAN CHANNEL (If bot joins late)    ###################################################    proc scan_channel {chan} {        set users [chanlist $chan]        foreach u $users {            if {![string equal -nocase $u $::botnick]} {                set host [getchanhost $u $chan]                ::badchan::punish $chan $u $host            }        }        putlog "BADCHAN → Completed scan for $chan (all users punished)."    }    ###################################################    # JOIN EVENT HANDLER    ###################################################    bind join - * ::badchan::on_join    proc on_join {nick uhost hand chan} {        variable list        set chan [string tolower $chan]        # If channel not in blacklist → do nothing        if {[lsearch -exact $list $chan] == -1} return        # BOT JOINS        if {[string equal -nocase $nick $::botnick]} {            # Bot gets OP            utimer 1 "putserv \"MODE $chan +o $::botnick\""            putlog "BADCHAN -&gt; Bot joined $chan and received +o."            # Scan the channel (punish all users)            utimer 2 [list ::badchan::scan_channel $chan]            # Leave after 2 minutes            utimer 120 "putserv \"PART $chan :Leaving…\""            return        }        # USER JOINS → punish after 5 seconds        utimer 5 [list ::badchan::punish $chan $nick $uhost]    }    ###################################################    # PUNISHMENT SYSTEM (BAN + KICK)    ###################################################    proc punish {chan nick uhost} {        putlog "BADCHAN → Punishing $nick in $chan."        # Ensure bot has OP        if {![isop $::botnick $chan]} {            putserv "MODE $chan +o $::botnick"            after 300        }        # Create ban mask        set hostpart [lindex [split $uhost @] 1]        set mask "*!*@$hostpart"        # Ban + kick user        putserv "MODE $chan +b $mask"        putserv "KICK $chan $nick :Blacklisted channel."        putlog "BADCHAN → $nick was banned and kicked from $chan."    }    ###################################################    # AUTO-JOIN BLACKLISTED CHANNELS AFTER RESTART    ###################################################    bind evnt - init-server ::badchan::startup    proc startup {type} {        variable list        ::badchan::load_list        foreach chan $list {            channel add $chan            channel set $chan +auto-join            channel set $chan -inactive            # RAW JOIN through OS            utimer 3 "putserv \"PRIVMSG OS :RAW :$::botnick JOIN $chan\""            putlog "BADCHAN → RAW JOIN sent for $chan after restart."        }    }}putlog "Loaded Badchan by pektek"                       </code></pre></div>Please respect the time and effort put into this.  <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_cool.gif" width="15" height="15" alt="8)" title="Cool"><br><br>If you want to prevent anyone from joining channels except their autojoin channels, the easiest way is to add the following code inside unrealircd.conf:<br> After adding this, save the file and run /rehash on the server, or execute ./unreal rehash in telnet.<br><br>From now on, no user will be able to join any channel manually.<br>This is the third version of this method.<br><div class="codebox"><p>Code: </p><pre><code>deny channel {channel "#*";reason "Opening channels on the server is FORBIDDEN!";warn on;};allow channel {    channel "#Connection";};allow channel {    channel "#DJ";};allow channel {    channel "#DJChat";};allow channel {    channel "#Help";};allow channel {    channel "#WordGame";};allow channel {    channel "#Number";};</code></pre></div>When you set the channel names as autojoin, no one will be allowed to join any channels other than the ones you specify.<br>No user will be able to randomly join any channels; they will be blocked.<br>These are only examples — the important point is that the channel names you define for autojoin must be the same as the channel names you write here.<br>This added command is valid and tested for the Unreal 3.2.x series. It has not been tested on other versions.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=13010">pektek</a> — Sat Dec 06, 2025 12:22 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2025-12-06T05:26:00-04:00</updated>

		<published>2025-12-06T05:26:00-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113412#p113412</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113412#p113412"/>
		<title type="html"><![CDATA[Scripting Help • Re: check blacklisted channels after 5 minutes after joining channel]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113412#p113412"><![CDATA[
Ive tried this version and it returns lot of errors, but this code seems generated by AI, did you write this code?<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Sat Dec 06, 2025 5:26 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[pektek]]></name></author>
		<updated>2025-12-04T09:47:45-04:00</updated>

		<published>2025-12-04T09:47:45-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113410#p113410</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113410#p113410"/>
		<title type="html"><![CDATA[Scripting Help • Re: identify nick random]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113410#p113410"><![CDATA[
Did you mean this abah ?<br> <div class="codebox"><p>Code: </p><pre><code># --- Sequential NickServ Identify System ---# Prepared for pektek # List of nicks to identifyset ns_nicklist {    Nick1    Nick2    Nick3    Nick4    Nick5    Nick6    Nick7    Nick8}# Password for NickServ (if all nicks use the same password)set ns_password "YOURPASSWORD"# Keeps track of the current index in the nick listset ns_index 0# Interval: 4 hours = 14400 secondsset ns_interval 14400# Function to send NickServ IDENTIFYproc ns_identify {} {    global ns_nicklist ns_password ns_index ns_interval    # Select current nick    set nick [lindex $ns_nicklist $ns_index]    # Send IDENTIFY command    putserv "PRIVMSG NickServ :IDENTIFY $nick $ns_password"    putlog "NickServ IDENTIFY sent for nick: $nick"    # Move to next nick    incr ns_index    if {$ns_index &gt;= [llength $ns_nicklist]} {        set ns_index 0    }    # Schedule next run    utimer $ns_interval ns_identify}# Start system when bot connects to serverbind evnt - init-server ns_startproc ns_start {type} {    global ns_interval    putlog "Sequential NickServ Identify System Started."    utimer 10 ns_identify}</code></pre></div>When the bot connects, the system starts after 10 seconds.<br><br>It sends NickServ:<br><br>/msg NickServ IDENTIFY &lt;nick&gt; &lt;password&gt;<br>Every 4 hours it switches to the next nick in the list.<br><br>After all 8 nicks are done, it loops back to the first nick.<br><br>Your bot’s actual IRC nickname never changes.<br><br><br>Does it work or not ? If not, what are the errors ?<br><br>and<br><br>It seems like this script is not working because it does not show the identify nick process and I have tried this, is there something wrong?   <br><br>the answer is below<br><div class="codebox"><p>Code: </p><pre><code># Nick + password list (each entry is a pair: {nick pass})set np {    {"abikoe" "censored"}    {"akoeabi" "censored"}    {"ombul"  "censored"}}# Counter for which nick to useset cnp 0proc identnick {min hour day month wod} {    # Total number of nick-pass pairs    set total [llength $::np]    # Reset index if out of range    if {$::cnp &gt;= $total} {        set ::cnp 0    }    # Get the current nick-pass pair    set pair [lindex $::np $::cnp]    set nick [lindex $pair 0]    set pass [lindex $pair 1]    # Security check    if {$nick eq "" || $pass eq ""} {        putlog "Warning: Nick or password is empty. Identification skipped!"        return    }    # Change nick    putserv "NICK $nick"    # Identify to NickServ    putserv "PRIVMSG NickServ :IDENTIFY $pass"    # Move to next pair for the next run    incr ::cnp    # Switch back to the bot's main nickname after 2 seconds    utimer 2 [list putserv "NICK $::botnick"]    # Log message    putlog "Auto-ident: Logged in to NickServ using nick $nick."}# Runs every day at 05:00 and 17:00bind cron - "0 5,17 * *" identnick</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=13010">pektek</a> — Thu Dec 04, 2025 9:47 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[pektek]]></name></author>
		<updated>2025-12-02T11:56:32-04:00</updated>

		<published>2025-12-02T11:56:32-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113403#p113403</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113403#p113403"/>
		<title type="html"><![CDATA[Scripting Help • Re: check blacklisted channels after 5 minutes after joining channel]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113403#p113403"><![CDATA[
try this ;<br><br>If there is a mistake, just tell me, my friend.<br><div class="codebox"><p>Code: </p><pre><code>namespace eval checkbadchan {    bind join - * [namespace current]::Djoin:badChnz:Checker    setudef flag chckbadchan    if {[string match "*BadChan:Scan*" [utimers]] == 0} {        utimer 5 [namespace current]::BadChan:Scan    }    proc Djoin:badChnz:Checker {nick uhost hand chan} {        if {![channel get $chan chckbadchan]} { return 0 }        if {[isbotnick $nick] || [matchattr $hand of|of $chan]} { return 0 }        after 2000 [list [namespace current]::Delay-join:badChnz:Chk $nick $uhost $chan]    }    proc Delay-join:badChnz:Chk {nick uhost chan} {        if {![channel get $chan chckbadchan]} { return 0 }        if {[isbotnick $nick] || [isop $nick $chan] || [ishalfop $nick $chan] || [matchattr [nick2hand $nick] of|of $chan]} { return 0 }        if {![info exists ::badchanwhois]} { set ::badchanwhois [list] }        if {[lsearch -exact $::badchanwhois "[string tolower $nick] $chan"] == -1} {            lappend ::badchanwhois [string tolower $nick] $chan        }    }    proc BadChan:Scan {} {        set badwhoisonchan [list]        if {[string match "*BadChan:Scan*" [utimers]] == 0} {            utimer 5 [namespace current]::BadChan:Scan        }        if {![info exists ::badchanwhois]} { return 0 }        foreach {nick chan} $::badchanwhois {            if {[onchan $nick $chan]} {                lappend badwhoisonchan [string tolower $nick]            }        }        if {[llength $badwhoisonchan]} {            [namespace current]::Stck:WHoiZ $chan $badwhoisonchan        }    }    proc Stck:WHoiZ {chan userList {max 20}} {        set ::chanxer $chan        set userList [lsort -unique $userList]        set count [llength $userList]        set counter 0        while {$count &gt; 0} {            if ($count &gt; $max) {                set users [join [lrange $userList 0 [expr {$max - 1}]] ","]                set userList [lreplace $userList 0 [expr {$max - 1}]]                incr count -$max            } else {                set users [join $userList ","]                set count 0            }            incr counter 1            after [expr {$counter * 5000}] [list putserv "Whois :$users"]        }        bind raw - 319 [namespace current]::Check_BChanz    }    proc Check_BChanz {from key arg} {        set args [join $arg]        set nick [lindex $arg 1]        # Hata engellemek için default host        set chost ""        # Kullanıcı kanalda ise host’u al        if {[onchan $nick $::chanxer]} {            set chost [getchanhost $nick $::chanxer]        }        # Host yine boşsa işlem yapma — hata engelliyoruz        if {$chost eq ""} {            return 0        }        set badchans [list]        # ------------------ KARA LİSTE REGEX ------------------        if {[regexp -nocase {            slut|bdsm|s[0o]d[0o]m|daughter|wh[0o]r[3e]|subm[i1]ss[1i]v[3e]|            s[3e]ks|s[3e]cs|tits|pr[3e]gn[4a]t[1i]|pregnant|rape|r[0o]l[3e]pl[a4]y|            ambition|g[a4]y|[sf][4u]ck|inc[3e]st|s[3e]x|th[i1]rsty|c[4u]m|            t[3e][3e]nw[a4]nk[i1]n|(s|f)uck|p(orn|0rn|enis)|h[0o]rny|            h[0o]m[0o]se(x|ks)        } $args]} {            lappend badchans $args        }        # -------------------------------------------------------        if {[llength $badchans]} {            putlog "Bad Channel Detected → $nick | [join $badchans]"            # IRCCloud mask fix            if {[string match -nocase "*@*irccloud*" $chost]} {                set ident [string trimleft [lindex [split $chost @] 0] "~"]                set xbmaskx [string map {sid id uid id} $ident]                set bmask *!*[string tolower $xbmaskx]@*            } else {                set bmask "*!*@[lindex [split $chost @] 1]"            }            if {![ischanban $bmask $::chanxer]} {                pushmode $::chanxer +b $bmask            }            if {[onchan $nick $::chanxer]} {                putserv "privmsg $nick :\00312$nick\00301 Yasaklı / Blacklisted Kanal Tespit Edildi → \00304[join $badchans]\003"                putserv "kick $::chanxer $nick :\00304« BAD / BLACKLISTED SPAM CHANNEL »\017"            }        }        return 0    }}putlog "Loaded → [file normalize [info script]]"   </code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=13010">pektek</a> — Tue Dec 02, 2025 11:56 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2025-11-30T14:02:38-04:00</updated>

		<published>2025-11-30T14:02:38-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113397#p113397</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113397#p113397"/>
		<title type="html"><![CDATA[Scripting Help • Re: check blacklisted channels after 5 minutes after joining channel]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113397#p113397"><![CDATA[
also the  timer doesnt get cleared <br><blockquote class="uncited"><div>after#858 = {putserv {Whois :alard,circosta,consuela,dragone,fanya,ioab,nakasuji,pavlov,sisson,tremayne}} timer</div></blockquote><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Sun Nov 30, 2025 2:02 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2025-11-30T13:25:00-04:00</updated>

		<published>2025-11-30T13:25:00-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113396#p113396</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113396#p113396"/>
		<title type="html"><![CDATA[Scripting Help • Re: check blacklisted channels after 5 minutes after joining channel]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113396#p113396"><![CDATA[
thanks for your reply <br><br>Ive tested it and got this error :<br><blockquote class="uncited"><div>Tcl error [::checkbadchan::Check_BChanz]: can't read "chost": no such variable</div></blockquote><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Sun Nov 30, 2025 1:25 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[CrazyCat]]></name></author>
		<updated>2025-11-30T10:19:41-04:00</updated>

		<published>2025-11-30T10:19:41-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113395#p113395</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113395#p113395"/>
		<title type="html"><![CDATA[Scripting Help • Re: not working]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113395#p113395"><![CDATA[
And ?<br>Does it work or not ? If not, what are the errors ?<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=691">CrazyCat</a> — Sun Nov 30, 2025 10:19 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[pektek]]></name></author>
		<updated>2025-11-30T09:29:53-04:00</updated>

		<published>2025-11-30T09:29:53-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113394#p113394</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113394#p113394"/>
		<title type="html"><![CDATA[Scripting Help • Re: not working]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113394#p113394"><![CDATA[
<div class="codebox"><p>Code: </p><pre><code>bind pub - "idle" do:whoissetudef flag idleproc do:whois {nick uhost handle chan text} {    global workingchan    if {$text eq ""} {        putserv "PRIVMSG $chan :Use: idle &lt;nick&gt;"        return    }    bind raw - 317 watch:317    bind raw - 402 watch:402    putserv "WHOIS $text $text"    set workingchan $chan}proc watch:317 {from keyword text} {    global workingchan    if {[info commands duration] eq ""} {        set idle "[lindex [split $text] 2] is seconds idle"    } else {        set idle "[duration [lindex [split $text] 2]]"    }    if {[info commands ctime] eq ""} {        set signon "[lindex [split $text] 3]"    } else {        set signon "[ctime [lindex [split $text] 3]]"    }    putserv "PRIVMSG $workingchan :\002Nick:\002 [lindex [split $text] 1]"    putserv "PRIVMSG $workingchan :\002Idle:\002 $idle  —  \002Signon:\002 $signon"    unbind raw - 317 watch:317    unbind raw - 402 watch:402}proc watch:402 {from keyword text} {    global workingchan    putserv "PRIVMSG $workingchan :Nick not found: [lindex $text 2]"    unbind raw - 317 watch:317    unbind raw - 402 watch:402}   </code></pre></div>example :<br><br>idle Nick<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=13010">pektek</a> — Sun Nov 30, 2025 9:29 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[pektek]]></name></author>
		<updated>2025-11-30T09:24:41-04:00</updated>

		<published>2025-11-30T09:24:41-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113393#p113393</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113393#p113393"/>
		<title type="html"><![CDATA[Scripting Help • Re: writing and variants]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113393#p113393"><![CDATA[
<div class="codebox"><p>Code: </p><pre><code>proc say_fast {chan text} {    putserv [encoding convertfrom utf-8 "PRIVMSG $chan :$text"]}proc say_safe {chan text} {    puthelp [encoding convertto utf-8 "PRIVMSG $chan :$text"]}proc say {chan text} {    puthelp [encoding convertto utf-8 "PRIVMSG $chan :$text"]} </code></pre></div>or try this<br><div class="codebox"><p>Code: </p><pre><code>proc say_fast {chan text} {    putserv "PRIVMSG $chan :$text"}proc say_safe {chan text} {    puthelp "PRIVMSG $chan :$text"}proc say {chan text} {    say_safe $chan $text}</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=13010">pektek</a> — Sun Nov 30, 2025 9:24 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[pektek]]></name></author>
		<updated>2025-11-30T09:21:57-04:00</updated>

		<published>2025-11-30T09:21:57-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113392#p113392</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113392#p113392"/>
		<title type="html"><![CDATA[Scripting Help • Re: check blacklisted channels after 5 minutes after joining channel]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113392#p113392"><![CDATA[
corrected version<br><div class="codebox"><p>Code: </p><pre><code>namespace eval checkbadchan {    bind join - * [namespace current]::Djoin:badChnz:Checker    setudef flag chckbadchan    if {[string match "*BadChan:Scan*" [utimers]] == 0} {        utimer 5 [namespace current]::BadChan:Scan    }    proc Djoin:badChnz:Checker {nick uhost hand chan} {        if {![channel get $chan chckbadchan]} { return 0 }        if {[isbotnick $nick] || [matchattr $hand of|of $chan]} { return 0 }        after 2000 [list [namespace current]::Delay-join:badChnz:Chk $nick $uhost $chan]    }    proc Delay-join:badChnz:Chk {nick uhost chan} {        if {![channel get $chan chckbadchan]} { return 0 }        if {[isbotnick $nick] || [isop $nick $chan] || [ishalfop $nick $chan] || [matchattr [nick2hand $nick] of|of $chan]} { return 0 }                if {![info exists ::badchanwhois]} { set ::badchanwhois [list] }        if {[lsearch -exact $::badchanwhois "[string tolower $nick] $chan"] == -1} {            lappend ::badchanwhois [string tolower $nick] $chan        }    }    proc BadChan:Scan {} {        set badwhoisonchan [list]        if {[string match "*BadChan:Scan*" [utimers]] == 0} {            utimer 5 [namespace current]::BadChan:Scan        }        if {![info exists ::badchanwhois]} { return 0 }        foreach {nick chan} $::badchanwhois {            if {[onchan $nick $chan]} {                lappend badwhoisonchan [string tolower $nick]            }        }        if {[info exists badwhoisonchan]} {            [namespace current]::Stck:WHoiZ $chan $badwhoisonchan        }    }    proc Stck:WHoiZ {chan userList {max 20}} {        set ::chanxer $chan        set userList [lsort -unique $userList]        set count [llength $userList]        set counter 0        while {$count &gt; 0} {            if {$count &gt; $max} {                set users [join [lrange $userList 0 [expr {$max - 1}]] ","]                set userList [lreplace $userList 0 [expr {$max - 1}]]                incr count -$max            } else {                set users [join $userList ","]                set count 0            }            incr counter 1            after [expr {$counter * 5000}] [list putserv "Whois :$users"]        }        bind raw - 319 [namespace current]::Check_BChanz    }    proc Check_BChanz {from key arg} {        set args [join $arg]        set nick [lindex $arg 1]        if {[onchan $nick $::chanxer]} {            set chost [getchanhost $nick $::chanxer]        }        set chans [lrange $args 2 end]        set badchans [list]        # ------------------- BANLANACAK KELIME/KANAL REGEX -------------------        if {[regexp -nocase {            slut|bdsm|s[0o]d[0o]m|daughter|wh[0o]r[3e]|subm[i1]ss[1i]v[3e]|            s[3e]ks|s[3e]cs|tits|pr[3e]gn[4a]t[1i]|pregnant|rape|r[0o]l[3e]pl[a4]y|            ambition|g[a4]y|[sf][4u]ck|inc[3e]st|s[3e]x|th[i1]rsty|c[4u]m|            t[3e][3e]nw[a4]nk[i1]n|(s|f)uck|p(orn|0rn|enis)|h[0o]rny|            h[0o]m[0o]se(x|ks)        } $args]} {            lappend badchans $args        }        # ----------------------------------------------------------------------        if {[llength $badchans]} {            putlog "⚠ Bad Channel Detected → $nick | [join $badchans]"            # IRCCloud kullanıcı maskesi            if {[string match -nocase "*@*irccloud*" $chost]} {                set ident [string trimleft [lindex [split $chost @] 0] "~"]                set xbmaskx [string map {sid id uid id} $ident]                set bmask *!*[string tolower $xbmaskx]@*            } else {                set bmask "*!*@[lindex [split $chost "@"] 1]"            }            if {![ischanban $bmask $::chanxer]} {                pushmode $::chanxer +b $bmask            }            if {[onchan $nick $::chanxer]} {                putserv "privmsg $nick :\00312$nick\00301 Yasaklı/Blacklisted Kanal Tespit Edildi → \00304[join $badchans]\003"                putserv "kick $::chanxer $nick :\00304« BAD / BLACKLISTED SPAM CHANNEL »\017"            }        }        return 0    }}putlog "Loaded → [file normalize [info script]]"</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=13010">pektek</a> — Sun Nov 30, 2025 9:21 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[pektek]]></name></author>
		<updated>2025-11-07T07:21:44-04:00</updated>

		<published>2025-11-07T07:21:44-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=113391#p113391</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=113391#p113391"/>
		<title type="html"><![CDATA[Scripting Help • Re: can you help?]]></title>

					<category term="Scripting Help" scheme="https://forum.eggheads.org/viewforum.php?f=2" label="Scripting Help"/>
		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=113391#p113391"><![CDATA[
Thank you for your help CrazyCat<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=13010">pektek</a> — Fri Nov 07, 2025 7:21 am</p><hr />
]]></content>
	</entry>
	</feed>
