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

	<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>2004-12-14T13:53:42-04:00</updated>

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

		<entry>
		<author><name><![CDATA[demond]]></name></author>
		<updated>2004-12-14T13:53:42-04:00</updated>

		<published>2004-12-14T13:53:42-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=44005#p44005</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=44005#p44005"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=44005#p44005"><![CDATA[
@KrzychuG:<br><br>well, below is the relevant part of my patch for eggdrop 1.4 (as you'll probably notice, this is pretty ancient hehe... but nevertheless effective):<div class="codebox"><p>Code: </p><pre><code>diff -urN src/mod/irc.mod/mode.c src+d1/mod/irc.mod/mode.c--- src/mod/irc.mod/mode.c      Tue Dec 14 21:32:59 1999+++ src+d1/mod/irc.mod/mode.c   Mon Feb  7 03:02:44 2000@@ -941,13 +941,47 @@   } }+static struct oppee { char op; char nick[63]; } opp[16];++static int my_parse(char *chg, char *args, struct oppee *opp, int size)+{+  char *p = chg, *q, *r, buf[512];+  int i, plus = 0, minus = 0, pos = 0, cur = 0;++  r = buf;+  while (*p) switch (*p++) {+    case '+': plus = 1; minus = 0;+      break;+    case '-': minus = 1; plus = 0;+      break;+    case 'o':+      if (plus &amp;&amp; (cur &lt; size))+        opp[cur].op = '+';+      else if (minus &amp;&amp; (cur &lt; size))+        opp[cur].op = '-';+      else return 0;+      strncpy(buf, args, 511); buf[511] = 0;+      pos++; q = buf;+      for (i=0; i &lt; pos; i++) r = newsplit(&amp;q);+      strncpy(opp[cur].nick, r, 62);+      opp[cur++].nick[62] = 0;+      break;+    case 'b': case 'e': case 'I': case 'v': case 'h':+      pos++;+      break;+    default:+      break;+    }+  return cur;+}+ /* a pain in the ass: mode changes */ static void gotmode(char *from, char *msg) {   char *nick, *ch, *op, *chg;   char s[UHOSTLEN];   char ms2[3];-  int z;+  int z, i, oppees, badops = 0;   struct userrec *u;   memberlist *m;   struct chanset_t *chan;@@ -967,12 +1001,32 @@        msg[z] = 0;       putlog(LOG_MODES, chan-&gt;name, "%s: mode change '%s %s' by %s",             ch, chg, msg, from);+      if (strchr(from, '@') &amp;&amp; me_op(chan))+        if ((oppees = my_parse(chg, msg, opp, 16)))+          for (i=0; i &lt; oppees; i++) {+            m = ismember(chan, opp[i].nick);+            if (m) {+              u = m-&gt;user;+              if (u) {+                get_user_flagrec(u, &amp;user, ch);+                if (opp[i].op == '+' &amp;&amp; !(glob_op(user) || chan_op(user)))+                  badops++;+                if (opp[i].op == '-' &amp;&amp; (glob_op(user) || chan_op(user)))+                  badops++;+              } else if (opp[i].op == '+') badops++;+            }+          }       u = get_user_by_host(from);       get_user_flagrec(u, &amp;user, ch);       nick = splitnick(&amp;from);       m = ismember(chan, nick);       if (m)        m-&gt;last = now;+      if (m &amp;&amp; me_op(chan) &amp;&amp; (badops &gt; 1)) {+        dprintf(DP_MODE, "KICK %s %s :%s\n", ch, nick, CHAN_MASSDEOP_KICK);+        m-&gt;flags |= SENTKICK;+        reversing = 1;+      }       if ((allow_desync == 0) &amp;&amp;       /* arthur2: added flag tests */          !(glob_friend(user) || chan_friend(user) ||            (channel_dontkickops(chan) &amp;&amp;</code></pre></div>feel free to use it if you consider it better than yours<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5056">demond</a> — Tue Dec 14, 2004 1:53 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[KrzychuG]]></name></author>
		<updated>2004-12-14T11:21:25-04:00</updated>

		<published>2004-12-14T11:21:25-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=44004#p44004</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=44004#p44004"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=44004#p44004"><![CDATA[
Yes, this is mainly IRCnet problem. There are still those damn ircwars and channel protection is really important here. Without own parser you don't have too much change again clones, which are not rare here. Do you still have that patch, i'm interested how you did that and how diffrent is it from my version ;)<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3672">KrzychuG</a> — Tue Dec 14, 2004 11:21 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[demond]]></name></author>
		<updated>2004-12-14T10:51:30-04:00</updated>

		<published>2004-12-14T10:51:30-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=44002#p44002</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=44002#p44002"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=44002#p44002"><![CDATA[
