~ubuntu-branches/ubuntu/oneiric/eggdrop/oneiric

« back to all changes in this revision

Viewing changes to doc/html/egg-core.html

  • Committer: Bazaar Package Importer
  • Author(s): Guilherme de S. Pastore
  • Date: 2004-06-17 09:15:28 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040617091528-64rrw1sa33lkfhmh
Tags: 1.6.16-2
* Fixed typo on README.Debian
* Fixed hyphens in manual page
* Converted debian/rules to CDBS
* Set path to binary on example config file
* Changed LANGDIR on src/eggdrop.h (Closes: #254824)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2
 
<!-- $Id: egg-core.html,v 1.16 2002/01/03 01:05:43 guppy Exp $ -->
 
2
<!-- $Id: egg-core.html,v 1.34 2004/01/13 01:30:26 wcc Exp $ -->
3
3
 
4
4
<html>
5
5
  <head>
8
8
 
9
9
  <body>
10
10
    <div align="center">
11
 
      <p><strong>Eggdrop core</strong></p>
 
11
      <p><strong>Eggdrop Core</strong></p>
12
12
    </div>
13
13
    <hr>
14
14
 
15
 
    <p>This is an exhaustive list of all the Tcl commands added by eggdrop.
16
 
    All of the normal Tcl built-in commands are still there, of course. But
17
 
    you can also use these to manipulate features of the bot. Please see the
18
 
    module files for Tcl commands relating to each module.</p>
19
 
 
20
 
    <p><strong>NOTICE:</strong> This list is accurate for the v1.6 series of
21
 
    eggdrop!</p>
22
 
 
23
 
    <p><strong>Scripts which were written for earlier versions will probably
24
 
    not work without modification. Some, however can be made to work using
25
 
    the compat.tcl distributed with eggdrop.</strong></p>
 
15
    <p>This file describes the syntax and all the settings of your Eggdrop
 
16
    configuration file. Please note that you don&#39;t need to set all of these
 
17
    variables to make your bot work properly.</p>
26
18
    <hr>
27
19
 
28
20
    <p><strong>Contents</strong></p>
39
31
 
40
32
            <li><a href="#sect1c">Log files</a></li>
41
33
 
42
 
            <li><a href="#sect1d">Files and directories</a></li>
43
 
 
44
 
            <li><a href="#sect1e">Botnet, DCC, and network</a></li>
45
 
 
46
 
            <li><a href="#sect1f">Console</a></li>
47
 
 
48
 
            <li><a href="#sect1g">Common stuff</a></li>
 
34
            <li><a href="#sect1d">Console</a></li>
 
35
 
 
36
            <li><a href="#sect1e">Files and directories</a></li>
 
37
 
 
38
            <li><a href="#sect1f">Botnet, DCC, and network</a></li>
 
39
 
 
40
            <li><a href="#sect1g">More advanced settings</a></li>
49
41
 
50
42
            <li><a href="#sect1h">Modules</a></li>
51
43
 
52
44
            <li><a href="#sect1i">Scripts</a></li>
53
45
          </ol>
54
46
        </li>
55
 
 
56
 
        <li><a href="#tclcmds">Tcl commands</a></li>
57
47
      </ol>
58
48
    </blockquote>
59
49
    <hr>
60
50
 
61
51
    <p><a name="sect1"></a>1. <strong>Configuration settings</strong></p>
62
52
 
63
 
    <blockquote>
64
 
      <p>Lines in <strong>bold</strong> are the lines that need to be
65
 
      included in the Eggdrop config file if you want to use the share
66
 
      module. Lines in <strong><em>bold italics</em></strong> are optional
67
 
      and only required if you wish to change the default behaviour for 
68
 
      that particular feature.</p>
69
 
    </blockquote>
70
 
 
71
53
    <p><a name="sect1a"></a>1a. <strong>Executable path</strong></p>
72
54
 
73
55
    <blockquote>
84
66
    <p><a name="sect1b"></a>1b. <strong>Basic settings</strong></p>
85
67
 
86
68
    <blockquote>
87
 
      <p>You can change the basic eggdrop appearance and behaviour in this
 
69
      <p>You can change the basic Eggdrop appearance and behavior in this
88
70
      section.</p>
89
71
    </blockquote>
90
72
 
91
73
    <blockquote>
92
74
      <dl>
93
 
        <dt><strong><em>set username &quot;lamest&quot;</em></strong></dt>
 
75
        <dt><strong>set username &quot;lamest&quot;</strong></dt>
94
76
 
95
77
        <dd>
96
 
          <p>This setting defines the username the bot uses.</p>
97
 
 
98
 
          <p>Note that this setting works only if no ident daemon is running
99
 
          on the machine your bot is on.</p>
 
78
          <p>This setting defines the username the bot uses on IRC. This
 
79
          setting has no effect if an ident daemon is running on your
 
80
          bot&#39;s machine.</p>
100
81
        </dd>
101
82
 
102
83
        <dt><strong>set admin &quot;Lamer &lt;email:
104
85
 
105
86
        <dd>
106
87
          <p>This setting defines which contact person should be shown in
107
 
          .status, /msg help and other places. You really should include this
108
 
          info.</p>
 
88
          .status, /msg help, and other places. You really should include
 
89
          this information.</p>
109
90
        </dd>
110
91
 
111
 
        <dt><strong><em>set network
112
 
        &quot;SomeIrcNetwork&quot;</em></strong></dt>
 
92
        <dt><strong>set network &quot;SomeIrcNetwork&quot;</strong></dt>
113
93
 
114
94
        <dd>
115
95
          <p>This setting is used only for info to share with others on your
116
 
          botnet.</p>
 
96
          botnet. Set this to the IRC network your bot is connected to.</p>
117
97
        </dd>
118
98
 
119
99
        <dt><strong>set timezone &quot;EST&quot;</strong></dt>
120
100
 
121
101
        <dd>
122
 
          <p>This setting defines the timezone is your bot in. It&#39;s used
123
 
          for internal routines as well as for logfile timestamping or
124
 
          scripting purposes. The timezone string specifies the name of the
125
 
          timezone and must be three or more alphabetic characters.</p>
126
 
 
127
 
          <p>ex. Central European Time(UTC+1) could be &quot;CET&quot;</p>
 
102
          <p>This setting defines the timezone is your bot in. It&#39;s
 
103
          used for internal routines as well as for logfile timestamping
 
104
          and scripting purposes. The timezone string specifies the name of
 
105
          the timezone and must be three or more alphabetic characters. For
 
106
          example, Central European Time(UTC+1) should be &quot;CET&quot;.</p>
128
107
        </dd>
129
108
 
130
 
        <dt><strong><em>set offset &quot;5&quot;</em></strong></dt>
 
109
        <dt><strong>set offset &quot;5&quot;</strong></dt>
131
110
 
132
111
        <dd>
133
 
          <p>offset specifies the time value to be added to the local time to
134
 
          get Coordinated Universal Time (UTC aka GMT). The offset is
135
 
          positive if the local timezone is west of the Prime Meridian and
136
 
          negative if it is east. The value(hours) must be between 0 and
137
 
          24</p>
138
 
 
139
 
          <p>ex. if the timezone is UTC+1 the offset is -1</p>
 
112
          <p>The offset setting specifies the time value to be added to the
 
113
          local time to get Coordinated Universal Time (UTC aka GMT). The
 
114
          offset is positive if the local timezone is west of the Prime
 
115
          Meridian and negative if it is east. The value (in hours) must be
 
116
          between -23 and 23. For example, if the timezone is UTC+1, the
 
117
          offset is -1.</p>
140
118
        </dd>
141
119
 
142
 
        <dt><strong><em>set env(TZ) &quot;$timezone $offset&quot; (disabled
143
 
        by default)</em></strong></dt>
 
120
        <dt><strong>set env(TZ) &quot;$timezone $offset&quot; (disabled by
 
121
        default)</strong></dt>
144
122
 
145
123
        <dd>
146
124
          <p>If you don&#39;t want to use the timezone setting for scripting
147
 
          purpose only but instead everywhere possible then use this
 
125
          purposes only, but instead everywhere possible, then use this
148
126
          setting.</p>
149
127
        </dd>
150
128
 
151
 
        <dt><strong><em>addlang &quot;english&quot;</em></strong></dt>
152
 
 
153
 
        <dd>
154
 
          <p>If you want to have your eggdrop messages displayed in another
155
 
          language change the below command to match your preferences. An
 
129
        <dt><strong>set my-hostname &quot;virtual.host.com&quot;</strong></dt>
 
130
        <dt><strong>set my-ip &quot;99.99.0.0&quot;</strong></dt>
 
131
 
 
132
        <dd>
 
133
          <p>If you&#39;re using virtual hosting (your machine has more
 
134
          than 1 IP), you may want to specify the particular IP to bind to.
 
135
          You can specify either by hostname or by IP. You may also want to
 
136
          set the hostname here if Eggdrop has trouble detecting it when it
 
137
          starts up.</p>
 
138
        </dd>
 
139
 
 
140
        <dt><strong>addlang &quot;english&quot;</strong></dt>
 
141
 
 
142
        <dd>
 
143
          <p>If you want to have your Eggdrop messages displayed in another
 
144
          language, change this command to match your preferences. An
156
145
          alternative would be to set the environment variable EGG_LANG to
157
146
          that value.</p>
158
147
        </dd>
161
150
 
162
151
    <p><a name="sect1c"></a>1c. <strong>Log files</strong></p>
163
152
 
164
 
    <p>Eggdrop is capable of logging various stuff, from channel chatter to
165
 
    commands people use on the bot or file transfers.</p>
 
153
    <p>Eggdrop is capable of logging various things, from channel chatter to
 
154
    partyline commands and file transfers.</p>
166
155
 
167
 
    <p>Logfiles are kept normally for 24 hours. Afterwards they&#39;ll be
168
 
    renamed to &quot;(logfilename).yesterday&quot;. After 48 hours
169
 
    they&#39;ll get overwritten by the logfile of the next day.</p>
 
156
    <p>Logfiles are normally kept for 24 hours. Afterwards, they will be
 
157
    renamed to &quot;(logfilename).yesterday&quot;. After 48 hours, they
 
158
    will be overwritten be the logfile of the next day.</p>
170
159
 
171
160
    <blockquote>
172
161
      <dl>
173
162
        <dt><strong>set max-logs 5</strong></dt>
174
163
 
175
164
        <dd>
176
 
          <p>maximum number of logfiles to allow - this can be increased if
177
 
          needed</p>
178
 
 
179
 
          <p><strong>(don&#39;t decrease this)</strong></p>
180
 
        </dd>
181
 
 
182
 
        <dt><strong><em>set max-logsize 0</em></strong></dt>
183
 
 
184
 
        <dd>
185
 
          <p>maximum size of your logfiles, set this to 0 to disable. This
186
 
          value is in KiloBytes, so &#39;550&#39; would mean cycle logs when
187
 
          it reaches the size of 550 KiloBytes.</p>
188
 
 
189
 
          <p>Note that this only works if you have keep-all-logs 0</p>
190
 
        </dd>
191
 
 
192
 
        <dt><strong><em>set quick-logs 0</em></strong></dt>
193
 
 
194
 
        <dd>
195
 
          <p>Defaultly eggdrop writes every 5 minutes its logfiles to disk.
196
 
          You can change this behaviour by turning this setting to 1. Eggdrop
197
 
          will write and check the logfiles for size every minute.</p>
198
 
 
199
 
          <p>Note that this setting might increase the cpu usage of your bot
200
 
          (on the other hand it will decrease your mem usage)</p>
 
165
          <p>This is the maximum number of logfiles allowed. This setting
 
166
          can be increased; however, don&#39;t decrease it.</p>
 
167
        </dd>
 
168
 
 
169
        <dt><strong>set max-logsize 0</strong></dt>
 
170
 
 
171
        <dd>
 
172
          <p>This is the maximum size of your logfiles. Set it to 0 to
 
173
          disable. This value is in kilobytes, so &#39;550&#39; would mean
 
174
          cycle logs when it reaches the size of 550 kilobytes. Note that
 
175
          this only works if you have keep-all-logs set to 0 (OFF).</p>
 
176
        </dd>
 
177
 
 
178
        <dt><strong>set quick-logs 0</strong></dt>
 
179
 
 
180
        <dd>
 
181
          <p>This could be good if you have had a problem with logfiles
 
182
          filling your quota/hard disk or if you log +p and publish it
 
183
          to the web, and you need more up-to-date info. Note that this
 
184
          setting might increase the CPU usage of your bot (on the other
 
185
          hand it will decrease your RAM usage).</p>
201
186
        </dd>
202
187
 
203
188
        <dt><strong>logfile &lt;logflags&gt; &lt;channel&gt;
204
189
        &quot;logs/logfile&quot;</strong></dt>
205
190
 
206
191
        <dd>
207
 
          <p>This setting actually tells the bot what should be logged from
208
 
          where in which file.</p>
209
 
 
210
 
          <p>The most common log file flags are:</p>
211
 
 
212
 
          <p>m private msgs/ctcps to the bot<br>
213
 
           k kicks, bans, mode changes on the channel<br>
214
 
           j joins, parts, netsplits on the channel<br>
215
 
           p public chatter on the channel<br>
216
 
           s server connects/disconnects/notices<br>
217
 
           b information about bot linking and userfile sharing<br>
218
 
           c commands people use (via msg or dcc)<br>
219
 
           x file transfers and file-area commands<br>
220
 
           r (if use-console-r enabled) EVERYTHING sent to the bot by the
221
 
          server<br>
222
 
           o other: misc info, errors -- IMPORTANT STUFF<br>
223
 
           w wallops: msgs between IRCops (be sure to set the bot +w in
224
 
          init-server)</p>
225
 
 
226
 
          <p>There are others, but you probably shouldn&#39;t log them, it&#39;d
227
 
          be rather unethical ;). There are also five user-defined levels
