<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">diff -ur eggdrop1.6.12/doc/html/tcl-commands.html eggdrop1.6.12.hub/doc/html/tcl-commands.html
--- eggdrop1.6.12/doc/html/tcl-commands.html	Wed Jul 17 15:18:29 2002
+++ eggdrop1.6.12.hub/doc/html/tcl-commands.html	Sun Oct 13 13:18:49 2002
@@ -4334,6 +4334,20 @@
 
               &lt;p&gt;&lt;strong&gt;Module:&lt;/strong&gt; transfer&lt;/p&gt;
             &lt;/li&gt;
+
+            &lt;li&gt;
+              &lt;p&gt;&lt;strong&gt;RBOT (stackable)&lt;/strong&gt;&lt;/p&gt;
+
+              &lt;p&gt;&lt;strong&gt;bind rbot &amp;lt;flags&amp;gt; &amp;lt;key&amp;gt; &amp;lt;proc&amp;gt;&lt;br&gt;
+              proc-name &amp;lt;key&amp;gt; &amp;lt;text&amp;gt; &amp;lt;nick&amp;gt;&lt;/strong&gt;&lt;/p&gt;
+
+              &lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; triggered by raw text recieved on
+              the botnet. Key is thebotnet command (i.e. zb for putallbots, c
+              for chat text) and may contain wildcards.  Text is the whole line
+              recieved.&lt;/p&gt;
+
+              &lt;p&gt;&lt;strong&gt;Module:&lt;/strong&gt; core&lt;/p&gt;
+            &lt;/li&gt;
           &lt;/ol&gt;
         &lt;/li&gt;
 
@@ -4448,6 +4462,12 @@
                 &lt;p&gt;!nick! msg&lt;/p&gt;
               &lt;/blockquote&gt;
             &lt;/li&gt;
+
+            &lt;li&gt;
+              &lt;p&gt;&lt;strong&gt;RBOT&lt;/strong&gt;
+              &lt;p&gt;Return 1 to ask the bot not to process the raw text. This can
+              break a botnet causing it to be desynced if you're not careful.
+              &lt;/p&gt;
           &lt;/ol&gt;
         &lt;/li&gt;
       &lt;/ol&gt;
diff -ur eggdrop1.6.12/doc/tcl-commands.doc eggdrop1.6.12.hub/doc/tcl-commands.doc
--- eggdrop1.6.12/doc/tcl-commands.doc	Wed Jul 17 15:18:29 2002
+++ eggdrop1.6.12.hub/doc/tcl-commands.doc	Sun Oct 13 13:18:27 2002
@@ -2057,6 +2057,15 @@
            because the data transfer stalled for some reason.
          Module: transfer
 
+|   (45) RBOT (stackable)
+|        bind rbot &lt;flags&gt; &lt;key&gt; &lt;proc&gt;
+|        proc-name &lt;key&gt; &lt;text&gt; &lt;nick&gt;
+|
+|        Description: triggered by raw text recieved on the botnet. Key is the
+|          botnet command (i.e. zb for putallbots, c for chat text) and may
+|          contain wildcards.  Text is the whole line recieved.
+|        Module: core
+
 
   (B) RETURN VALUES
 
@@ -2104,6 +2113,9 @@
 
     (11) WALL  Return 1 to make the command get logged like so:
            !nick! msg
+
+|   (12) RBOT  Return 1 to ask the bot not to process the raw text. This can
+|              break a botnet causing it to be desynced if you're not careful.
 
 *** CONTROL PROCEDURES ***
 
diff -ur eggdrop1.6.12/src/dcc.c eggdrop1.6.12.hub/src/dcc.c
--- eggdrop1.6.12/src/dcc.c	Thu Mar 21 22:53:56 2002
+++ eggdrop1.6.12.hub/src/dcc.c	Sun Oct 13 13:15:11 2002
@@ -408,6 +408,7 @@
   int f;
 
   strip_telnet(dcc[idx].sock, code, &amp;i);