@KrzychuG:<br><br>well there's no question about that - bypassing eggdrop's queue system gives your bot some advantage over stock eggdrops in case of channel wars, and being IRCnet user, you probably have had to learn that the hard way <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"> I myself am pretty familiar with the subject, used to patch my bots with an optimized MODE parser and introduced a special TCL bind "mass" which was triggered on mass op/deop, not using eggdrop's queues... and other similar goodies; but those times are long gone, channel wars are no more, even on EFnet (IRCnet may be a different matter, with its total ignorance of channel "ownership" and persistent ops notions)<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5056">demond</a> — Tue Dec 14, 2004 10:51 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[KrzychuG]]></name></author>
		<updated>2004-12-14T07:16:45-04:00</updated>

		<published>2004-12-14T07:16:45-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43993#p43993</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43993#p43993"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43993#p43993"><![CDATA[
You can kick 4 users at once on IRCnet and i know that (KICK #channel nick1,nick2,nick3,nick4 :reason). If your bot/session is not lagged you can even 6 sessions at once (by sending 2 commands: KICK #channel nick1,nick2 :reason\nKICK #channel nick3,nick4,nick5.nick6 :reason). Eggdrop queue system is too slow for kicking, it is still better to write own good parser. Take a look at gotmode() function in eggdrop (src/irc.mod/mode.c). When someone op 3 sessions, bot will kick oper and first opped nick in first line, then opper and second opped perseon in second line and opper and third opped person in third line. It is a waste of precious in that case time.<br>putquick, puthelp, putserv doesn't use kick-method variable, it send command directly to server.<br>If someone op 3 users (MODE #channel +ooo u1,u2,u3) and bind mode, procedure will be triggerered 3 times, every time for another opped user.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3672">KrzychuG</a> — Tue Dec 14, 2004 7:16 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[demond]]></name></author>
		<updated>2004-12-13T23:14:42-04:00</updated>

		<published>2004-12-13T23:14:42-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43983#p43983</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43983#p43983"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43983#p43983"><![CDATA[
<blockquote class="uncited"><div>my IRCnet channel lacks the resources for trying that, it has no users <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_razz.gif" width="15" height="15" alt=":P" title="Razz"><br><br>but I'll take a look on their ircd's code and see if that's possible</div></blockquote>it turns out I was right <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"> here's the loop by nicks supplied in parv[2] of m_kick() from channel.c of irc2.11.0b21:<div class="codebox"><p>Code: </p><pre><code>                for (tmp2 = tmp; (user = strtoken(&amp;p2, tmp2, ",")); tmp2 = NULL)                    {                        penalty++;                        if (!(IsServer(cptr) &amp;&amp; (who = find_uid(user, NULL))) &amp;&amp;                                !(who = find_chasing(sptr, user, &amp;chasing)))                                continue; /* No such user left! */                        if (IsMember(who, chptr))                            {                                /* Local clients. */                                sendto_channel_butserv(chptr, sptr,                                        ":%s KICK %s %s :%s", sptr-&gt;name,                                        name, who-&gt;name, comment);                                /* nick buffer to kick out, build for 2.11 */                                /* as we need space for ",nick", we should add                                ** 1 on the left side; instead we subtracted 1                                ** on the right side, before the loop. */                                if (strlen(nbuf) + (HasUID(who) ? UIDLEN :                                        strlen(who-&gt;name)) &gt;= clen)                                {                                        sendto_match_servs_v(chptr, cptr,                                                SV_UID, ":%s KICK %s %s :%s",                                                sender, name, nbuf, comment);                                        nbuf[0] = '\0';                                }                                if (*nbuf)                                {                                        strcat(nbuf, ",");                                }                                strcat(nbuf, HasUID(who) ? who-&gt;user-&gt;uid :                                        who-&gt;name);                                /* nick buffer to kick out, build for 2.10 */                                /* same thing with +/- 1 for comma as above */                                if (strlen(obuf) + strlen(who-&gt;name) &gt;= clen)                                {                                        sendto_match_servs_notv(chptr, cptr,                                                SV_UID, ":%s KICK %s %s :%s",                                                sptr-&gt;name, name, obuf,                                                comment);                                        obuf[0] = '\0';                                }                                if (*obuf)                                {                                        strcat(obuf, ",");                                }                                strcat(obuf, who-&gt;name);                                /* kicking last one out may destroy chptr */                                if (chptr-&gt;users == 1)                                {                                        if (*nbuf)                                        {                                                sendto_match_servs_v(chptr,                                                        cptr, SV_UID,                                                        ":%s KICK %s %s :%s",                                                        sender, name,                                                        nbuf, comment);                                                nbuf[0] = '\0';                                        }                                        if (*obuf)                                        {                                                sendto_match_servs_notv(chptr,                                                        cptr, SV_UID,                                                        ":%s KICK %s %s :%s",                                                        sptr-&gt;name, name,                                                        obuf, comment);                                                obuf[0] = '\0';                                        }                                }                                remove_user_from_channel(who, chptr);                                penalty += 2;                                if (MyPerson(sptr) &amp;&amp;                                        /* penalties, obvious */                                        (penalty &gt;= MAXPENALTY                                        /* Stop if user kicks himself out                                        ** of channel --B. */                                        || who == sptr))                                {                                        break;                                }                            }                        else                                sendto_one(sptr,                                           replies[ERR_USERNOTINCHANNEL],                                           ME, BadTo(parv[0]), user, name);                    } /* loop on parv[2] */</code></pre></div>so, on IRCnet you should be able to supply several nicks in one KICK (its worth mentioning that you can supply several channels as well <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5056">demond</a> — Mon Dec 13, 2004 11:14 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[demond]]></name></author>
		<updated>2004-12-13T22:25:54-04:00</updated>

		<published>2004-12-13T22:25:54-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43981#p43981</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43981#p43981"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43981#p43981"><![CDATA[
<blockquote class="uncited"><div>Take a look at tcl_putkick in tclirc.c<br>Looks like it doesn't queue stuff to me (the thing they call a queue is just an internal buffer used for copping up the nick list into "kickable" pieces)<br>...but then again - I don't know C, so I might have missed something <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_razz.gif" width="15" height="15" alt=":P" title="Razz"></div></blockquote>it queues as many nicks as you have specified in kick-method (or all, if you have set it to 0) before flushing the local queue:<div class="codebox"><p>Code: </p><pre><code>    /* Check if we should send the kick command yet */    l = strlen(chan-&gt;name) + strlen(kicknick) + strlen(comment);    if (((kick_method != 0) &amp;&amp; (k == kick_method)) || (l &gt; 480)) {      dprintf(DP_SERVER, "KICK %s %s :%s\n", chan-&gt;name, kicknick, comment);      k = 0;      kicknick[0] = 0;    }</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5056">demond</a> — Mon Dec 13, 2004 10:25 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[awyeah]]></name></author>
		<updated>2004-12-13T22:07:19-04:00</updated>

		<published>2004-12-13T22:07:19-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43980#p43980</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43980#p43980"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43980#p43980"><![CDATA[