228
 
          (&#39;1&#39;..&#39;5&#39;) which are used by Tcl scripts.</p>
 
192
          <p>This setting tells the bot what should be logged, from where,
 
193
          and to which file.</p>
 
194
 
 
195
          <p>Logfile flags:</p>
 
196
 
 
197
          <blockquote>
 
198
            <table>
 
199
              <tr valign="top">
 
200
                <td>
 
201
                  <p><strong>b</strong></p>
 
202
                </td>
 
203
 
 
204
                <td>
 
205
                  <p>information about bot linking and userfile sharing</p>
 
206
                </td>
 
207
              </tr>
 
208
 
 
209
              <tr valign="top">
 
210
                <td>
 
211
                  <p><strong>c</strong></p>
 
212
                </td>
 
213
 
 
214
                <td>
 
215
                  <p>commands</p>
 
216
                </td>
 
217
              </tr>
 
218
 
 
219
              <tr valign="top">
 
220
                <td>
 
221
                  <p><strong>d</strong></p>
 
222
                </td>
 
223
 
 
224
                <td>
 
225
                  <p>misc debug information</p>
 
226
                </td>
 
227
              </tr>
 
228
 
 
229
              <tr valign="top">
 
230
                <td>
 
231
                  <p><strong>h</strong></p>
 
232
                </td>
 
233
 
 
234
                <td>
 
235
                  <p>raw share traffic</p>
 
236
                </td>
 
237
              </tr>
 
238
 
 
239
              <tr valign="top">
 
240
                <td>
 
241
                  <p><strong>j</strong></p>
 
242
                </td>
 
243
 
 
244
                <td>
 
245
                  <p>joins, parts, quits, and netsplits on the channel</p>
 
246
                </td>
 
247
              </tr>
 
248
 
 
249
              <tr valign="top">
 
250
                <td>
 
251
                  <p><strong>k</strong></p>
 
252
                </td>
 
253
 
 
254
                <td>
 
255
                  <p>kicks, bans, and mode changes on the channel</p>
 
256
                </td>
 
257
              </tr>
 
258
 
 
259
              <tr valign="top">
 
260
                <td>
 
261
                  <p><strong>m</strong></p>
 
262
                </td>
 
263
 
 
264
                <td>
 
265
                  <p>private msgs, notices and ctcps to the bot</p>
 
266
                </td>
 
267
              </tr>
 
268
 
 
269
              <tr valign="top">
 
270
                <td>
 
271
                  <p><strong>o</strong></p>
 
272
                </td>
 
273
 
 
274
                <td>
 
275
                  <p>misc info, errors, etc (IMPORTANT STUFF)</p>
 
276
                </td>
 
277
              </tr>
 
278
 
 
279
              <tr valign="top">
 
280
                <td>
 
281
                  <p><strong>p</strong></p>
 
282
                </td>
 
283
 
 
284
                <td>
 
285
                  <p>public text on the channel</p>
 
286
                </td>
 
287
              </tr>
 
288
 
 
289
              <tr valign="top">
 
290
                <td>
 
291
                  <p><strong>r</strong></p>
 
292
                </td>
 
293
 
 
294
                <td>
 
295
                  <p>raw incoming server traffic</p>
 
296
                </td>
 
297
              </tr>
 
298
 
 
299
              <tr valign="top">
 
300
                <td>
 
301
                  <p><strong>s</strong></p>
 
302
                </td>
 
303
 
 
304
                <td>
 
305
                  <p>server connects, disconnects, and notices</p>
 
306
                </td>
 
307
              </tr>
 
308
 
 
309
              <tr valign="top">
 
310
                <td>
 
311
                  <p><strong>t</strong></p>
 
312
                </td>
 
313
 
 
314
                <td>
 
315
                  <p>raw botnet traffic</p>
 
316
                </td>
 
317
              </tr>
 
318
 
 
319
              <tr valign="top">
 
320
                <td>
 
321
                  <p><strong>v</strong></p>
 
322
                </td>
 
323
 
 
324
                <td>
 
325
                  <p>raw outgoing server traffic</p>
 
326
                </td>
 
327
              </tr>
 
328
 
 
329
              <tr valign="top">
 
330
                <td>
 
331
                  <p><strong>w</strong></p>
 
332
                </td>
 
333
 
 
334
                <td>
 
335
                  <p>wallops (make sure the bot sets +w in init-server)</p>
 
336
                </td>
 
337
              </tr>
 
338
 
 
339
              <tr valign="top">
 
340
                <td>
 
341
                  <p><strong>x</strong></p>
 
342
                </td>
 
343
 
 
344
                <td>
 
345
                  <p>file transfers and file-area commands</p>
 
346
                </td>
 
347
              </tr>
 
348
            </table>
 
349
          </blockquote>
 
350
 
 
351
          <p>Note that modes d, h, r, t, and v can fill disk quotas quickly.
 
352
          There are also eight user-defined levels (1-8) which can be used by
 
353
          Tcl scripts.</p>
229
354
 
230
355
          <p>Each logfile belongs to a certain channel. Events of type
231
356
          &#39;k&#39;, &#39;j&#39;, and &#39;p&#39; are logged to whatever
232
 
          channel they happened on. Most other events are currently logged to
233
 
          every channel. You can make a logfile belong to all channels by
234
 
          assigning it to channel &quot;*&quot;.</p>
 
357
          channel they happened on. Most other events are currently logged
 
358
          to every channel. You can make a logfile belong to all channels
 
359
          by assigning it to channel &quot;*&quot;</p>
235
360
 
236
361
          <p>Examples:</p>
237
362
 
238
363
          <p><strong>logfile mco * &quot;logs/eggdrop.log&quot;<br>
239
 
           logfile jpk #lamest &quot;logs/lamest.log&quot;<br>
240
 
          </strong></p>
241
 
 
242
 
          <p>In &#39;eggdrop.log&#39; put private msgs/ctcps, commands, misc
243
 
          info, and errors from any channel<br>
244
 
           In &#39;lame.log&#39; put joins, parts, kicks, bans, public
245
 
          chatter and mode changes from #lamest</p>
 
364
          logfile jpk #lamest &quot;logs/lamest.log&quot;<br></strong></p>
 
365
 
 
366
          <p>In &#39;eggdrop.log&#39;, put private msgs/ctcps, commands,
 
367
          misc info, and errors from any channel.</p>
 
368
 
 
369
          <p>In &#39;lamest.log&#39;, log all joins, parts, kicks, bans,
 
370
          public chatter, and mode changes from #lamest.</p>
246
371
        </dd>
247
372
 
248
 
        <dt><strong><em>set log-time 1</em></strong></dt>
 
373
        <dt><strong>set log-time 1</strong></dt>
249
374
 
250
375
        <dd>
251
376
          <p>Use this feature to timestamp entries in the log file.</p>
252
 
 
253
 
          <p>Valid settings are 0 and 1.</p>
254
377
        </dd>
255
378
 
256
379
        <dt><strong>set keep-all-logs 0</strong></dt>
257
380
 
258
381
        <dd>
259
 
          <p>If you want to keep your logfiles forever turn this setting on.
260
 
          All logfiles will get suffix &quot;.[day, 2 digits][month, 3
261
 
          letters][year, 4 digits]&quot; Note that your quota might get full
262
 
          by this, so check your logfiles often and download them.</p>
263
 
 
264
 
          <p>Valid settings are 0 and 1.</p>
 
382
          <p>If you want to keep your logfiles forever, turn this setting
 
383
          on. All logfiles will get the suffix ".[day, 2 digits][month, 3
 
384
          letters][year, 4 digits]". Note that your quota/hard-disk might
 
385
          be filled by this, so check your logfiles often and download
 
386
          them.</p>
265
387
        </dd>
266
388
 
267
389
        <dt><strong>set switch-logfiles-at 300</strong></dt>
268
390
 
269
391
        <dd>
270
 
          <p>You can specify in this setting, when eggdrop should switch the
271
 
          logfiles and started fresh.</p>
272
 
 
273
 
          <p>You have to use military time in here. 300 is default and
274
 
          describes 00:00.</p>
275
 
 
276
 
          <p>Note that a leading 0 will make Tcl think this is an octal
277
 
          value, something you probably don&#39;t want.</p>
 
392
          <p>You can specify when Eggdrop should switch logfiles and start
 
393
          fresh. You must use military time for this setting. 300 is the
 
394
          default, and describes 03:00 (AM).</p>
278
395
        </dd>
279
396
 
280
 
        <dt><strong><em>set quiet-save 0</em></strong></dt>
 
397
        <dt><strong>set quiet-save 0</strong></dt>
281
398
 
282
399
        <dd>
283
400
          <p>Those nasty &quot;Writing user file...&quot; and &quot;Writing
284
 
          channel file ...&quot; messages wont be logged anymore if this
 
401
          channel file...&quot; messages won&#39;t be logged anymore if this
285
402
          option is enabled.</p>
286
 
 
287
 
          <p>Valid settings are 0 and 1.</p>
288
 
        </dd>
289
 
      </dl>
290
 
    </blockquote>
291
 
 
292
 
    <p><a name="sect1d"></a>1d. <strong>Files and directories</strong></p>
 
403
        </dd>
 
404
 
 
405
        <dt><strong>set logfile-suffix &quot;.%d%b%Y&quot;</strong></dt>
 
406
 
 
407
        <dd>
 
408
          <p>If keep-all-logs is 1, this setting will define the suffix of
 
409
          the logfiles. The default will result in a suffix like
 
410
          &quot;04May2000&quot;. &quot;%Y%m%d&quot; will produce the often
 
411
          used yyyymmdd format. Read the strftime manpages for more options.
 
412
          NOTE: On systems which don&#39;t support strftime, the default
 
413
          format will be used <strong>always</strong>.</p>
 
414
        </dd>
 
415
      </dl>
 
416
    </blockquote>
 
417
 
 
418
    <p><a name="sect1d"></a>1d. <strong>Console</strong></p>
 
419
 
 
420
    <blockquote>
 
421
      <dl>
 
422
        <dt><strong>set console &quot;mkcobxs&quot;</strong></dt>
 
423
 
 
424
        <dd>
 
425
          <p>This is the default console mode. It uses the same event flags
 
426
          as the log files do. The console channel is automatically set to
 
427
          your &quot;primary&quot; channel, which is set in the modules
 
428
          section of the config file. Masters can change their console
 
429
          channel and modes with the &#39;.console&#39; command.</p>
 
430
        </dd>
 
431
      </dl>
 
432
    </blockquote>
 
433
 
 
434
    <p><a name="sect1e"></a>1e. <strong>Files and directories</strong></p>
293
435
 
294
436
    <blockquote>
295
437
      <dl>
296
438
        <dt><strong>set userfile &quot;LamestBot.user&quot;</strong></dt>
297
439
 
298
440
        <dd>
299
 
          <p>Specify here how your userfile should be called</p>
300
 
        </dd>
301
 
 
302
 
    <dt><strong>set pidfile &quot;pid.LamestBot&quot;</strong</dt>
303
 
 
304
 
    <dd>
305
 
      <p>Specify here what filename eggdrop will save its pid under</p>
306
 
    </dd>
307
 
 
308
 
        <dt><strong><em>set sort-users 0</em></strong></dt>
309
 
 
310
 
        <dd>
311
 
          <p>If you want your userfile to be sorted on save, turn this
312
 
          feature on.</p>
313
 
 
314
 
          <p>Note that this takes a bit more cpu</p>
315
 
 
316
 
          <p>Valid settings are 0 and 1.</p>
 
441
          <p>Specify here the filename your userfile should be saved as.</p>
 
442
        </dd>
 
443
 
 
444
        <dt><strong>set pidfile &quot;pid.LamestBot&quot;</strong></dt>
 
445
 
 
446
        <dd>
 
447
          <p>Specify here the filename Eggdrop will save its pid to. If no
 
448
          pidfile is specified, pid.(botnet-nick) will be used.</p>
 
449
        </dd>
 
450
 
 
451
        <dt><strong>set sort-users 0</strong></dt>
 
452
 
 
453
        <dd>
 
454
          <p>If you want your userfile to be sorted upon saving, enable this
 
455
          setting. This causes the bot to use bit more CPU when saving the
 
456
          userfile.</p>
317
457
        </dd>
318
458
 
319
459
        <dt><strong>set help-path &quot;help/&quot;</strong></dt>
320
460
 
321
461
        <dd>
322
 
          <p>Specify here where eggdrop should look for help files. Don&#39;t
323
 
          modify this setting until you know what you&#39;re doing!</p>
 
462
          <p>Specify here where Eggdrop should look for help files.
 
463
          Don&#39;t modify this setting unless you know what you&#39;re
 
464
          doing!</p>
 
465
        </dd>
 
466
 
 
467
        <dt><strong>set text-path &quot;text/&quot;</strong></dt>
 
468
 
 
469
        <dd>
 
470
          <p>Specify here where Eggdrop should look for text files. This is
 
471
          used for certain Tcl and DCC commands.</p>
324
472
        </dd>
325
473
 
326
474
        <dt><strong>set temp-path &quot;/tmp&quot;</strong></dt>
327
475
 
328
476
        <dd>
329
 
          <p>Set here a place to store temporarily files</p>
 
477
          <p>Set here a place to store temporary files.</p>
330
478
        </dd>
331
479
 
332
480
        <dt><strong>set motd &quot;text/motd&quot;</strong></dt>
333
481
 
334
482
        <dd>
335
 
          <p>The MOTD (motto of the day) is displayed when people dcc chat or
336
 
          telnet to the bot.</p>
337
 
 
338
 
          <p>Look into doc/settings.motd or type &#39;.help set motd&#39; in
339
 
          DCC CHAT or telnet connection for options.</p>
 
483
          <p>The MOTD (Message Of The day) is displayed when people dcc chat
 
484
          or telnet to the bot. Look at doc/TEXT-SUBSTITUTIONS for
 
485
          options.</p>
340
486
        </dd>
341
487
 
342
488
        <dt><strong>set telnet-banner &quot;text/banner&quot;</strong></dt>
343
489
 
344
490
        <dd>
345
 
          <p>This banner will be displayed on telnet connections</p>
 
491
          <p>This banner will be displayed on telnet connections. Look at
 
492
          doc/TEXT-SUBSTITUTIONS for options.</p>
346
493
        </dd>
347
494
 
348
495
        <dt><strong>set userfile-perm 0600</strong></dt>
349
496
 
350
497
        <dd>
351
 
          <p>Specifies what permissions the user, channel and notes (if notes
352
 
          module is loaded) files should be set to.</p>
353
 
 
354
 
          <p>The octal values are the same as for the chmod system
355
 
          command.</p>
 
498
          <p>This specifies what permissions the user, channel, and notes
 
499
          files should be set to. The octal values are the same as for the
 
500
          chmod system command.</p>
356
501
 
357
502
          <p>To remind you:</p>
358
503
<pre>
363
508
</pre>
364
509
 
365
510
          <p>Note that the default 0600 is the most secure one and should
366
 
          only be changed if you need your files for shell scripting or other
367
 
          external applications.</p>
 
511
          only be changed if you need your files for shell scripting or
 
512
          other external applications.</p>
368
513
        </dd>
369
514
 