+  if (check_tcl_rbot(code, idx)) return;
   if (debug_output) {
     if (code[0] == 's')
       putlog(LOG_BOTSHARE, "*", "{%s} %s", dcc[idx].nick, code + 2);
diff -ur eggdrop1.6.12/src/mod/module.h eggdrop1.6.12.hub/src/mod/module.h
--- eggdrop1.6.12/src/mod/module.h	Sun Feb 24 02:17:57 2002
+++ eggdrop1.6.12.hub/src/mod/module.h	Sun Oct 13 13:15:11 2002
@@ -228,7 +228,7 @@
 #define debug_output (*(int *)(global[106]))
 #define noshare (*(int *)(global[107]))
 /* 108 - 111 */
-/* 108: gban_total -- UNUSED (Eule) */
+#define H_rbot (*(p_tcl_bind_list *)(global[108]))
 #define make_userfile (*(int*)global[109])
 #define default_flags (*(int*)global[110])
 #define dcc_total (*(int*)global[111])
diff -ur eggdrop1.6.12/src/modules.c eggdrop1.6.12.hub/src/modules.c
--- eggdrop1.6.12/src/modules.c	Sun Feb 24 02:17:57 2002
+++ eggdrop1.6.12.hub/src/modules.c	Sun Oct 13 13:15:11 2002
@@ -322,7 +322,7 @@
   (Function) &amp; debug_output,	 /* int					*/
   (Function) &amp; noshare,		 /* int					*/
   /* 108 - 111 */
-  (Function) 0, /* gban_total -- UNUSED! (Eule) */
+  (Function) &amp; H_rbot,		 /* p_tcl_bind_list			*/
   (Function) &amp; make_userfile,	 /* int					*/
   (Function) &amp; default_flags,	 /* int					*/
   (Function) &amp; dcc_total,	 /* int					*/
diff -ur eggdrop1.6.12/src/patch.h eggdrop1.6.12.hub/src/patch.h
--- eggdrop1.6.12/src/patch.h	Fri Jul 26 13:58:41 2002
+++ eggdrop1.6.12.hub/src/patch.h	Sun Oct 13 13:15:11 2002
@@ -36,7 +36,7 @@
  *
  *
  */
-/* PATCH GOES HERE */
+patch("rbot");
 /*
  *
  *
diff -ur eggdrop1.6.12/src/tclhash.c eggdrop1.6.12.hub/src/tclhash.c
--- eggdrop1.6.12/src/tclhash.c	Thu Jun 13 16:43:08 2002
+++ eggdrop1.6.12.hub/src/tclhash.c	Sun Oct 13 13:19:45 2002
@@ -43,6 +43,7 @@
 p_tcl_bind_list		H_chat, H_act, H_bcst, H_chon, H_chof,
 			H_load, H_unld, H_link, H_disc, H_dcc, H_chjn, H_chpt,
 			H_bot, H_time, H_nkch, H_away, H_note, H_filt, H_event;
+p_tcl_bind_list		H_rbot;
 
 static int builtin_2char();
 static int builtin_3char();
@@ -236,6 +237,7 @@
   H_away = add_bind_table("away", HT_STACKABLE, builtin_chat);
   H_act = add_bind_table("act", HT_STACKABLE, builtin_chat);
   H_event = add_bind_table("evnt", HT_STACKABLE, builtin_char);
+  H_rbot = add_bind_table("rbot", HT_STACKABLE, builtin_3char);
   add_builtins(H_dcc, C_dcc);
   Context;
 }
@@ -1158,4 +1160,22 @@
     unbind_bind_entry(table, cc[i].flags, cc[i].name, l);
     nfree(l);
   }
+}
+
+int check_tcl_rbot(char *text, int idx)
+{
+  char key[11];
+  unsigned char ctr=0;
+  for (; ctr &lt; 11; ctr++)
+    if (text[ctr] == ' ')
+    {
+      key[ctr] = 0;
+      break;
+    }
+    else key[ctr] = text[ctr];
+  Tcl_SetVar(interp, "_rbot1", key, 0);
+  Tcl_SetVar(interp, "_rbot2", text, 0);
+  Tcl_SetVar(interp, "_rbot3", dcc[idx].nick, 0);
+  return (check_tcl_bind(H_rbot, key, 0, " $_rbot1 $_rbot2 $_rbot3",
+    MATCH_MASK | BIND_STACKABLE | BIND_WANTRET) == BIND_EXEC_LOG);
 }
diff -ur eggdrop1.6.12/src/tclhash.h eggdrop1.6.12.hub/src/tclhash.h
--- eggdrop1.6.12/src/tclhash.h	Tue Jan  1 22:46:36 2002
+++ eggdrop1.6.12.hub/src/tclhash.h	Sun Oct 13 13:15:11 2002
@@ -99,6 +99,7 @@
 void check_tcl_away(const char *, int, const char *);
 void check_tcl_chatactbcst(const char *, int, const char *, tcl_bind_list_t *);
 void check_tcl_event(const char *);
+int check_tcl_rbot(char *, int);
 
 #define check_tcl_chat(a, b, c) check_tcl_chatactbcst(a ,b, c, H_chat)
 #define check_tcl_act(a, b, c) check_tcl_chatactbcst(a, b, c, H_act)
@@ -119,6 +120,7 @@
 extern p_tcl_bind_list H_chat, H_act, H_bcst, H_chon, H_chof;
 extern p_tcl_bind_list H_load, H_unld, H_dcc, H_bot, H_link;
 extern p_tcl_bind_list H_away, H_nkch, H_filt, H_disc, H_event;
+extern p_tcl_bind_list H_rbot;
 
 #endif
 
</pre></body></html>