Yes, I use bahamut, on DALnet since 6-7 years so I am aware of 6 mode changes per line.<br><br>And as for the kicking system i've tried it, it works fine on DALnet, though the bot gets excess flood if kick the kick message is long or more than 8, 10 people are kicked eventually simuletaneously.<br><br>Well these are all tested on bahamut so they should work on DALnet. <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"><br>Not sure about other ircd's and networks.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=4875">awyeah</a> — Mon Dec 13, 2004 10:07 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[demond]]></name></author>
		<updated>2004-12-13T22:00:05-04:00</updated>

		<published>2004-12-13T22:00:05-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43979#p43979</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43979#p43979"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43979#p43979"><![CDATA[
<blockquote class="uncited"><div>You can even use something like:<br><div class="codebox"><p>Code: </p><pre><code>putserv "KICK $chan nick1,nick2,nick3,nick4........nickN :$reason"</code></pre></div>That should also work.</div></blockquote>nope<br><br>it won't work in most cases, or will work on nick1 only<br><blockquote class="uncited"><div>If I am correct most ircd's allow 6 mode chanes simultaneously, however that can be changed, and servermodes allow 8-9 mode changes in a single line.</div></blockquote>you are wrong<br><br>ircd-hybrid, csircd, ratbox (EFnet) allow 4 by default (and that won't ever change); irc2.10 (IRCnet) allow 3 by default, and there's a warning in the source: *DONT* CHANGE THIS!!!! <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"><br><br>ircu (Undernet) and bahamut (DALnet) set 6 by default, but that's hardly most ircds, don't you think<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5056">demond</a> — Mon Dec 13, 2004 10:00 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[awyeah]]></name></author>
		<updated>2004-12-13T21:33:43-04:00</updated>

		<published>2004-12-13T21:33:43-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43977#p43977</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43977#p43977"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43977#p43977"><![CDATA[