370
515
        <dt><strong>set mod-path &quot;modules/&quot;</strong></dt>
371
516
 
372
517
        <dd>
373
 
          <p>This path specifies the path were eggdrop should look for its
374
 
          modules</p>
 
518
          <p>This path specifies the path were Eggdrop should look for its
 
519
          modules. If you run the bot from the compilation directory, you
 
520
          will want to set this to &quot;&quot;. If you use &#39;make
 
521
          install&#39; (like all good kiddies do ;), this is a fine default.
 
522
          Otherwise, use your head :).</p>
375
523
        </dd>
376
524
      </dl>
377
525
    </blockquote>
378
526
 
379
 
    <p><a name="sect1e"></a>1e. <strong>Botnet, dcc and network</strong></p>
 
527
    <p><a name="sect1f"></a>1f. <strong>Botnet, DCC and network</strong></p>
380
528
 
381
 
    <p>Settings in this section should be unimportant fur you until you deal
382
 
    with botnets (multiple eggdrops connected together to maximize efficiency).
383
 
    You should read doc/BOTNET before modifying these settings.</p>
 
529
    <p>Settings in this section should be unimportant for you until you
 
530
    deal with botnets (multiple Eggdrops connected together to maximize
 
531
    efficiency). You should read <a href="botnet.html">Botnet Sharing and
 
532
    Linking</a> before modifying these settings.</p>
384
533
 
385
534
    <blockquote>
386
535
      <dl>
387
 
        <dt><strong><em>set botnet-nick &quot;LlamaBot&quot;</em></strong>
388
 
        (disabled by default)</dt>
 
536
        <dt><strong>set botnet-nick &quot;LlamaBot&quot;</strong> (disabled
 
537
        by default)</dt>
389
538
 
390
539
        <dd>
391
540
          <p>If you want to use a different nickname on the botnet than you
