1 |
_ |
2 |
| |__ ___ _____ _ __ ___ _____ ___ _ __ |
3 |
| ยด_ \ / _ \|_ _| `_ \/ _ \|_ _|/ _ \| '_ \ |
4 |
| |_) | (_) | | | | | | | __/ | | | (_) | |_) | |
5 |
|_.__/ \___/ |_| |_| |_|\___| |_| \___/| .__/ |
6 |
|_| v1.1 |
7 |
|
8 |
by Teemu Hjelt <temex@iki.fi> |
9 |
|
10 |
|
11 |
At least glance over this document before doing anything with botnetop.mod. |
12 |
If you don't have earlier experiences with eggdrop modules you should read |
13 |
this file thoroughly. |
14 |
|
15 |
|
16 |
Table of Contents |
17 |
================== |
18 |
|
19 |
1. Introduction |
20 |
2. Installation |
21 |
3. FAQ |
22 |
4. Tcl commands |
23 |
5. Tcl variables |
24 |
6. Feedback |
25 |
7. Latest version |
26 |
8. Credits |
27 |
9. License |
28 |
|
29 |
|
30 |
1. Introduction |
31 |
================ |
32 |
|
33 |
botnetop.mod is based on botnetop.tcl written by slennox and was written in C from |
34 |
scratch by Teemu Hjelt. botnetop.mod allows linked bots to request and give ops to |
35 |
each other. It can also invite linked bots to invite-only channels, share keys with |
36 |
them, raise channels' limits and unban them. botnetop.mod is fully compatible with |
37 |
the botnetop.tcl script and the netbots.tcl's botnetop.tcl component (you can even |
38 |
use your netset.tcl to configure botnetop.mod). In addition you can use other botnet |
39 |
opping scripts (e.g, getops.tcl) simultaneously with botnetop.mod. |
40 |
|
41 |
|
42 |
2. Installation |
43 |
================ |
44 |
|
45 |
botnetop.mod requires at least eggdrop 1.5.4 (1.6.0 or better recommended) |
46 |
and you need to have the irc, the server and the channel modules loaded. |
47 |
You also need the source code of eggdrop to compile the module. |
48 |
|
49 |
1. Go to the directory where you have the eggdrop source code. |
50 |
(Normally the directory where you have extracted the eggdrop tarball) |
51 |
2. Go to src/mod directory under your eggdrop directory and copy the |
52 |
botnetop.mod tarball there. |
53 |
3. Type "tar zxvf botnetop.mod-x.x.x.tar.gz" to extract the tarball. |
54 |
(If that doesn't work type first "gzip -d botnetop.mod-x.x.x.tar.gz" |
55 |
and then "tar -xvf botnetop.mod-x.x.x.tar") |
56 |
4. Configure and compile eggdrop like you would normally do it. |
57 |
(e.g, ./configure && make config && make && make install) |
58 |
|
59 |
All botnetop.mod settings can be found in the botnetop.conf file. |
60 |
You can either copy it to your eggdrop directory, edit it to fit |
61 |
your needs and then add line "source botnetop.conf" to your eggdrop |
62 |
config file or you can just copy the contents of the file to your |
63 |
eggdrop config file. If you want to use the default settings all you |
64 |
need to do is to add line "loadmodule botnetop" to your eggdrop config |
65 |
file. The last thing is to (re)start or rehash your bot and hope for |
66 |
the best :) |
67 |
|
68 |
|
69 |
3. FAQ |
70 |
======= |
71 |
|
72 |
1. Q: Are you ever going to make the module compatible with the 1.4 |
73 |
serie of eggdrop? |
74 |
|
75 |
A: Probably not, because 1.4 serie is lacking the need bindings |
76 |
and tandbot isn't exported for modules. I've planned to make |
77 |
a patch for 1.4 that exports tandbot for modules but I don't |
78 |
know whether I'm going to carry it out or not. |
79 |
|
80 |
2. Q: I get "`H_need' undeclared (first use in this function)" or |
81 |
"`tandbot' undeclared (first use this function)" everytime I |
82 |
try to compile eggdrop with botnetop.mod. What should I do? |
83 |
|
84 |
Q: When trying to load the module I get "botnetop: Error loading |
85 |
module: /home/lamest/eggdrop/modules/botnetop.so: undefined symbol: |
86 |
tandbot". How can I fix this? |
87 |
|
88 |
A: These errors are caused due to the fact that you have too old version of |
89 |
eggdrop that doesn't have support for need bindings and doesn't export |
90 |
tandbot for modules. You need at least eggdrop 1.5.4 to use botnetop.mod. |
91 |
|
92 |
3. Q: I often get messages like "botnetop.mod: new foobar record created |
93 |
for #foobar (address: 42424242)". What do they mean? |
94 |
|
95 |
A: They are special debugging messages that help me track bugs in |
96 |
memory allocating and freeing. They are nothing serious and if |
97 |
you don't want to see them anymore, type ".console -d" on the |
98 |
partyline. |
99 |
|
100 |
4. Q: Are you going to add support for language files? |
101 |
|
102 |
A: I'm not sure yet. Eggdrop will use gettext in their future |
103 |
versions but implementing gettext support in botnetop.mod |
104 |
could be a bit difficult. |
105 |
|
106 |
5. Q: Are you going to make botnetop.mod compatible with getops.tcl |
107 |
and/or other similar scripts? |
108 |
|
109 |
A: I have thought about it. I'm not sure yet how I should do it |
110 |
because I wouldn't like to make botnetop.mod more bloated |
111 |
than it currently is. |
112 |
|
113 |
6. Q: Can I get botnetop.mod for windrops? |
114 |
|
115 |
A: Yes, if you compile it yourself in Cygwin. I have never tested |
116 |
how the module works under Windows so I can't offer any kind of |
117 |
support. |
118 |
|
119 |
7. Q: What kind of versioning policy are you using? |
120 |
|
121 |
A: Version 1.0.0 is the first stable version that should be very much |
122 |
alike with botnetop.tcl. The 1.0 tree is intended for fixing bugs |
123 |
in 1.0.0. When I'm satisfied with the 1.0 serie I will start a new |
124 |
1.1 serie which is intended for adding new features and fixing flaws |
125 |
in botnetop.tcl. Although the versions after 1.1.0 will have more |
126 |
configuration variables they still will be fully compatible with |
127 |
the older versions of the module and botnetop.tcl script. |
128 |
|
129 |
8. Q: My bot crashed. What should I do? |
130 |
|
131 |
A: Check the BUG-REPORT file in your bot's doc/ directory and follow |
132 |
the instructions given. Instead of just sending the bug-report to |
133 |
bugs@eggheads.org send it also to temex@iki.fi. |
134 |
|
135 |
9. Q: Why is botnetop.mod so slow? I thought the fact that it's written |
136 |
in C makes it a lot faster compared to Tcl scripts. |
137 |
|
138 |
A: In fact Tcl scripts aren't as slow as people often tend to think. |
139 |
However, I'm not satisfied with the speed of the module myself either |
140 |
but I'm hoping the versions in 1.1 tree work a lot faster than the |
141 |
older versions. |
142 |
|
143 |
10. Q: Do I need to recompile whole eggdrop everytime I install botnetop.mod? |
144 |
|
145 |
A: No, if you still have the directory where you compiled eggdrop with all |
146 |
the binaries and object files (i.e, you haven't executed either "make clean" |
147 |
or "make distclean"). If that is the case you can step over the ./configure |
148 |
phase and only execute "make config && make && make install". The compilation |
149 |
process should be a lot faster because only the module is compiled. |
150 |
|
151 |
|
152 |
4. Tcl commands |
153 |
================ |
154 |
|
155 |
Tcl commands are only enabled if ENABLE_TCL_COMMANDS is |
156 |
defined in botnetop.h file. |
157 |
|
158 |
bop_reqop <channel> <need> |
159 |
Makes the bot request <need> for <channel> from all |
160 |
linked bots. <need> can be op, invite, limit, key or |
161 |
unban. Generally if <need> is other than op bop_letmein |
162 |
is called. |
163 |
|
164 |
bop_askbot <handle> <channel> |
165 |
Makes the bot ask <handle> if it wants ops on <channel>. |
166 |
|
167 |
bop_letmein <channel> <need> |
168 |
Makes the bot request <need> for <channel> from all |
169 |
linked bots. <need> can be "invite", "limit", "key" or |
170 |
"unban". Notice that <need> can't be "op". |
171 |
|
172 |
bop_lowbots <channel> |
173 |
Returns 1 if there are less than three bots on the |
174 |
channel. Otherwise returns 0. |
175 |
|
176 |
Note: If you're planning to use both botnetop.mod and botnetop.tcl |
177 |
simultaneously, you need to undefine ENABLE_TCL_COMMANDS in botnetop.h |
178 |
file or load the script after the module in order to make the script |
179 |
use its own Tcl procedures. |
180 |
|
181 |
|
182 |
5. Tcl variables |
183 |
================= |
184 |
|
185 |
bop_delay |
186 |
Maximum number of seconds to delay before asking a non-opped bot |
187 |
if it needs ops. Set to 0 to disable. |
188 |
|
189 |
bop_maxreq |
190 |
Maximum number of bots to request ops from at a time. Set to 0 |
191 |
to disable. |
192 |
|
193 |
bop_modeop [0/1] |
194 |
Make the bot send an op request when it sees a bot become opped on a |
195 |
channel? This will make your bot get ops sooner when another bot is |
196 |
given ops. |
197 |
|
198 |
bop_linkop [0/1] |
199 |
Make the bot send an op request when a bot links? This will make your bot |
200 |
get ops sooner if linking is delayed, and provides a better chance of the |
201 |
bots opping one another if there are linking problems. |
202 |
|
203 |
bop_icheck [0/1] |
204 |
Check bot's userhost before inviting it to a channel? |
205 |
|
206 |
bop_hcheck [0/1] |
207 |
This option performs a hostmask check over the botnet. |
208 |
|
209 |
bop_osync [0/1] |
210 |
Make the bot give ops to a bot even if it looks like it's already opped |
211 |
on the channel? |
212 |
|
213 |
bop_addhost [0/1] |
214 |
Make the bot to try add new hostmasks for bots? |
215 |
|
216 |
bop_log [0/1/2] |
217 |
Set this to 2 to enable all logging, 1 to disable logging of ops/op |
218 |
requests and 0 to disable all logging. |
219 |
|
220 |
bop_oninvite [0/1] |
221 |
What to do when a bot asks for an invite? Set this to 0 to invite |
222 |
the bot to the channel and 1 to set +I for the bot. |
223 |
|
224 |
bop_onlimit [0/1] |
225 |
What to do when a bot asks for a limit raise? Set this to 0 to |
226 |
raise the limit by one and 1 to invite the bot to the channel. |
227 |
|
228 |
bop_onunban [0/1/2] |
229 |
What to do when a bot asks for an unban? Set this to 0 to unban the |
230 |
bot, 1 to set +e for the bot and 2 to invite the bot to the channel. |
231 |
|
232 |
bop_onkey [0/1] |
233 |
What to do when a bot asks for a key? Set this to 0 to send the |
234 |
key to the bot and 1 to invite the bot to the channel. |
235 |
|
236 |
bop_lowbotslimit |
237 |
If the amount of bots on the channel is below this, send the ops |
238 |
request right away. Set to 0 to disable. |
239 |
|
240 |
bop_flood |
241 |
Answer only X requests in Y seconds. This prevents flooding of |
242 |
your botnet with botnetop requests. Set to 0:0 to disable. |
243 |
|
244 |
bop_ignore |
245 |
Ignore requests for X seconds if the limit in bop_flood has |
246 |
been reached. Set to 0 to disable. |
247 |
|
248 |
bop_quickop [0/1] |
249 |
Use a faster mode queue to give ops quicker? |
250 |
|
251 |
|
252 |
6. Feedback |
253 |
============ |
254 |
|
255 |
You can contact the author at temex@iki.fi. All kinds of questions, suggestions, |
256 |
comments and bug-reports are welcome and highly appreciated. Please feel free to |
257 |
send also patches. Patches should be in unified (the -u switch in diff) format. |
258 |
Before sending any questions etc. please read through this document, especially |
259 |
the FAQ. |
260 |
|
261 |
|
262 |
7. Latest version |
263 |
================== |
264 |
|
265 |
The main site for botnetop.mod is http://www.iki.fi/temex/eggdrop/ |
266 |
|
267 |
You can obtain the latest version from the site above or |
268 |
via CVS by typing the following lines to your shell prompt: |
269 |
1. cvs -d :pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot login |
270 |
(when CVS asks for a password just press enter) |
271 |
2. cvs -d :pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot checkout botnetop.mod |
272 |
|
273 |
The CVS web is available at http://www.eggheads.org/cgi-bin/cvsweb/botnetop.mod/ |
274 |
|
275 |
|
276 |
8. Credits |
277 |
=========== |
278 |
|
279 |
The author wants to thank the following people (in alphabetical order): |
280 |
|
281 |
* \-\itman for beta testing. |
282 |
* Abraham for beta testing and breaking practically everything. |
283 |
* daimonic for beta testing and telling good jokes. |
284 |
* Fabian for helping whenever I needed help. |
285 |
* fuchs for ideas and patches. |
286 |
* G`Quann for helping solve few problems. |
287 |
* guppy for solving few problems and setting up the CVS. |
288 |
* guruz for beta testing and telling bad jokes. |
289 |
* Johoho for beta testing. |
290 |
* NML_375 for helping with pointers and fixing few bugs. |
291 |
* slennox for writing botnetop.tcl. |
292 |
* SuperS for ideas, suggestions and beta testing. |
293 |
* Wull for helping with structures. |
294 |
|
295 |
The author is also grateful for all the people who have sent bug-reports |
296 |
and supported the project in other ways. |
297 |
|
298 |
|
299 |
9. License |
300 |
=========== |
301 |
|
302 |
botnetop.mod is written by Teemu Hjelt and is released to the public under |
303 |
the terms of the GNU General Public License. For the complete license please |
304 |
see the file called COPYING. |
305 |
|
306 |
|
307 |
Copyright (C) 2000, 2001, 2002 Teemu Hjelt <temex@iki.fi> |