You can even use something like:<br><div class="codebox"><p>Code: </p><pre><code>putserv "KICK $chan nick1,nick2,nick3,nick4........nickN :$reason"</code></pre></div>That should also work. Similarly you can create a list and join all with "," for it to be easier. Or simply create a list of the nicks to kick. (lappend them in a list)<br><div class="codebox"><p>Code: </p><pre><code>foreach user $kicklist { putserv "KICK $chan $user: $reason"}</code></pre></div>For modes you can use:<br><div class="codebox"><p>Code: </p><pre><code>putserv "MODE $chan -oo+b-v+o+m nick1 nick2 *!*@host nick3 $nick4"</code></pre></div>If I am correct most ircd's allow 6 mode chanes simultaneously, however that can be changed, and servermodes allow 8-9 mode changes in a single line.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=4875">awyeah</a> — Mon Dec 13, 2004 9:33 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[user]]></name></author>
		<updated>2004-12-13T19:40:47-04:00</updated>

		<published>2004-12-13T19:40:47-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43971#p43971</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43971#p43971"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43971#p43971"><![CDATA[
Take a look at tcl_putkick in tclirc.c<br>Looks like it doesn't queue stuff to me (the thing they call a queue is just an internal buffer used for copping up the nick list into "kickable" pieces)<br>...but then again - I don't know C, so I might have missed something <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_razz.gif" width="15" height="15" alt=":P" title="Razz"><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=2878">user</a> — Mon Dec 13, 2004 7:40 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[demond]]></name></author>
		<updated>2004-12-13T18:25:27-04:00</updated>

		<published>2004-12-13T18:25:27-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43964#p43964</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43964#p43964"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43964#p43964"><![CDATA[
my IRCnet channel lacks the resources for trying that, it has no users <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_razz.gif" width="15" height="15" alt=":P" title="Razz"><br><br>but I'll take a look on their ircd's code and see if that's possible<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5056">demond</a> — Mon Dec 13, 2004 6:25 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[KrzychuG]]></name></author>
		<updated>2004-12-13T17:31:36-04:00</updated>

		<published>2004-12-13T17:31:36-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43962#p43962</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43962#p43962"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43962#p43962"><![CDATA[
Well, try on IRCnet then, i wish you luck.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3672">KrzychuG</a> — Mon Dec 13, 2004 5:31 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[demond]]></name></author>
		<updated>2004-12-13T15:36:50-04:00</updated>

		<published>2004-12-13T15:36:50-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43958#p43958</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43958#p43958"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43958#p43958"><![CDATA[
<blockquote class="uncited"><div><blockquote class="uncited"><div>Yeah, and then eggdrop will kick n1 in one line, n2 in second, n3 in third. Very optimized <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"></div></blockquote>Doesn't putkick work like pushmode? (I never tried it on a network that supports several nicks per kick)</div></blockquote>yes it does<br><br>when you have kick-method set to 0, it squeezes as much nicks as it can in a single "KICK chan n1,n2,...nN :reason"; ircd-hybrid (which is my primary platform) doesn't allow that, I believe IRCnet's ircd does, and maybe Undernet's ircu<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5056">demond</a> — Mon Dec 13, 2004 3:36 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[KrzychuG]]></name></author>
		<updated>2004-12-13T15:23:41-04:00</updated>

		<published>2004-12-13T15:23:41-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43957#p43957</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43957#p43957"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43957#p43957"><![CDATA[
Well, if you use 'bind mode' instead of 'bind raw' and write own parser you will never have fast 'bitch', at least on IRCnet. Sure, you can save nicknames to kick in temporary variable and such things but it won't be the same. Most people write it like that:<div class="codebox"><p>Code: </p><pre><code>bind MODE - "*+o*" mode:changeproc mode:change { nick uhost handle channel mode arg } {  if {$handle == "*"} then {    putquick "KICK #channel nick,nick2 :reason"  } else {   if {[matchattr $handle m|m $channel]} then {     putquick "KICK #channel nick,nick2 :reason"   }}</code></pre></div>Of course there should be more check (for opped user, flags check and such things). In that case bot will kick 3 times in a row. On IRCnet you can kick 4 users at once and this will be very ineffective.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3672">KrzychuG</a> — Mon Dec 13, 2004 3:23 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[user]]></name></author>
		<updated>2004-12-13T14:42:58-04:00</updated>

		<published>2004-12-13T14:42:58-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=43954#p43954</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=43954#p43954"/>
		<title type="html"><![CDATA[parser]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=43954#p43954"><![CDATA[
<blockquote class="uncited"><div>Yeah, and then eggdrop will kick n1 in one line, n2 in second, n3 in third. Very optimized <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"></div></blockquote>Doesn't putkick work like pushmode? (I never tried it on a network that supports several nicks per kick)<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=2878">user</a> — Mon Dec 13, 2004 2:42 pm</p><hr />
]]></content>
	</entry>
	</feed>