392
 
          use on IRC (i.e. if you&#39;re in an un-trusted botnet) set it
393
 
          here.</p>
 
541
          use on IRC (i.e. if you&#39;re on an un-trusted botnet), un-comment
 
542
          this line and set it to the nick you would like to use.</p>
394
543
        </dd>
395
544
 
396
545
        <dt><strong>listen &lt;port&gt; &lt;mode&gt;</strong></dt>
397
546
 
398
547
        <dd>
399
 
          <p>The listen command opens a telnet port by which you or other
400
 
          bots can interact with the eggdrop by telneting in.</p>
401
 
 
402
 
          <p>Valid ports are (as long as you aren&#39;t root) &gt;1024.</p>
403
 
 
404
 
          <p>Valid modes are &#39;all&#39;, &#39;bots&#39; and
405
 
          &#39;users&#39;. You can assign special ports for users and bots,
406
 
          or one for all.</p>
407
 
 
408
 
          <p>Examples:</p>
409
 
 
410
 
          <p><strong>listen 3333 bots<br>
411
 
           listen 4444 users</strong></p>
412
 
 
413
 
          <p>or:</p>
414
 
 
415
 
          <p><strong>listen 3333 all</strong></p>
 
548
          <p>This opens a telnet port by which you and other bots can interact
 
549
          with the Eggdrop by telneting in.</p>
416
550
 
417
551
          <p>There are more options for the listen command in
418
 
          doc/tcl-commands.doc</p>
419
 
 
420
 
          <p>Note, if you are running more than one bot on the same machine,
421
 
          you will want to space the telnet ports at LEAST 5 apart... 10 is
422
 
          even better.</p>
423
 
        </dd>
424
 
 
425
 
        <dt><strong><em>set remote-boots 2</em></strong></dt>
426
 
 
427
 
        <dd>
428
 
          <p>This setting defines if people can boot users on the eggdrop
429
 
          from other bots in your botnet.</p>
430
 
 
431
 
          <p>Valid settings are:</p>
432
 
 
433
 
          <p>0 - allow *no* outside boots<br>
434
 
           1 - allow boots from sharebots<br>
435
 
           2 - allow any boots</p>
436
 
        </dd>
437
 
 
438
 
        <dt><strong><em>set share-unlinks 1</em></strong></dt>
439
 
 
440
 
        <dd>
441
 
          <p>This setting prohibits eggdrop to unlink from share bots if an
 
552
          <a href="tcl-commands.html">Tcl Commands</a>. Note that if you are
 
553
          running more than one bot on the same machine, you will want to space
 
554
          the telnet ports at LEAST 5 apart, although 10 is even better.</p>
 
555
 
 
556
          <p>Valid ports are typically anything between 1025 and 65535 assuming
 
557
          the port is not already in use.</p>
 
558
 
 
559
          <p>If you would like the bot to listen for users and bots in separate
 
560
          ports, use the following format:</p>
 
561
 
 
562
          <blockquote>
 
563
            <p><strong>listen 3333 bots</strong><br>
 
564
            <strong>listen 4444 users</strong></p>
 
565
          </blockquote>
 
566
 
 
567
          <p>If you wish to use only one port, use this format:</p>
 
568
 
 
569
          <blockquote>
 
570
            <p><strong>listen 3333 all</strong></p>
 
571
          </blockquote>
 
572
 
 
573
          <p>You need to un-comment this line and change the port number in
 
574
          order to open the listen port. You should not keep this set to
 
575
          3333.</p>
 
576
        </dd>
 
577
 
 
578
        <dt><strong>set remote-boots 2</strong></dt>
 
579
 
 
580
        <dd>
 
581
          <p>This setting defines whether or not people can boot users on
 
582
          the Eggdrop from other bots in your botnet. Valid settings are:</p>
 
583
 
 
584
          <blockquote>
 
585
            <p>0 - allow <strong>no</strong> outside boots<br>
 
586
            1 - allow boots from sharebots<br>
 
587
            2 - allow any boots</p>
 
588
          </blockquote>
 
589
        </dd>
 
590
 
 
591
        <dt><strong>set share-unlinks 1</strong></dt>
 
592
 
 
593
        <dd>
 
594
          <p>This setting prohibits Eggdrop to unlink from share bots if an
442
595
          remote bots tells so.</p>
443
596
        </dd>
444
597
 
445
 
        <dt><strong>set telnet-flood 5:60</strong></dt>
446
 
 
447
 
        <dd>
448
 
          <p>Define here how many telnet connection attempt in how many
449
 
          seconds from the same host constitute a flood.</p>
450
 
 
451
 
          <p>Attempts:Seconds</p>
452
 
        </dd>
453
 
 
454
 
        <dt><strong><em>set paranoid-telnet-flood 1</em></strong></dt>
455
 
 
456
 
        <dd>
457
 
          <p>If you telnet-flood to apply even to +f users, set this setting
458
 
          to 1</p>
459
 
 
460
 
          <p>Valid settings are 0 and 1.</p>
461
 
        </dd>
462
 
 
463
 
        <dt><strong>set open-telnets 0</strong></dt>
464
 
 
465
 
        <dd>
466
 
          <p>If you want people allow to telnet in and type &#39;NEW&#39; to
467
 
          become a new user, set this to 1. This is similar to
468
 
          &#39;hello&#39;</p>
469
 
 
470
 
          <p>Valid settings are 0 and 1.</p>
471
 
        </dd>
472
 
 
473
598
        <dt><strong>set protect-telnet 0</strong></dt>
474
599
 
475
600
        <dd>
476
601
          <p>This setting will drop telnet connections not matching a known
477
 
          host. It greatly improves protection from IRCOPs, but makes it
478
 
          impossible for NOIRC bots to add hosts or have NEW as a valid
 
602
          host. It greatly improves protection from IRCops, but makes it
 
603
          impossible to add hosts on limbo (NOIRC) bots or have NEW as a valid
479
604
          login.</p>
480
 
 
481
 
          <p>Valid settings are 0 and 1.</p>
482
 
        </dd>
483
 
 
484
 
        <dt><strong><em>set stealth-telnets 0</em></strong></dt>
485
 
 
486
 
        <dd>
487
 
          <p>If you don&#39;t want eggdrop to identify itself on a telnet
488
 
          connection, set this setting to 1. Eggdrop will display its
489
 
          nickname instead.</p>
490
 
 
491
 
          <p>Valid settings are 0 and 1.</p>
492
 
        </dd>
493
 
 
494
 
        <dt><strong><em>set use-telnet-banner 0</em></strong></dt>
495
 
 
496
 
        <dd>
497
 
          <p>If you want eggdrop to display a banner when telneting in set
498
 
          this setting to 1. The telnet banner is set by
499
 
          &#39;telnet-banner&#39;.</p>
500
 
        </dd>
501
 
 
502
 
        <dt><strong>set dcc-sanitycheck 1</strong></dt>
 
605
        </dd>
 
606
 
 
607
        <dt><strong>set dcc-sanitycheck 0</strong></dt>
503
608
 
504
609
        <dd>
505
610
          <p>This setting will make the bot ignore DCC chat requests which
508
613
          it into trouble, or that the user has a broken client (like mIRC
509
614
          tends to do), in which case the connect wouldn&#39;t work anyway.
510
615
          It&#39;s suggested that you turn this on.</p>
511
 
 
512
 
          <p>Valid settings are 0 and 1.</p>
513
 
        </dd>
514
 
 
515
 
        <dt><strong><em>set quiet-reject 1</em></strong></dt>
516
 
 
517
 
        <dd>
518
 
          <p>If set to 1, the bot will squelch the error message when
519
 
          rejecting a DCC CHAT or SEND.</p>
520
 
 
521
 
          <p>Normally eggdrop tells the DCC user that the CHAT or SEND has
522
 
          been rejected because they don&#39;t have access, but sometimes IRC
523
 
          server operators detect bots that way.</p>
524
 
        </dd>
525
 
 
526
 
        <dt><strong>set max-dcc 50</strong></dt>
527
 
 
528
 
        <dd>
529
 
          <p>Set here the maximum number of dcc connections you will allow -
530
 
          you can increase this later, but never decrease it.</p>
531
 
        </dd>
532
 
 
533
 
        <dt><strong><em>set require-p 0</em></strong></dt>
534
 
 
535
 
        <dd>
536
 
          <p>Define here if +o user still need the +p flag to dcc the
537
 
          bot.</p>
538
 
 
539
 
          <p>Valid settings are 0 and 1.</p>
 
616
        </dd>
 
617
 
 
618
        <dt><strong>set ident-timeout 5</strong></dt>
 
619
 
 
620
        <dd>
 
621
          <p>This settings defines a time in seconds that the bot should
 
622
          wait before a dcc chat, telnet, or relay connection times out.</p>
 
623
        </dd>
 
624
 
 
625
        <dt><strong>set require-p 0</strong></dt>
 
626
 
 
627
        <dd>
 
628
          <p>Define here whether or not a +o user still needs the +p flag
 
629
          to dcc the bot.</p>
 
630
        </dd>
 
631
 
 
632
        <dt><strong>set open-telnets 0</strong></dt>
 
633
 
 
634
        <dd>
 
635
          <p>If you want people allow to telnet in and type &#39;NEW&#39;
 
636
          to become a new user, set this to 1. This is similar to the
 
637
          &#39;hello&#39; msg command. The protect-telnet setting must be
 
638
          set to 0 to use this.</p>
 
639
        </dd>
 
640
 
 
641
        <dt><strong>set stealth-telnets 0</strong></dt>
 
642
 
 
643
        <dd>
 
644
          <p>If you don&#39;t want Eggdrop to identify itself as an Eggdrop
 
645
          on a telnet connection, set this setting to 1. Eggdrop will display
 
646
          &#39;Nickname&#39; instead.</p>
 
647
        </dd>
 
648
 
 
649
        <dt><strong>set use-telnet-banner 0</strong></dt>
 
650
 
 
651
        <dd>
 
652
          <p>If you want Eggdrop to display a banner when telneting in, set
 
653
          this setting to 1. The telnet banner is set by &#39;set
 
654
          telnet-banner&#39;.</p>
 
655
        </dd>
 
656
 
 
657
         <dt><strong>set connect-timeout 15</strong></dt>
 
658
 
 
659
        <dd>
 
660
          <p>This settings defines a timeout in seconds how long the bot
 
661
          should wait for a dcc chat, telnet, relay, etc connection.</p>
540
662
        </dd>
541
663
 
542
664
        <dt><strong>set dcc-flood-thr 3</strong></dt>
543
665
 
544
666
        <dd>
545
 
          <p>Specify here the number of lines from a user on the partyline
546
 
          (dcc, telnet) before they are considered to be flooding (and
547
 
          therefore get booted)</p>
 
667
          <p>Specify here the number of lines to accept from a user on the
 
668
          partyline within 1 second before they are considered to be
 
669
          flooding and therefore get booted.</p>
 
670
        </dd>
 
671
 
 
672
        <dt><strong>set telnet-flood 5:60</strong></dt>
 
673
 
 
674
        <dd>
 
675
          <p>Define here how many telnet connection attempts in how many
 
676
          seconds from the same host constitute a flood. The correct format
 
677
          is Attempts:Seconds.</p>
 
678
        </dd>
 
679
 
 
680
        <dt><strong>set paranoid-telnet-flood 1</strong></dt>
 
681
 
 
682
        <dd>
 
683
          <p>If you want telnet-flood to apply even to +f users, set this
 
684
          setting to 1.</p>
548
685
        </dd>
549
686
 
550
687
        <dt><strong>set resolve-timeout 15</strong></dt>
551
688
 
552
689
        <dd>
553
690
          <p>Set here the amount of seconds before giving up on
554
 
          hostname/address lookup. (you might want to increase this if you
 
691
          hostname/address lookup (you might want to increase this if you
555
692
          are on a slow network).</p>
556
693
        </dd>
557
 
 
558
 
        <dt><strong>set ident-timeout 5</strong></dt>
559
 
 
560
 
        <dd>
561
 
          <p>Set a timeout in seconds how long to wait on ident-lookups.</p>
562
 
        </dd>
563
 
 
564
 
        <dt><strong>set connect-timeout 15</strong></dt>
565
 
 
566
 
        <dd>
567
 
          <p>This settings defines a timeout in seconds how long the bot
568
 
          should wait for a dcc chat, telnet, relay, etc connection.</p>
569
 
        </dd>
570
 
 
571
 
        <dt><strong><em>set my-hostname
572
 
        &quot;virtual.host.com&quot;</em></strong></dt>
573
 
 
574
 
        <dt><strong><em>set my-ip &quot;99.99.0.0&quot;</em></strong></dt>
575
 
 
576
 
        <dd>
577
 
          <p>If you&#39;re using virtual hosting (your machine has more than
578
 
          1 IP), you may want to specify the particular IP to bind to. You
579
 
          can specify either by hostname or by IP. You may also want to set
580
 
          the hostname here if eggdrop has trouble detecting it when it
581
 
          starts up.</p>
582
 
        </dd>
583
 
 
584
 
        <dt><strong><em>set firewall &quot;host:port&quot;</em></strong></dt>
585
 
 
586
 
        <dd>
587
 
          <p>Set this to your socks host if your eggdrop sits behind a
588
 
          firewall</p>
589
 
 
590
 
          <p>Example:</p>
591
 
 
592
 
          <p><strong>set firewall &quot;proxy:178&quot;</strong></p>
593
 
 
594
 
          <p>If you use a Sun &quot;telnet passthru&quot; firewall, use this
595
 
          setting:</p>
596
 
 
597
 
          <p>Example:</p>
598
 
 
599
 
          <p><strong>set firewall
600
 
          &quot;!sun-barr.ebay:3666&quot;</strong></p>
601
 
        </dd>
602
 
 
603
 
        <dt><strong><em>set nat-ip &quot;127.0.0.1&quot;</em></strong></dt>
 
694
      </dl>
 
695
    </blockquote>
 
696
 
 
697
    <p><a name="sect1g"></a>1g. <strong>More advanced settings</strong></p>
 
698
 
 
699
    <blockquote>
 
700
      <dl>
 
701
        <dt><strong>set firewall &quot;!sun-barr.ebay:3666&quot;</strong></dt>
 
702
 
 
703
        <dd>
 
704
          <p>Set this to your socks host if your Eggdrop sits behind a
 
705
          firewall. If you use a Sun &quot;telnet passthru&quot; firewall,
 
706
          prefix the host with a &quot;!&quot;.</p>
 
707
        </dd>
 
708
 
 
709
        <dt><strong>set nat-ip &quot;127.0.0.1&quot;</strong></dt>
604
710
 
605
711
        <dd>
606
712
          <p>If you have a NAT firewall (you box has an IP in one of the
607
713
          following ranges: 192.168.0.0-192.168.255.255,
608
714
          172.16.0.0-172.31.255.255, 10.0.0.0-10.255.255.255 and your
609
 
          firewall transparently changes your address to a unique address for
610
 
          your box.) or you have IP masquerading between you and the rest of
611
 
          the world, and /dcc chat,/ctcp chat or userfile sharing aren&#39;t
612
 
          working. Enter your outside IP here.</p>
613
 
 
614
 
          <p>Do not enter anything for my-ip or my-hostname if you use this
615
 
          setting.</p>
616
 
        </dd>
617
 
 
618
 
        <dt><strong><em>set reserved-portrange 2010:2020</em></strong></dt>
619
 
 
620
 
        <dd>
621
 
          <p>If you want all your dcc file transfers bound to a particular portrange,
622
 
          either because your behind a firewall, or for other security reasons, set it
623
 
          here.</p>
624
 
        </dd>
625
 
 
626
 
        <dt><strong><em>set dupwait-timeout 5</em></strong></dt>
627
 
 
628
 
        <dd>
629
 
          <p>If your eggdrop rejects bots that actually have already
630
 
          disconnected from another hub, but the disconnect information has
631
 
          not yet spread over the botnet due to lag, use this setting.</p>
632
 
 
633
 
          <p>The bot will wait dupwait-timeout seconds before it checks again
634
 
          and then finally reject the bot.</p>
635
 
        </dd>
636
 
      </dl>
637
 
    </blockquote>
638
 
 
639
 
    <p><a name="sect1f"></a>1f. <strong>Console</strong></p>
640
 
 
641
 
    <blockquote>
642
 
      <dl>
643
 
        <dt><strong>set console &quot;mkcobxs&quot;</strong></dt>
644
 
 
645
 
        <dd>
646
 
          <p>This is the default console mode. It uses the same event flags
647
 
          as the log files do.</p>
648
 
 
649
 
          <p>Note that the console channel is automatically set to your
650
 
          &quot;primary&quot; channel (the one you defined first in config
651
 
          file)</p>
652
 
 
653
 
          <p>Masters can change their console channel and modes with the
654
 
          &#39;.console&#39; command</p>
655
 
        </dd>
656
 
      </dl>
657
 
    </blockquote>
658
 
 
659
 
    <p><a name="sect1g"></a>1g. <strong>Common stuff</strong></p>
660
 
 
661
 
    <blockquote>
662
 
      <dl>
 
715
          firewall transparently changes your address to a unique address
 
716
          for your box) or you have IP masquerading between you and the rest
 
717
          of the world, and /dcc chat,/ctcp chat or userfile sharing
 
718
          aren&#39;t working, enter your outside IP here. Do not enter
 
719
          anything for my-ip or my-hostname if you use this setting.</p>
 
720
        </dd>
 
721
 
 
722
        <dt><strong>set reserved-portrange 2010:2020</strong></dt>
 
723
 
 
724
        <dd>
 
725
          <p>If you want all dcc file transfers to use a particular
 
726
          portrange either because you&#39;re behind a firewall, or for other
 
727
          security reasons, set it here.</p>
 
728
        </dd>
 
729
 
663
730
        <dt><strong>set ignore-time 15</strong></dt>
664
731
 
665
732
        <dd>
666
 
          <p>Set the time in minutes how long temporary ignores should
667
 
          last</p>
 
733
          <p>Set the time in minutes that temporary ignores should last.</p>
668
734
        </dd>
669
735
 
670
736
        <dt><strong>set hourly-updates 00</strong></dt>
671
737
 
672
738
        <dd>
673
 
          <p>Define here what eggdrop calls &#39;hourly&#39;. All calls to
674
 
          it, including such things as note notifying or userfile saving are
675
 
          affected by this.</p>
 
739
          <p>Define here what Eggdrop considers &#39;hourly&#39;. All calls
 
740
          to it, including such things as note notifying or userfile saving,
 
741
          are affected by this.</p>
676
742
 
677
743
          <p>Example:</p>
678
744
 
679
 
          <p><strong>set hourly-updates 15</strong></p>
 
745
          <blockquote>
 
746
            <p>set hourly-updates 15</p>
 
747
          </blockquote>
680
748
 
681
 
          <p>Bot will save 15 minutes past every hour its userfile</p>
 
749
          <p>The bot will save its userfile 15 minutes past every hour.</p>
682
750
        </dd>
683
751
 
684
752
        <dt><strong>set owner &quot;MrLame, MrsLame&quot;</strong></dt>
685
753
 
686
754
        <dd>
687
 
          <p>Put all permanent owner into this variable.</p>
 
755
          <p>Un-comment this line and set the list of owners of the bot.
 
756
          You NEED to change this setting.</p>
 
757
        </dd>
 
758
 
 
759
        <dt><strong>set notify-newusers &quot;$owner&quot;</strong></dt>
 
760
 
 
761
        <dd>
 
762
          <p>Who should a note be sent to when new users are learned?</p>
688
763
        </dd>
689
764
 
690
765
        <dt><strong>set default-flags &quot;hp&quot;</strong></dt>
691
766
 
692
767
        <dd>
693
 
          <p>Enter all flags that new users should get as a default.</p>
 
768
          <p>Enter the flags that all new users should get by default. See
 
769
          &#39;.help whois&#39; on the partyline for a list of flags and
 
770
          their descriptions.</p>
694
771
        </dd>
695
772
 
696
 
        <dt><strong><em>set whois-fields &quot;url
697
 
        birthday&quot;</em></strong></dt>
 
773
        <dt><strong>set whois-fields &quot;url birthday&quot;</strong></dt>
698
774
 
699
775
        <dd>
700
776
          <p>Enter all user-defined fields that should be displayed in a
701
 
          &#39;.whois&#39; This will only be shown if the user has one of
702
 
          these xtra fields.</p>
703
 
 
704
 
          <p>You might prefer to comment this out and use the userinfo1.0.tcl
705
 
          script which provides commands for changing all of these.</p>
706
 
        </dd>
707
 
 
708
 
        <dt><strong><em>set die-on-sighup 0</em></strong></dt>
709
 
 
710
 
        <dd>
711
 
          <p>Enable this setting if you want your eggdrop on receiving a
712
 
          SIGHUP. Otherwise eggdrop will just rehash.</p>
713
 
 
714
 
          <p>Valid settings are 0 and 1.</p>
715
 
        </dd>
716
 
 
717
 
        <dt><strong><em>set die-on-sigterm 0</em></strong></dt>
718
 
 
719
 
        <dd>
720
 
          <p>Enable this setting if you want your eggdrop on receiving a
721
 
          SIGTERM. Otherwise eggdrop will just save its userfile.</p>
722
 
 
723
 
          <p>Valid settings are 0 and 1.</p>
724
 
        </dd>
725
 
 
726
 
        <dt><strong>set must-be-owner 0</strong></dt>
 
777
          &#39;.whois&#39;. This will only be shown if the user has one of
 
778
          these extra fields. You might prefer to comment this out and use
 
779
          the userinfo1.0.tcl script which provides commands for changing
 
780
          all of these.</p>
 
781
        </dd>
 
782
 
 
783
        <dt><strong>set die-on-sighup 0</strong></dt>
 
784
 
 
785
        <dd>
 
786
          <p>Enable this setting if you want your Eggdrop to die upon
 
787
          receiving a SIGHUP kill signal. Otherwise, the Eggdrop will just
 
788
          save its userfile and rehash.</p>
 
789
        </dd>
 
790
 
 
791
        <dt><strong>set die-on-sigterm 0</strong></dt>
 
792
 
 
793
        <dd>
 
794
          <p>Enable this setting if you want your Eggdrop to die upon
 
795
          receiving a SIGTERM kill signal. Otherwise, the Eggdrop will just
 
796
          save its userfile and rehash.</p>
 
797
        </dd>
 
798
 
 
799
        <dt><strong>unbind dcc n tcl *dcc:tcl</strong></dt>
 
800
        <dt><strong>unbind dcc n set *dcc:set</strong></dt>
 
801
 
 
802
        <dd>
 
803
          <p>Comment these two lines if you wish to enable the .tcl and .set
 
804
          commands. If you select your owners wisely, you should be okay
 
805
          enabling these.</p>
 
806
        </dd>
 
807
 
 
808
        <dt><strong>set must-be-owner 1</strong></dt>
727
809
 
728
810
        <dd>
729
811
          <p>If you enable this setting, only permanent owners (owner
730
 
          setting) will be able to use .tcl and .set moreover if you want
731
 
          only let permanent owners use .dump, then set it to 2 Valid
732
 
          settings are 0, 1 and 2</p>
733
 
        </dd>
734
 
 
735
 
        <dt><strong><em>set enable-simul 1</em></strong></dt>
736
 
 
737
 
        <dd>
738
 
          <p>Enable this setting, if you want to enable the
739
 
          &#39;dccsimul&#39; Tcl command</p>
740
 
 
741
 
          <p>Valid settings are 0 and 1.</p>
742
 
        </dd>
743
 
 
744
 
        <dt><strong><em>set allow-dk-cmds 1</em></strong></dt>
745
 
 
746
 
        <dd>
747
 
          <p>Enable this setting, if you want +d &amp; +k users to use
748
 
          commands bound as -|-</p>
749
 
 
750
 
          <p>Valid settings are 0 and 1.</p>
 
812
          setting) will be able to use .tcl and .set. Moreover, if you want
 
813
          to only let permanent owners use .dump, then set this to 2.</p>
 
814
        </dd>
 
815
 
 
816
        <dt><strong>unbind dcc n simul *dcc:simul</strong></dt>
 
817
 
 
818
        <dd>
 
819
          <p>Comment out this line to add the &#39;simul&#39; partyline
 
820
          command (owners can manipulate other people on the party line).
 
821
          Please select owners wisely and use this command ethically!</p>
 
822
        </dd>
 
823
 
 
824
        <dt><strong>set max-dcc 50</strong></dt>
 
825
 
 
826
        <dd>
 
827
          <p>Set here the maximum number of dcc connections you will allow.
 
828
          You can increase this later, but never decrease it.</p>
 
829
        </dd>
 
830
 
 
831
        <dt><strong>set allow-dk-cmds 1</strong></dt>
 
832
 
 
833
        <dd>
 
834
          <p>Enable this setting if you want +d &amp; +k users to use
 
835
          commands bound as -|-.</p>
 
836
        </dd>
 
837
 
 
838
        <dt><strong>set dupwait-timeout 5</strong></dt>
 
839
 
 
840
        <dd>
 
841
          <p>If your Eggdrop rejects bots that actually have already
 
842
          disconnected from another hub, but the disconnect information has
 
843
          not yet spread over the botnet due to lag, use this setting. The
 
844
          bot will wait dupwait-timeout seconds before it checks again and
 
845
          then finally reject the bot.</p>
751
846
        </dd>
752
847
      </dl>
753
848
    </blockquote>
755
850
    <p><a name="sect1h"></a>1h. <strong>Modules</strong></p>
756
851
 
757
852
    <blockquote>
758
 
      <p>After the core settings you should start loading any modules you
759
 
      need. Modules are loaded by the command &quot;loadmodule module&quot;.
 
853
      <p>After the core settings, you should start loading modules. Modules
 
854
      are loaded by the command &quot;loadmodule &lt;module&gt;&quot;.
760
855
      Eggdrop looks for modules in the directory you specified by the
761
 
      module-path setting in the path section.<br>
762
 
      </p>
763
 
 
764
 
      <p>Documentation and a list of all modules can be found in doc/modules
765
 
      directory</p>
766
 
 
767
 
      <p>Please note, that for different configurations different modules are
768
 
      needed.</p>
769
 
    </blockquote>
770
 
 
771
 
    <blockquote>
 
856
      module-path setting in the files and directories section.</p>
 
857
 
 
858
      <p>Please note that for different configurations, different modules
 
859
      are needed. Four examples:</p>
 
860
 
772
861
      <dl>
773
 
        <dt><strong>Channel security bot</strong></dt>
774
 
 
775
 
        <dd>
776
 
          <p>This bot needs channel, console, dns, irc and if you like ctcp
777
 
          module loaded. More is not needed and makes the bot slower.</p>
778
 
        </dd>
779
 
 
780
 
        <dt><strong>Public bot</strong></dt>
781
 
 
782
 
        <dd>
783
 
          <p>A public bot should have all modules available loaded since they
784
 
          provide all functions for everybody.</p>
785
 
        </dd>
786
 
 
787
 
        <dt><strong>Secure filesys bot</strong></dt>
788
 
 
789
 
        <dd>
790
 
          <p>This bot needs all normal irc operating modules but not notes,
791
 
          seen, ctcp or share module.</p>
792
 
        </dd>
793
 
 
794
 
        <dt><strong>Limbo bot</strong></dt>
795
 
 
796
 
        <dd>
797
 
          <p>A limbo bot (bot serves as a botnet hub outside irc) just needs
798
 
          channels, console, dns and maybe notes or share module loaded. Of
799
 
          course blowfish needs to be loaded here, too.</p>
 
862
        <dt><strong>Channel Security Bot</strong></dt>
 
863
 
 
864
        <dd>
 
865
          <p>This bot needs the channels, blowfish, console, dns, irc, and
 
866
          (if you like) ctcp modules loaded. More is not needed and makes
 
867
          the bot slower.</p>
 
868
        </dd>
 
869
 
 
870
        <dt><strong>Public IRC Bot</strong></dt>
 
871
 
 
872
        <dd>
 
873
          <p>A public bot should have all modules available loaded since
 
874
          they provide all functions for everyday use.</p>
 
875
        </dd>
 
876
 
 
877
        <dt><strong>Secure Filesys Bot</strong></dt>
 
878
 
 
879
        <dd>
 
880
          <p>This bot needs all normal IRC operating modules, but not the
 
881
          notes, seen, ctcp or share modules.</p>
 
882
        </dd>
 
883
 
 
884
        <dt><strong>Limbo Bot</strong></dt>
 
885
 
 
886
        <dd>
 
887
          <p>A limbo bot (serves as a botnet hub outside IRC) just needs the
 
888
          channels, console, dns, and maybe notes or share modules loaded.
 
889
          Of course, blowfish needs to be loaded here, too.</p>
800
890
        </dd>
801
891
      </dl>
802
892
    </blockquote>
804
894
    <p><a name="sect1i"></a>1i. <strong>Scripts</strong></p>
805
895
 
806
896
    <blockquote>
807
 
      <p>Script section should be placed at the end of the config file. All
808
 
      modules should be loaded and their variables should be set at this
 
897
      <p>The scripts section should be placed at the end of the config file.
 
898
      All modules should be loaded and their variables should be set at this
809
899
      point.</p>
810
900
 
811
 
      <p><strong><em>source scripts/script.tcl</em></strong></p>
812
 
 
813
 
      <p>This line loads script.tcl in the scripts directory of your eggdrop.
814
 
      All script should be put there, although you can place them where you
815
 
      like as long as you can supply a fully qualified path to them.</p>
816
 
 
817
 
      <p>Some commonly loaded scripts are alltools.tcl and
818
 
      action.fix.tcl.</p>
 
901
      <p><strong>source scripts/script.tcl</strong></p>
 
902
 
 
903
      <p>This line loads script.tcl from the scripts directory inside your
 
904
      Eggdrop&#39;s directory. All scripts should be put there, although you
 
905
      can place them where you like as long as you can supply a fully
 
906
      qualified path to them.</p>
 
907
 
 
908
      <p>Some commonly loaded scripts are alltools.tcl and action.fix.tcl.</p>
819
909
 
820
910
      <p>The appropriate source lines are:</p>
821
911
 
822
912
      <p><strong>source scripts/alltools.tcl<br>
823
 
       source scripts/action.fix.tcl</strong></p>
824
 
      <hr>
825
 
 
826
 
      <p><a name="sect2"></a>2. <strong>Output commands</strong></p>
827
 
 
828
 
      <blockquote>
829
 
        <dl>
830
 
          <dt><strong>putlog &lt;text&gt;</strong></dt>
831
 
 
832
 
          <dd>
833
 
            <p>sends text to the log for any channel, marked as
834
 
            &#39;misc&#39; (o);</p>
835
 
 
836
 
            <p>returns: nothing</p>
837
 
          </dd>
838
 
 
839
 
          <dt><strong>putcmdlog &lt;text&gt;</strong></dt>
840
 
 
841
 
          <dd>
842
 
            <p>sends text to the log for any channel, marked as
843
 
            &#39;command&#39; (c);</p>
844
 
 
845
 
            <p>returns: nothing</p>
846
 
          </dd>
847
 
 
848
 
          <dt><strong>putxferlog &lt;text&gt;</strong></dt>
849
 
 
850
 
          <dd>
851
 
            <p>sends text to the log for any channel, marked as
852
 
            &#39;file-area&#39; (x)</p>
853
 
 
854
 
            <p>returns: nothing</p>
855
 
          </dd>
856
 
 
857
 
          <dt><strong>putloglev &lt;level(s)&gt; &lt;channel&gt;
858
 
          &lt;text&gt;</strong></dt>
859
 
 
860
 
          <dd>
861
 
            <p>sends text to the log, tagged with all of the valid levels
862
 
            given (use &quot;*&quot; to indicate all log levels)</p>
863
 
 
864
 
            <p>returns: nothing</p>
865
 
          </dd>
866
 
 
867
 
          <dt><strong>dumpfile &lt;nick&gt; &lt;filename&gt;</strong></dt>
868
 
 
869
 
          <dd>
870
 
            <p>dumps out a file from the help/text directory to a user on IRC
871
 
            via msg (one line per msg); the user has no flags, so the flag
872
 
            bindings won&#39;t work within the file.</p>
873
 
          </dd>
874
 
        </dl>
875
 
      </blockquote>
876
 
 
877
 
      <p><a name="sect3"></a>3. <strong>User record manipulation
878
 
      commands</strong></p>
879
 
 
880
 
      <blockquote>
881
 
        <dl>
882
 
          <dt><strong>countusers</strong></dt>
883
 
 
884
 
          <dd>
885
 
            <p>returns: number of users in the bot&#39;s database</p>
886
 
          </dd>
887
 
 
888
 
          <dt><strong>validuser &lt;handle&gt;</strong></dt>
889
 
 
890
 
          <dd>
891
 
            <p>returns: &quot;1&quot; if a user by that name exists;
892
 
            &#39;0&#39; otherwise</p>
893
 
          </dd>
894
 
 
895
 
          <dt><strong>finduser &lt;nick!user@host&gt;</strong></dt>
896
 
 
897
 
          <dd>
898
 
            <p>finds the user record which most closely matches the given
899
 
            user@host</p>
900
 
 
901
 
            <p>returns: the handle found, or &quot;*&quot; if none</p>
902
 
          </dd>
903
 
 
904
 
          <dt><strong>userlist [flags]</strong></dt>
905
 
 
906
 
          <dd>
907
 
            <p>returns: a list of the handles of users on the bot. You can
908
 
            use the new flag matching system here.</p>
909
 
 
910
 
            <p>Example:</p>
911
 
 
912
 
            <p>[global]{&amp;/|}[chan]{&amp;/|}[bot]<br>
913
 
             matches the flags relevantly, (chan matches vs anywhere), &amp;
914
 
            specifies an and match, | specifies or, only the first of these
915
 
            is relevant, the default is or.</p>
916
 
          </dd>
917
 
 
918
 
          <dt><strong>passwdok &lt;handle&gt; &lt;pass&gt;</strong></dt>
919
 
 
920
 
          <dd>
921
 
            <p>checks the password given against the user&#39;s password --
922
 
            if the user has not set a password, will always return
923
 
            &quot;1&quot;; check against the password &quot;&quot; (a blank
924
 
            string) to find out if a user has no password set</p>
925
 
 
926
 
            <p>returns: &quot;1&quot; if password matches for that user;
927
 
            &quot;0&quot; if not</p>
928
 
          </dd>
929
 
 
930
 
          <dt><strong>getuser &lt;handle&gt; &lt;entry-type&gt; [extra
931
 
          info]</strong></dt>
932
 
 
933
 
          <dd>
934
 
            <p>This is a generic interface to the new generic userfile
935
 
            support, it return info specific to each entry-type.</p>
936
 
 
937
 
            <p>Valid entry types are:</p>
938
 
 
939
 
            <blockquote>
940
 
              <dl>
941
 
                <dt><strong>BOTFL</strong></dt>
942
 
 
943
 
                <dd>
944
 
                  <p>returns the current bot-specific flags for the user (if
945
 
                  it&#39;s a bot :)</p>
946
 
                </dd>
947
 
 
948
 
                <dt><strong>BOTADDR</strong></dt>
949
 
 
950
 
                <dd>
951
 
                  <p>(another bot-only thing :) returns a list containing the
952
 
                  bots address, the bots telnet port, and it&#39;s relay
953
 
                  port.</p>
954
 
                </dd>
955
 
 
956
 
                <dt><strong>HOSTS</strong></dt>
957
 
 
958
 
                <dd>
959
 
                  <p>returns a list of the host for the user</p>
960
 
                </dd>
961
 
 
962
 
                <dt><strong>LASTON</strong></dt>
963
 
 
964
 
                <dd>
965
 
                  <p>returns a list containing the unixtime last seen, and
966
 
                  the last seen place.</p>
967
 
                </dd>
968
 
 
969
 
                <dt><strong>LASTON #channel</strong></dt>
970
 
 
971
 
                <dd>
972
 
                  <p>returns the time last seen on the channel or 0 if no
973
 
                  info</p>
974
 
                </dd>
975
 
 
976
 
                <dt><strong>INFO</strong></dt>
977
 
 
978
 
                <dd>
979
 
                  <p>returns the user&#39;s global info line</p>
980
 
                </dd>
981
 
 
982
 
                <dt><strong>COMMENT</strong></dt>
983
 
 
984
 
                <dd>
985
 
                  <p>returns the master-visible only comment for the user</p>
986
 
                </dd>
987
 
 
988
 
                <dt><strong>EMAIL</strong></dt>
989
 
 
990
 
                <dd>
991
 
                  <p>returns the users email address</p>
992
 
                </dd>
993
 
 
994
 
                <dt><strong>URL</strong></dt>
995
 
 
996
 
                <dd>
997
 
                  <p>returns the users url address</p>
998
 
                </dd>
999
 
 
1000
 
                <dt><strong>XTRA</strong></dt>
1001
 
 
1002
 
                <dd>
1003
 
                  <p>returns xtra info, use the form:<br>
1004
 
                   <strong>getuser &lt;handle&gt; XTRA
1005
 
                  &lt;key&gt;</strong><br>
1006
 
                   to receive data set for a certain key</p>
1007
 
                </dd>
1008
 
              </dl>
1009
 
            </blockquote>
1010
 
          </dd>
1011
 
 
1012
 
          <dt><strong>setuser &lt;handle&gt; &lt;entry-type&gt; [extra
1013
 
          info]</strong></dt>
1014
 
 
1015
 
          <dd>
1016
 
            <p>This is the counterpart of getuser, it lets you set the
1017
 
            various values extra ones not supported about:</p>
1018
 
 
1019
 
            <blockquote>
1020
 
              <dl>
1021
 
                <dt><strong>PASS</strong></dt>
1022
 
 
1023
 
                <dd>
1024
 
                  <p>use this to set a users password (no 3rd arg will clear
1025
 
                  it)</p>
1026
 
                </dd>
1027
 
 
1028
 
                <dt><strong>HOSTS</strong></dt>
1029
 
 
1030
 
                <dd>
1031
 
                  <p>for setting hosts, no extra info = clear, otherwise
1032
 
                  <strong>*1*</strong> hostmask is added</p>
1033
 
                </dd>
1034
 
 
1035
 
                <dt><strong>LASTON</strong></dt>
1036
 
 
1037
 
                <dd>
1038
 
                  <p>sets global laston time, will also set laston time for
1039
 
                  any channel the user has a chanrec for (if it matches) to
1040
 
                  prevent setting a channel time from <strong>ALSO</strong>
1041
 
                  setting the global time use <strong>LASTON time #channel
1042
 
                  *</strong></p>
1043
 
                </dd>
1044
 
 
1045
 
                <dt><strong>XTRA</strong></dt>
1046
 
 
1047
 
                <dd>
1048
 
                  <p>in the form:<br>
1049
 
                   <strong>setuser &lt;handle&gt; XTRA &lt;key&gt;
1050
 
                  &lt;data&gt;</strong><br>
1051
 
                   sets up to 500 bytes of data per key (use no data to
1052
 
                  clear)</p>
1053
 
                </dd>
1054
 
              </dl>
1055
 
            </blockquote>
1056
 
          </dd>
1057
 
 
1058
 
          <dt><strong>chnick &lt;old-handle&gt;
1059
 
          &lt;new-handle&gt;</strong></dt>
1060
 
 
1061
 
          <dd>
1062
 
            <p>changes a user&#39;s handle</p>
1063
 
 
1064
 
            <p>returns: &quot;1&quot; on success; &quot;0&quot; if the handle
1065
 
            is already used, the handle is invalid, or the user can&#39;t be
1066
 
            found</p>
1067
 
          </dd>
1068
 
 
1069
 
          <dt><br>
1070
 
           <strong>chattr &lt;handle&gt; [changes [channel]]</strong></dt>
1071
 
 
1072
 
          <dd>
1073
 
            <p>changes the attributes for a user record, if you include any
1074
 
            -- changes are of the form &quot;+f&quot;, &quot;-o&quot;,
1075
 
            &quot;+dk&quot;, &quot;-o+d&quot;, etc; if a channel is
1076
 
            specified, the channel-specific flags for that channel are
1077
 
            altered you can now use the +o|-o #channel format here too.</p>
1078
 
 
1079
 
            <p>returns: new flags for the user (if you made no changes,
1080
 
            returns current flags); if a channel was specified, the
1081
 
            channel-specific flags for that channel are returned -- returns
1082
 
            &quot;*&quot; if that user does not exist</p>
1083
 
          </dd>
1084
 
 
1085
 
          <dt><strong>matchattr &lt;handle&gt; &lt;flags&gt;
1086
 
          [channel]</strong></dt>
1087
 
 
1088
 
          <dd>
1089
 
            <p>returns: &quot;1&quot; if the specified user has the matching
1090
 
            flags. (using the new matching system)</p>
1091
 
          </dd>
1092
 
 
1093
 
          <dt><strong>adduser &lt;handle&gt; &lt;hostmask&gt;</strong></dt>
1094
 
 
1095
 
          <dd>
1096
 
            <p>creates a new user entry with the handle and hostmask given
1097
 
            (with no password, and the default flags)</p>
1098
 
 
1099
 
            <p>returns: &quot;1&quot; if successful, &quot;0&quot; if it
1100
 
            already existed</p>
1101
 
          </dd>
1102
 
 
1103
 
          <dt><strong>deluser &lt;handle&gt;</strong></dt>
1104
 
 
1105
 
          <dd>
1106
 
            <p>attempts to erase a user record with that handle</p>
1107
 
 
1108
 
            <p>returns: &quot;1&quot; if successful, &quot;0&quot; if no such
1109
 
            user exists</p>
1110
 
          </dd>
1111
 
 
1112
 
          <dt><strong>delhost &lt;handle&gt; &lt;hostmask&gt;</strong></dt>
1113
 
 
1114
 
          <dd>
1115
 
            <p>deletes a hostmask from a user&#39;s hostmask list</p>
1116
 
 
1117
 
            <p>returns: &quot;1&quot; on success, &quot;0&quot; if that
1118
 
            hostmask wasn&#39;t in the list or the user does not exist</p>
1119
 
          </dd>
1120
 
 
1121
 
          <dt><strong>newignore &lt;hostmask&gt; &lt;creator&gt;
1122
 
          &lt;comment&gt; [lifetime]</strong></dt>
1123
 
 
1124
 
          <dd>
1125
 
            <p>adds an entry to the ignore list; creator is given credit for
1126
 
            the ignore; lifetime is how many minutes until the ignore expires
1127
 
            and is removed; if lifetime is not specified, ignore-time
1128
 
            (usually 60) is used; setting the lifetime to 0 makes it a
1129
 
            permanent ignore</p>
1130
 
 
1131
 
            <p>returns: nothing</p>
1132
 
          </dd>
1133
 
 
1134
 
          <dt><strong>killignore &lt;hostmask&gt;</strong></dt>
1135
 
 
1136
 
          <dd>
1137
 
            <p>removes an entry from the ignore list</p>
1138
 
 
1139
 
            <p>returns: &quot;1&quot; if successful, &quot;0&quot;
1140
 
            otherwise</p>
1141
 
          </dd>
1142
 
 
1143
 
          <dt><strong>ignorelist</strong></dt>
1144
 
 
1145
 
          <dd>
1146
 
            <p>returns: list of ignores; each entry is itself a list,
1147
 
            containing: hostmask, comment, expiration timestamp, time added,
1148
 
            and creator (the three timestamps are in unixtime format)</p>
1149
 
          </dd>
1150
 
 
1151
 
          <dt><strong>isignore &lt;hostmask&gt;</strong></dt>
1152
 
 
1153
 
          <dd>
1154
 
            <p>returns: &quot;1&quot; if the ignore is in the list,
1155
 
            &quot;0&quot; otherwise</p>
1156
 
          </dd>
1157
 
 
1158
 
          <dt><strong>save</strong></dt>
1159
 
 
1160
 
          <dd>
1161
 
            <p>writes the userfile to disk</p>
1162
 
 
1163
 
            <p>returns: nothing</p>
1164
 
          </dd>
1165
 
 
1166
 
          <dt><strong>reload</strong></dt>
1167
 
 
1168
 
          <dd>
1169
 
            <p>loads the userfile from disk (replacing whatever&#39;s in
1170
 
            memory)</p>
1171
 
 
1172
 
            <p>returns: nothing</p>
1173
 
          </dd>
1174
 
 
1175
 
          <dt><strong>backup</strong></dt>
1176
 
 
1177
 
          <dd>
1178
 
            <p>makes a simple backup of the userfile that&#39;s on disk.
1179
 
        If the channels module is loaded this also makes a backup of the
1180
 
        channel file.</p>
1181
 
 
1182
 
            <p>returns: nothing</p>
1183
 
          </dd>
1184
 
 
1185
 
          <dt><strong>getting-users</strong></dt>
1186
 
 
1187
 
          <dd>
1188
 
            <p>returns: &quot;1&quot; if the bot is currently downloading a
1189
 
            userfile from a sharebot (and hence, user records are about to
1190
 
            drastically change), &quot;0&quot; if not</p>
1191
 
          </dd>
1192
 
        </dl>
1193
 
      </blockquote>
1194
 
      <hr>
1195
 
 
1196
 
      <p><a name="sect4"></a>4. <strong>DCC commands</strong></p>
1197
 
 
1198
 
      <blockquote>
1199
 
        <dl>
1200
 
          <dt><strong>putdcc &lt;idx&gt; &lt;text&gt;</strong></dt>
1201
 
 
1202
 
          <dd>
1203
 
            <p>sends text to the dcc user indicated</p>
1204
 
 
1205
 
            <p>returns: nothing</p>
1206
 
          </dd>
1207
 
 
1208
 
          <dt><strong>dccbroadcast &lt;message&gt;</strong></dt>
1209
 
 
1210
 
          <dd>
1211
 
            <p>sends your message to everyone on the party line on the bot
1212
 
            net, in the form &quot;*** &lt;message&gt;&quot; for local users,
1213
 
            and &quot;*** [Bot] &lt;message&gt;&quot; for users on other
1214
 
            bots</p>
1215
 
          </dd>
1216
 
 
1217
 
          <dt><strong>dccputchan &lt;channel&gt;
1218
 
          &lt;message&gt;</strong></dt>
1219
 
 
1220
 
          <dd>
1221
 
            <p>sends your message to everyone on a certain channel on the bot
1222
 
            net, in a form exactly like dccbroadcast does -- valid channels
1223
 
            are 0 through 99999</p>
1224
 
 
1225
 
            <p>returns: nothing</p>
1226
 
          </dd>
1227
 
 
1228
 
          <dt><strong>restart</strong></dt>
1229
 
 
1230
 
          <dd>
1231
 
            <p>restarts the bot</p>
1232
 
 
1233
 
            <p>returns: nothing</p>
1234
 
          </dd>
1235
 
 
1236
 
          <dt><strong>rehash</strong></dt>
1237
 
 
1238
 
          <dd>
1239
 
            <p>rehashes the bot</p>
1240
 
 
1241
 
            <p>returns: nothing</p>
1242
 
          </dd>
1243
 
 
1244
 
          <dt><strong>dccsimul &lt;idx&gt; &lt;text...&gt;</strong></dt>
1245
 
 
1246
 
          <dd>
1247
 
            <p>simulates text typed in by the dcc user specified -- note that
1248
 
            in v0.9, this only simulated commands; now a command must be
1249
 
            preceded by a &#39;.&#39; to be simulated</p>
1250
 
 
1251
 
            <p>returns: nothing</p>
1252
 
          </dd>
1253
 
 
1254
 
          <dt><strong>hand2idx &lt;handle&gt;</strong></dt>
1255
 
 
1256
 
          <dd>
1257
 
            <p>returns: the idx (a number greater than or equal to zero) for
1258
 
            the user given, if she is on the party line in chat mode (even if
1259
 
            she is currently on a channel or in chat off), the file area, or
1260
 
            in the control of a script; &quot;-1&quot; otherwise -- if the
1261
 
            user is on multiple times, the oldest idx is returned</p>
1262
 
          </dd>
1263
 
 
1264
 
          <dt><strong>idx2hand &lt;idx&gt;</strong></dt>
1265
 
 
1266
 
          <dd>
1267
 
            <p>returns: handle of the user with that idx</p>
1268
 
          </dd>
1269
 
 
1270
 
          <dt><strong>valididx &lt;idx&gt;</strong></dt>
1271
 
 
1272
 
          <dd>
1273
 
            <p>returns: &quot;1&quot; if the idx currently exists;
1274
 
            &quot;0&quot; if not</p>
1275
 
          </dd>
1276
 
 
1277
 
          <dt><strong>botlist</strong></dt>
1278
 
 
1279
 
          <dd>
1280
 
            <p>returns: a list of bots currently on the botnet; each item in
1281
 
            the list will be a sublist with four elements: bot, uplink,
1282
 
            version, sharing status.</p>
1283
 
 
1284
 
            <p>bot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : the bot&#39;s nickname<br>
1285
 
             uplink : who the bot is connected through<br>
1286
 
             version : its currentnumeric version<br>
1287
 
             sharing : a &quot;+&quot; if the bot is sharing, &quot;-&quot;
1288
 
            otherwise</p>
1289
 
          </dd>
1290
 
 
1291
 
          <dt><strong>islinked &lt;bot&gt;</strong></dt>
1292
 
 
1293
 
          <dd>
1294
 
            <p>returns: &quot;1&quot; if the bot is currently linked,
1295
 
            &quot;0&quot; otherwise</p>
1296
 
          </dd>
1297
 
 
1298
 
          <dt><strong>getchan &lt;idx&gt;</strong></dt>
1299
 
 
1300
 
          <dd>
1301
 
            <p>returns: the current party line channel for a user on the
1302
 
            party line -- &quot;0&quot; indicates he&#39;s on the group party
1303
 
            line, &quot;-1&quot; means he has chat off, and a value from 1 to
1304
 
            99999 is a private channel</p>
1305
 
          </dd>
1306
 
 
1307
 
          <dt><strong>setchan &lt;idx&gt; &lt;channel&gt;</strong></dt>
1308
 
 
1309
 
          <dd>
1310
 
            <p>sets a party line user&#39;s channel rather suddenly (the
1311
 
            party line user is not notified that she is now on a new
1312
 
            channel); a channel name can be used (provided it exists.</p>
1313
 
 
1314
 
            <p>returns: nothing</p>
1315
 
          </dd>
1316
 
 
1317
 
          <dt><strong>console &lt;idx&gt; [channel]
1318
 
          [console-modes]</strong></dt>
1319
 
 
1320
 
          <dd>
1321
 
            <p>changes a dcc user&#39;s console mode, either to an absolute
1322
 
            mode (like &quot;mpj&quot;) or just adding/removing flags (like
1323
 
            &quot;+pj&quot; or &quot;-moc&quot; or &quot;+mp-c&quot;); the
1324
 
            user&#39;s console channel view can be changed also (as long as
1325
 
            the new channel is defined in the bot)</p>
1326
 
 
1327
 
            <p>returns: a list containing the user&#39;s (new) channel view,
1328
 
            and (new) console mode, or nothing if that user isn&#39;t
1329
 
            currently in dcc chat</p>
1330
 
          </dd>
1331
 
 
1332
 
          <dt><strong>echo &lt;idx&gt; [status]</strong></dt>
1333
 
 
1334
 
          <dd>
1335
 
            <p>turns a user&#39;s echo on or off; the status has to be a 1 or
1336
 
            0</p>
1337
 
 
1338
 
            <p>returns: new value of echo for that user (or the current
1339
 
            value, if status was omitted)</p>
1340
 
          </dd>
1341
 
 
1342
 
          <dt><strong>killdcc &lt;idx&gt;</strong></dt>
1343
 
 
1344
 
          <dd>
1345
 
            <p>kills a party-line or file area connection, rather
1346
 
            abruptly</p>
1347
 
 
1348
 
            <p>returns: nothing</p>
1349
 
          </dd>
1350
 
 
1351
 
          <dt><strong>dccused</strong></dt>
1352
 
 
1353
 
          <dd>
1354
 
            <p>returns: number of dcc connections currently in use</p>
1355
 
          </dd>
1356
 
 
1357
 
          <dt><strong>dcclist</strong></dt>
1358
 
 
1359
 
          <dd>
1360
 
            <p>returns: list of active dcc connections that are in the chat
1361
 
            area, the file area, or a script; each item in the list will be a
1362
 
            sublist with four elements: idx, nickname, hostname, and type;
1363
 
            type will be &quot;chat&quot;, &quot;files&quot;,
1364
 
            &quot;bot&quot;, &quot;file_receiving&quot;,
1365
 
            &quot;file_sending&quot;, &quot;file_send_pending&quot;, or
1366
 
            &quot;script&quot; (or &quot;socket&quot; for connections that
1367
 
            haven&#39;t been put under &#39;control&#39; yet) or any new dcc
1368
 
            type that gets added.</p>
1369
 
          </dd>
1370
 
 
1371
 
          <dt><strong>getdccidle &lt;idx&gt;</strong></dt>
1372
 
 
1373
 
          <dd>
1374
 
            <p>returns: number of seconds the dcc chat/file system/script
1375
 
            user has been idle</p>
1376
 
          </dd>
1377
 
 
1378
 
          <dt><strong>getdccaway &lt;idx&gt;</strong></dt>
1379
 
 
1380
 
          <dd>
1381
 
            <p>returns: away message for a dcc chat user (or &quot;&quot; if
1382
 
            the user is not set away)</p>
1383
 
          </dd>
1384
 
 
1385
 
          <dt><strong>setdccaway &lt;idx&gt; &lt;message&gt;</strong></dt>
1386
 
 
1387
 
          <dd>
1388
 
            <p>sets a party line user&#39;s away message and marks them away;
1389
 
            if set to &quot;&quot;, the user is marked un-away</p>
1390
 
 
1391
 
            <p>returns: nothing</p>
1392
 
          </dd>
1393
 
 
1394
 
          <dt><strong>connect &lt;host&gt; &lt;port&gt;</strong></dt>
1395
 
 
1396
 
          <dd>
1397
 
            <p>makes an outgoing connection attempt and creates a dcc entry
1398
 
            for it; a &#39;control&#39; command should be used immediately
1399
 
            after a successful &#39;connect&#39; so no input is lost</p>
1400
 
 
1401
 
            <p>returns: idx of the new connection</p>
1402
 
          </dd>
1403
 
 
1404
 
          <dt><strong>listen &lt;port&gt; &lt;type&gt; [options]
1405
 
          [flag]</strong></dt>
1406
 
 
1407
 
          <dd>
1408
 
            <p>opens a listening port to accept incoming telnets; type must
1409
 
            be one of &quot;bots&quot;, &quot;all&quot;, &quot;users&quot;,
1410
 
            &quot;script&quot;, or &quot;off&quot;:</p>
1411
 
          </dd>
1412
 
 
1413
 
          <dt><strong>listen &lt;port&gt; bots [mask]</strong></dt>
1414
 
 
1415
 
          <dd>
1416
 
            <p>accepts connections from bots only; the optional mask is used
1417
 
            to identify permitted bot names; if the mask begins with
1418
 
            &#39;@&#39; it is interpreted to be a mask of permitted hosts to
1419
 
            accept connections from</p>
1420
 
 
1421
 
            <p>returns: port #</p>
1422
 
          </dd>
1423
 
 
1424
 
          <dt><strong>listen &lt;port&gt; users [mask]</strong></dt>
1425
 
 
1426
 
          <dd>
1427
 
            <p>accepts connections from users only (no bots); the optional
1428
 
            mask is used to identify permitted nicknames; if the mask begins
1429
 
            with &#39;@&#39; it is interpreted to be a mask of permitted
1430
 
            hosts to accept connections from</p>
1431
 
 
1432
 
            <p>returns: port #</p>
1433
 
          </dd>
1434
 
 
1435
 
          <dt><strong>listen &lt;port&gt; all [mask]</strong></dt>
1436
 
 
1437
 
          <dd>
1438
 
            <p>accepts connections from anyone; the optional mask is used to
1439
 
            identify permitted nicknames/botnames; if the mask begins with
1440
 
            &#39;@&#39; it is interpreted to be a mask of permitted hosts to
1441
 
            accept connections from</p>
1442
 
 
1443
 
            <p>returns: port #</p>
1444
 
          </dd>
1445
 
 
1446
 
          <dt><strong>listen &lt;port&gt; script &lt;proc&gt;
1447
 
          [flag]</strong></dt>
1448
 
 
1449
 
          <dd>
1450
 
            <p>accepts connections which are immediately routed to a proc;
1451
 
            the proc is called with one parameter: the idx of the new
1452
 
            connection flag may currently only be &#39;pub&#39;, which makes
1453
 
            the bot allow anyone to connect.</p>
1454
 
 
1455
 
            <p>returns: port #</p>
1456
 
          </dd>
1457
 
 
1458
 
          <dt><strong>listen &lt;port&gt; off</strong></dt>
1459
 
 
1460
 
          <dd>
1461
 
            <p>stop listening at a port</p>
1462
 
 
1463
 
            <p>returns: nothing</p>
1464
 
          </dd>
1465
 
 
1466
 
          <dt><strong>dccdumpfile &lt;idx&gt; &lt;filename&gt;</strong></dt>
1467
 
 
1468
 
          <dd>
1469
 
            <p>dumps out a file from the text directory to a dcc chat user;
1470
 
            the flag matching that&#39;s used everywhere else works here
1471
 
            too</p>
1472
 
          </dd>
1473
 
 
1474
 
          <dt><strong>link [via-bot] &lt;bot&gt;</strong></dt>
1475
 
 
1476
 
          <dd>
1477
 
            <p>attempts to link to another bot directly (or, if you give a
1478
 
            via-bot, it tells the via-bot to try</p>
1479
 
 
1480
 
            <p>returns: &quot;1&quot; if it looks okay and it will try;
1481
 
            &quot;0&quot; if not</p>
1482
 
          </dd>
1483
 
 
1484
 
          <dt><strong>unlink &lt;bot&gt;</strong></dt>
1485
 
 
1486
 
          <dd>
1487
 
            <p>attempts to remove a bot from the botnet</p>
1488
 
 
1489
 
            <p>returns: &quot;1&quot; if it will try or has passed the
1490
 
            request on; &quot;0&quot; if not</p>
1491
 
          </dd>
1492
 
 
1493
 
          <dt><strong>encrypt &lt;key&gt; &lt;string&gt;</strong></dt>
1494
 
 
1495
 
          <dd>
1496
 
            <p>returns: encrypted string (using blowfish), encoded into ascii
1497
 
            using base-64 so it can be sent over the botnet</p>
1498
 
          </dd>
1499
 
 
1500
 
          <dt><strong>decrypt &lt;key&gt;
1501
 
          &lt;encrypted-base64-string&gt;</strong></dt>
1502
 
 
1503
 
          <dd>
1504
 
            <p>returns: decrypted string (using blowfish)</p>
1505
 
          </dd>
1506
 
 
1507
 
          <dt><strong>encpass &lt;password&gt;</strong></dt>
1508
 
 
1509
 
          <dd>
1510
 
            <p>returns: encrypted string (using blowfish)</p>
1511
 
          </dd>
1512
 
 
1513
 
          <dt><strong>md5 &lt;string&gt;</strong></dt>
1514
 
 
1515
 
          <dd>
1516
 
            <p>returns: the 128 bits MD5 &quot;message-digest&quot; of the
1517
 
            specified string.</p>
1518
 
          </dd>
1519
 
        </dl>
1520
 
      </blockquote>
1521
 
 
1522
 
      <p><a name="sect5"></a>5. <strong>Miscellaneous commands</strong></p>
1523
 
 
1524
 
      <blockquote>
1525
 
        <dl>
1526
 
          <dt><strong>bind &lt;type&gt; &lt;attr(s)&gt; &lt;command-name&gt;
1527
 
          [proc-name]</strong></dt>
1528
 
 
1529
 
          <dd>
1530
 
            <p>adds a new keyword command to the bot; valid types are listed
1531
 
            below; the &lt;attr(s)&gt; are the flags that a user must have to
1532
 
            trigger this command; the &lt;command-name&gt; for each type is
1533
 
            listed below; &lt;proc-name&gt; is the name of the Tcl procedure
1534
 
            to call for this command (see below for the format of the
1535
 
            procedure call); if the proc-name is omitted, no binding is added
1536
 
            -- instead, the current binding is returned (if it&#39;s
1537
 
            stackable, a list of the current bindings is returned) yes, you
1538
 
            can use the new flag binding method here too, and this is where
1539
 
            it becomes truly phearful since you may never need to check
1540
 
            attr&#39;s inside functions again...imagine:</p>
1541
 
 
1542
 
            <p>bind pub -o&amp;+o command command_proc</p>
1543
 
 
1544
 
            <p>returns: name of the command that was added, or (if proc-name
1545
 
            was omitted), a list of the current bindings for this command</p>
1546
 
          </dd>
1547
 
 
1548
 
          <dt><strong>unbind &lt;type&gt; &lt;attr(s)&gt;
1549
 
          &lt;command-name&gt; &lt;proc-name&gt;</strong></dt>
1550
 
 
1551
 
          <dd>
1552
 
            <p>removes a previously-made binding</p>
1553
 
 
1554
 
            <p>returns: name of the command that was removed</p>
1555
 
          </dd>
1556
 
 
1557
 
          <dt><strong>logfile [&lt;modes&gt; &lt;channel&gt;
1558
 
          &lt;filename&gt;]</strong></dt>
1559
 
 
1560
 
          <dd>
1561
 
            <p>creates a new logfile, which will log the modes given for the
1562
 
            channel listed -- or, if no logfile is specified, just returns a
1563
 
            list of logfiles; &quot;*&quot; can be used to mean all channels;
1564
 
            you can also change the modes and channel of an existing logfile
1565
 
            with this command -- entering a blank mode and channel makes the
1566
 
            bot stop logging there</p>
1567
 
 
1568
 
            <p>returns: filename of logfile created, or (if no logfile is
1569
 
            specified) a list of logfiles like: &quot;{mco * eggdrop.log} {jp
1570
 
            #lame lame.log}&quot;</p>
1571
 
          </dd>
1572
 
 
1573
 
          <dt><strong>maskhost &lt;nick!user@host&gt;</strong></dt>
1574
 
 
1575
 
          <dd>
1576
 
            <p>returns: hostmask for the string given
1577
 
            (&quot;n!u@1.2.3.4&quot; -&gt; &quot;*!u@1.2.3.*&quot;,
1578
 
            &quot;n!u@lame.com&quot; -&gt; &quot;*!u@lame.com&quot;,
1579
 
            &quot;n!u@a.b.edu&quot; -&gt; &quot;*!u@*.b.edu&quot;)</p>
1580
 
          </dd>
1581
 
 
1582
 
          <dt><strong>unixtime</strong></dt>
1583
 
 
1584
 
          <dd>
1585
 
            <p>returns: a long integer which is the current time according to
1586
 
            unix</p>
1587
 
          </dd>
1588
 
 
1589
 
          <dt><strong>strftime &lt;formatstring&gt; [time]</strong></dt>
1590
 
 
1591
 
          <dd>
1592
 
            <p>returns: a formatted string of time using standard strftime
1593
 
            format, uses the value of time, or now if no time specified</p>
1594
 
          </dd>
1595
 
 
1596
 
          <dt><strong>ctime &lt;unixtime&gt;</strong></dt>
1597
 
 
1598
 
          <dd>
1599
 
            <p>returns: a string of the date/time represented by the unix
1600
 
            time given (i.e. &quot;Fri Aug 3 11:34:55 1973&quot;)</p>
1601
 
          </dd>
1602
 
 
1603
 
          <dt><strong>myip</strong></dt>
1604
 
 
1605
 
          <dd>
1606
 
            <p>returns: a long number representing the bot&#39;s IP address,
1607
 
            as it might appear in (for example) a DCC request</p>
1608
 
          </dd>
1609
 
 
1610
 
          <dt><strong>rand &lt;limit&gt;</strong></dt>
1611
 
 
1612
 
          <dd>
1613
 
            <p>returns: a random integer between 0 and limit-1</p>
1614
 
          </dd>
1615
 
 
1616
 
          <dt><strong>die [reason]</strong></dt>
1617
 
 
1618
 
          <dd>
1619
 
            <p>causes the bot to log a fatal error and exit completely; if no
1620
 
            reason is given, &quot;EXIT&quot; is used</p>
1621
 
          </dd>
1622
 
 
1623
 
          <dt><strong>unames</strong></dt>
1624
 
 
1625
 
          <dd>
1626
 
            <p>returns: the current operating system the bot is using.</p>
1627
 
          </dd>
1628
 
        </dl>
1629
 
      </blockquote>
1630
 
      <hr>
1631
 
 
1632
 
      <p><a name="sect6"></a>6. <strong>Global variables</strong></p>
1633
 
 
1634
 
      <blockquote>
1635
 
        <p>(All config-file variables are global too, but these variables are
1636
 
        set by the bot.)</p>
1637
 
      </blockquote>
1638
 
 
1639
 
      <blockquote>
1640
 
        <dl>
1641
 
          <dt><strong>version</strong></dt>
1642
 
 
1643
 
          <dd>
1644
 
            <p>current bot version (ie: &quot;1.1.2+pl1 1010201 pl1&quot;);
1645
 
            first item is the text version, second item is a numerical
1646
 
            version, and any following items are the names of patches that
1647
 
            have been added</p>
1648
 
          </dd>
1649
 
 
1650
 
          <dt><strong>numversion</strong></dt>
1651
 
 
1652
 
          <dd>
1653
 
            <p>current numeric bot version (ie: &quot;1010201&quot;)</p>
1654
 
 
1655
 
            <p>Numerical version is &quot;MMNNRRPP&quot; where:</p>
1656
 
 
1657
 
            <p>MM is the major release number<br>
1658
 
             NN is the minor release number<br>
1659
 
             RR is the sub-release number<br>
1660
 
             PP is the patch level for that sub-release</p>
1661
 
          </dd>
1662
 
 
1663
 
          <dt><strong>uptime</strong></dt>
1664
 
 
1665
 
          <dd>
1666
 
            <p>unixtime value for when the bot was started</p>
1667
 
          </dd>
1668
 
 
1669
 
          <dt><strong>lastbind</strong></dt>
1670
 
 
1671
 
          <dd>
1672
 
            <p>The last command binding which triggered. This allows you to
1673
 
            identify which command triggered a Tcl routine.</p>
1674
 
          </dd>
1675
 
        </dl>
1676
 
      </blockquote>
1677
 
      <hr>
1678
 
 
1679
 
      <p><a name="sect7"></a>7. <strong>Command extension</strong></p>
1680
 
 
1681
 
      <blockquote>
1682
 
        <p>You can use the &#39;bind&#39; command to attach Tcl procedures to
1683
 
        certain events. For example, you can write a Tcl procedure that gets
1684
 
        called every time a user says &quot;danger&quot; on the channel. The
1685
 
        following is a list of the types of bindings, and how they work.
1686
 
        Under each binding type is the format of the bind command, the list
1687
 
        of arguments sent to the Tcl proc, and an explanation.</p>
1688
 
 
1689
 
        <p>Some bindings are marked as &quot;stackable&quot;. That means that
1690
 
        you can bind multiple commands to the same trigger. Normally, for
1691
 
        example, a binding of &quot;bind msg - stop msg_stop&quot; (which
1692
 
        makes a msg-command &quot;stop&quot; call the Tcl proc
1693
 
        &quot;msg_stop&quot;) will overwrite any previous binding you had for
1694
 
        the msg-command &quot;stop&quot;. With stackable bindings, like
1695
 
        &#39;msgm&#39; for example, you can bind to the same command or mask
1696
 
        again and again. When the binding is triggered, ALL the Tcl procs
1697
 
        that are bound to it will be called, one after another.</p>
1698
 
 
1699
 
        <p>To remove a binding, use &quot;unbind&quot;. For example, to
1700
 
        remove that binding for the msg-command &quot;stop&quot;, use
1701
 
        &quot;unbind msg - stop msg_stop&quot;.</p>
1702
 
 
1703
 
        <p>There are more bindings which are enabled from the loading of
1704
 
        specific modules, see the specific module information pages to see
1705
 
        which module provides which bindings.</p>
1706
 
      </blockquote>
1707
 
 
1708
 
      <blockquote>
1709
 
        <dl>
1710
 
          <dt><strong>DCC</strong></dt>
1711
 
 
1712
 
          <dd>
1713
 
            <p>bind dcc &lt;flags&gt; &lt;command&gt; &lt;proc&gt;<br>
1714
 
             proc-name &lt;handle&gt; &lt;idx&gt; &lt;args&gt;</p>
1715
 
 
1716
 
            <p>used for commands from a dcc chat on the party line; as in
1717
 
            MSG, the command is the first word and everything else is the
1718
 
            argument string; the idx is valid until the user disconnects;
1719
 
            after that it may be reused, so be careful about storing an idx
1720
 
            for long periods of time</p>
1721
 
          </dd>
1722
 
 
1723
 
          <dt><strong>BOT</strong></dt>
1724
 
 
1725
 
          <dd>
1726
 
            <p>bind bot &lt;flags&gt; &lt;command&gt; &lt;proc&gt;<br>
1727
 
             proc-name &lt;from-bot&gt; &lt;command&gt; &lt;args&gt;</p>
1728
 
 
1729
 
            <p>triggered by a message coming from another bot in the botnet;
1730
 
            works similar to a DCC binding; the first word is the command and
1731
 
            the rest becomes the argument string; flags are ignored</p>
1732
 
          </dd>
1733
 
 
1734
 
          <dt><strong>CHON (stackable)</strong></dt>
1735
 
 
1736
 
          <dd>
1737
 
            <p>bind chon &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br>
1738
 
             proc-name &lt;handle&gt; &lt;idx&gt;</p>
1739
 
 
1740
 
            <p>when someone first enters the &quot;party-line&quot; area of
1741
 
            the bot via dcc chat or telnet, this is triggered before they are
1742
 
            connected to a chat channel (so yes, you can change the channel
1743
 
            in a &#39;chon&#39; proc); mask matches against handle; this is
1744
 
            NOT triggered when someone returns from the file area, etc</p>
1745
 
          </dd>
1746
 
 
1747
 
          <dt><strong>CHOF (stackable)</strong></dt>
1748
 
 
1749
 
          <dd>
1750
 
            <p>bind chof &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br>
1751
 
             proc-name &lt;handle&gt; &lt;idx&gt;</p>
1752
 
 
1753
 
            <p>triggered when someone leaves the party line to disconnect
1754
 
            from the bot; mask matches against the handle; note that the
1755
 
            connection may have already been dropped by the user, so
1756
 
            don&#39;t send output to that idx</p>
1757
 
          </dd>
1758
 
 
1759
 
          <dt><strong>CHAT (stackable)</strong></dt>
1760
 
 
1761
 
          <dd>
1762
 
            <p>bind chat &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br>
1763
 
             proc-name &lt;nick&gt; &lt;channel#&gt; &lt;text&gt;</p>
1764
 
 
1765
 
            <p>when someone says something on the botnet, it invokes this
1766
 
            binding; flags is ignored; nick could be a user on this bot (i.e.
1767
 
            &quot;DronePup&quot;) or on another bot (i.e.
1768
 
            &quot;Eden@Wilde&quot;); the mask is checked against the text</p>
1769
 
          </dd>
1770
 
 
1771
 
          <dt><strong>LINK (stackable)</strong></dt>
1772
 
 
1773
 
          <dd>
1774
 
            <p>bind link &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br>
1775
 
             proc-name &lt;botname&gt; &lt;via&gt;</p>
1776
 
 
1777
 
            <p>triggered when a bot links into the botnet; botname is the
1778
 
            name of the bot that just linked in; via is the bot it linked
1779
 
            through; the mask is checked against the bot that linked; flags
1780
 
            is ignored</p>
1781
 
          </dd>
1782
 
 
1783
 
          <dt><strong>DISC (stackable)</strong></dt>
1784
 
 
1785
 
          <dd>
1786
 
            <p>bind disc &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br>
1787
 
             proc-name &lt;botname&gt;</p>
1788
 
 
1789
 
            <p>triggered when a bot disconnects from the botnet for whatever
1790
 
            reason; just like the link bind, flags are ignored; mask is
1791
 
            checked against the nickname of the bot that left</p>
1792
 
          </dd>
1793
 
 
1794
 
          <dt><strong>FILT (stackable)</strong></dt>
1795
 
 
1796
 
          <dd>
1797
 
            <p>bind filt &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br>
1798
 
             proc-name &lt;idx&gt; &lt;text&gt;</p>
1799
 
 
1800
 
            <p>DCC party line and file system users have their text sent
1801
 
            through filt before being processed; if the proc a blank string,
1802
 
            the text is considered parsed; otherwise the bot will use the
1803
 
            text returned from the proc and continue parsing that</p>
1804
 
          </dd>
1805
 
 
1806
 
          <dt><strong>ACT (stackable)</strong></dt>
1807
 
 
1808
 
          <dd>
1809
 
            <p>bind act &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br>
1810
 
             proc-name &lt;nick&gt; &lt;channel#&gt; &lt;action&gt;</p>
1811
 
 
1812
 
            <p>when someone does an action on the botnet, it invokes this
1813
 
            binding; flags is ignored; the mask is checked against the text
1814
 
            of the action (this is very similar to the CHAT binding)</p>
1815
 
          </dd>
1816
 
 
1817
 
          <dt><strong>BCST (stackable)</strong></dt>
1818
 
 
1819
 
          <dd>
1820
 
            <p>bind chat &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br>
1821
 
             proc-name &lt;bot&gt; &lt;channel#&gt; &lt;text&gt;</p>
1822
 
 
1823
 
            <p>when a bot says something on the botnet, it invokes this
1824
 
            binding; flags is ignored; the mask is checked against the
1825
 
            text</p>
1826
 
          </dd>
1827
 
 
1828
 
          <dt><strong>CHJN (stackable)</strong></dt>
1829
 
 
1830
 
          <dd>
1831
 
            <p>bind chat &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br>
1832
 
             proc-name &lt;bot&gt; &lt;nick&gt; &lt;channel#&gt;
1833
 
            &lt;flag&gt;&lt;sock&gt; &lt;from&gt;</p>
1834
 
 
1835
 
            <p>when someone joins a botnet channel, it invokes this binding;
1836
 
            flags is ignored; the mask is checked against the text</p>
1837
 
          </dd>
1838
 
 
1839
 
          <dt><strong>CHPT (stackable)</strong></dt>
1840
 
 
1841
 
          <dd>
1842
 
            <p>bind chat &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br>
1843
 
             proc-name &lt;bot&gt; &lt;nick&gt; &lt;sock&gt; &lt;chan&gt;</p>
1844
 
 
1845
 
            <p>when someone parts a botnet channel, it invokes this binding;
1846
 
            flags is ignored; the mask is checked against the channel</p>
1847
 
          </dd>
1848
 
 
1849
 
          <dt><strong>TIME (stackable)</strong></dt>
1850
 
 
1851
 
          <dd>
1852
 
            <p>bind time - &lt;mask&gt; &lt;proc&gt;<br>
1853
 
             proc-name &lt;min&gt; &lt;hour&gt; &lt;day&gt; &lt;month&gt;
1854
 
            &lt;year&gt;</p>
1855
 
 
1856
 
            <p>allows you to schedule procedure calls at certain times, mask
1857
 
            matches 5 space separated integers of the form: &quot;min hour
1858
 
            day month year&quot;</p>
1859
 
          </dd>
1860
 
 
1861
 
          <dt><strong>AWAY (stackable)</strong></dt>
1862
 
 
1863
 
          <dd>
1864
 
            <p>bind away - &lt;mask&gt; &lt;proc&gt;<br>
1865
 
             proc-name &lt;bot&gt; &lt;idx&gt; &lt;msg&gt;</p>
1866
 
 
1867
 
            <p>triggers when a user goes away or comes back on the botnet
1868
 
            (msg == &quot;&quot; when returning)</p>
1869
 
          </dd>
1870
 
 
1871
 
          <dt><strong>LOAD (stackable)</strong></dt>
1872
 
 
1873
 
          <dd>
1874
 
            <p>bind load - &lt;mask&gt; &lt;proc&gt;<br>
1875
 
             proc-name &lt;module&gt;</p>
1876
 
 
1877
 
            <p>triggers when a module is loaded.</p>
1878
 
          </dd>
1879
 
 
1880
 
          <dt><strong>UNLD (stackable)</strong></dt>
1881
 
 
1882
 
          <dd>
1883
 
            <p>bind unld - &lt;mask&gt; &lt;proc&gt;<br>
1884
 
             proc-name &lt;module&gt;</p>
1885
 
 
1886
 
            <p>triggers when a module is unloaded.</p>
1887
 
          </dd>
1888
 
 
1889
 
          <dt><strong>NKCH (stackable)</strong></dt>
1890
 
 
1891
 
          <dd>
1892
 
            <p>bind nkch - &lt;mask&gt; &lt;proc&gt;<br>
1893
 
             proc-name &lt;oldnick&gt; &lt;newnick&gt;</p>
1894
 
 
1895
 
            <p>triggered whenever a local users nick is changed (in the
1896
 
            userfile)</p>
1897
 
          </dd>
1898
 
 
1899
 
          <dt><strong>EVNT&nbsp;&nbsp; (stackable)</strong></dt>
1900
 
 
1901
 
          <dd>
1902
 
            <p>bind evnt - &lt;type&gt; &lt;proc&gt;<br>
1903
 
             proc-name &lt;type&gt;</p>
1904
 
 
1905
 
            <p>triggered whenever one of these events happens. valid events
1906
 
            are:</p>
1907
 
 
1908
 
            <blockquote>
1909
 
              <dl>
1910
 
                <dt><strong>sighup</strong></dt>
1911
 
 
1912
 
                <dd>
1913
 
                  <p>called on a kill -HUP &lt;pid&gt;</p>
1914
 
                </dd>
1915
 
 
1916
 
                <dt><strong>sigterm</strong></dt>
1917
 
 
1918
 
                <dd>
1919
 
                  <p>called on a kill -TERM &lt;pid&gt;</p>
1920
 
                </dd>
1921
 
 
1922
 
                <dt><strong>sigill</strong></dt>
1923
 
 
1924
 
                <dd>
1925
 
                  <p>called on a kill -ILL &lt;pid&gt;</p>
1926
 
                </dd>
1927
 
 
1928
 
                <dt><strong>sigquit</strong></dt>
1929
 
 
1930
 
                <dd>
1931
 
                  <p>called on a kill -QUIT &lt;pid&gt;</p>
1932
 
                </dd>
1933
 
 
1934
 
                <dt><strong>save</strong></dt>
1935
 
 
1936
 
                <dd>
1937
 
                  <p>called when the userfile is saved</p>
1938
 
                </dd>
1939
 
 
1940
 
                <dt><strong>rehash</strong></dt>
1941
 
 
1942
 
                <dd>
1943
 
                  <p>called just after a rehash</p>
1944
 
                </dd>
1945
 
 
1946
 
                <dt><strong>prerehash</strong></dt>
1947
 
 
1948
 
                <dd>
1949
 
                  <p>called just before a rehash</p>
1950
 
                </dd>
1951
 
 
1952
 
                <dt><strong>logfile</strong></dt>
1953
 
 
1954
 
                <dd>
1955
 
                  <p>called when the logs are switched daily</p>
1956
 
                </dd>
1957
 
              </dl>
1958
 
            </blockquote>
1959
 
          </dd>
1960
 
        </dl>
1961
 
      </blockquote>
1962
 
      <hr>
1963
 
 
1964
 
      <p><a name="sect8"></a>8. <strong>Return values</strong></p>
1965
 
 
1966
 
      <blockquote>
1967
 
        <p>Several bindings pay attention to the value you return from the
1968
 
        proc (using &quot;return $value&quot;). Usually they expect a 0 or 1,
1969
 
        and failing to return any value is interpreted as a 0.</p>
1970
 
 
1971
 
        <p>Here&#39;s a list of the bindings that use the return value from
1972
 
        procs they trigger, these bindings are mostly enabled from the
1973
 
        loading of specific modules, see the specific module information
1974
 
        pages to see which module provides which bindings.</p>
1975
 
      </blockquote>
1976
 
 
1977
 
      <blockquote>
1978
 
        <dl>
1979
 
          <dt><strong>MSG</strong></dt>
1980
 
 
1981
 
          <dd>
1982
 
            <p>Return 1 to make the command get logged like so:<br>
1983
 
             (nick!user@host) !handle! command</p>
1984
 
          </dd>
1985
 
 
1986
 
          <dt><strong>DCC</strong></dt>
1987
 
 
1988
 
          <dd>
1989
 
            <p>Return 1 to make the command get logged like so:<br>
1990
 
             #handle# command</p>
1991
 
          </dd>
1992
 
 
1993
 
          <dt><strong>FIL</strong></dt>
1994
 
 
1995
 
          <dd>
1996
 
            <p>Return 1 to make the command get logged like so:<br>
1997
 
             #handle# files: command</p>
1998
 
          </dd>
1999
 
 
2000
 
          <dt><strong>PUB</strong></dt>
2001
 
 
2002
 
          <dd>
2003
 
            <p>Return 1 to make the command get logged like so:<br>
2004
 
             &lt;&lt;nick&gt;&gt; !handle! command</p>
2005
 
          </dd>
2006
 
 
2007
 
          <dt><strong>CTCP</strong></dt>
2008
 
 
2009
 
          <dd>
2010
 
            <p>Return 1 to ask the bot not to process the CTCP command on its
2011
 
            own. Otherwise it would send its own response to the CTCP
2012
 
            (possibly an error message if it doesn&#39;t know how to deal
2013
 
            with it).</p>
2014
 
          </dd>
2015
 
 
2016
 
          <dt><strong>FILT</strong></dt>
2017
 
 
2018
 
          <dd>
2019
 
            <p>Return 1 to indicate the text has been processed, and the bot
2020
 
            should just ignore it. Otherwise it will treat the text like any
2021
 
            other.</p>
2022
 
          </dd>
2023
 
 
2024
 
          <dt><strong>FLUD</strong></dt>
2025
 
 
2026
 
          <dd>
2027
 
            <p>Return 1 to ask the bot not to take action on the flood.
2028
 
            Otherwise it will do its normal punishment.</p>
2029
 
          </dd>
2030
 
 
2031
 
          <dt><strong>RAW</strong></dt>
2032
 
 
2033
 
          <dd>
2034
 
            <p>Return 1 to ask the bot not to process the server text. This
2035
 
            can affect the bot&#39;s performance (by causing it to miss
2036
 
            things that it would normally act on) -- you have been
2037
 
            warned.</p>
2038
 
          </dd>
2039
 
 
2040
 
          <dt><strong>WALL</strong></dt>
2041
 
 
2042
 
          <dd>
2043
 
            <p>Return 1 to make the command get logged liked so:<br>
2044
 
             !nick! msg</p>
2045
 
          </dd>
2046
 
        </dl>
2047
 
      </blockquote>
2048
 
      <hr>
2049
 
 
2050
 
      <p><a name="sect9"></a>9. <strong>Matching characters</strong></p>
2051
 
 
2052
 
      <blockquote>
2053
 
        <p>Many of the bindings allow match characters in the arguments. Here
2054
 
        are the four special characters:</p>
2055
 
 
2056
 
        <p>? matches any single character<br>
2057
 
         * matches 0 or more characters of any type<br>
2058
 
         % matches 0 or more non-space characters (can be used to match a
2059
 
        single word)<br>
2060
 
         ~ matches 1 or more space characters (can be used for whitespace
2061
 
        between words)</p>
2062
 
      </blockquote>
2063
 
    </blockquote>
2064
 
    <hr>
 
913
      source scripts/action.fix.tcl</strong></p>
 
914
      <hr>
2065
915
 
2066
916
    <p><em>Copyright &copy; 1997 Robey Pointer<br>
2067
 
     Copyright &copy; 1999, 2000, 2001, 2002 <a href="http://www.eggheads.org/">
2068
 
     Eggheads Development Team</a></em></p>
 
917
    Copyright &copy; 1999, 2000, 2001, 2002, 2003, 2004
 
918
    <a href="http://www.eggheads.org/"> Eggheads Development Team</a></em></p>
2069
919
  </body>
2070
920
</html>