1# $Id: Readme.si,v 1.1.0 2004/04/21 17:42:23 assassin Exp $
2____________________________________________________________________________
3
4--------------------------------- Preberi me -----------------------------------
5Prosim vsaj preleti ta dokument preden karkoli vpra�a�. Vkolikor se nisi nikoli prej ukvarjal/a z eggdropom ali katerikolim drugim botom, ki temelji na eggdropu, GA PREBERI v vsakem primeru.
6
7  (!) Vsebina:
8    1.  Info - osnovne informacije o izdelku
9    2.  Zahteve - kaj potrebuje�
10    3.  Lastnosti - spisek lastnosti bota
11    4.  In�talacija - kako in�talira� in konfigurira� bota
12    5.  Osnovna konfiguracija - nekaj informacij o nastavitvah
13    6.  Komande - spisek nekaj osnovnih komand za hub (glavnem) bota
14    7.  Nastavitve kanala - spisek in opis obstoje�ih ?kanal? komand
15    8.  Povezovanje (linkanje) botov - kako narediti botnet ;)
16    9.  Najpogostej�a vpra�anja (FAQ) - PREBERI!
17    10. Pomo� - kraj�a informacije o tem, kje lahko vpra�ate za pomo�
18    11. Povezave - pomembnej�e povezave
19    12. O meni - kraj�e informacije
20    13. Pozdravi in zahvale - ne spra�uj...;)
21
22Pozor! Slede�a slovenska verzija Evangeline readme dokumenta je �e v fazi prevajanja, zato potencialne pravopisne napake gladko prezrite, ker bodo v prihodnosti korigirane, nasprotno temu pa je za�eljeno, da me opozorite na vsakr�no morebitno napako, ki bi v prevodu spremenila sam pomen izvirnika.
23Nekaj besed bi namenil �e samem terminolo�kem vpra�anju prevajanja. Pri prevajanju v ?stroki? uveljavljenih izrazov v na� jezik so pogosto te�ave, saj pomen nekaterih besed, ki so neposredno prevedene iz angle��ine ne ustreza njihovem pomenu v sami teoriji in praksi v sloveniji. Tako se naprimer te�ave poka�ejo �e pri ne�em, ve�ini ki boste tole brali tako preprostem, kot je ?userfile?, kar bi lahko prevedel kot ?uporabni�ka datoteka?, pa se boste gotovo strinjali z mano, da je to poimenovanje neustrezno in je s tega stali��a bolje pustiti ve�ini znan angle�ki izvirnik. Ampak, ker to ne bodo brali le tisti, ki jim je pomen ?userfile? besede znan �e iz Eggdropa, je bolje narediti korak dlje in dati uporabno sopomenko, ki bi lahko v tem primeru bila ?userlist?, kar pa je �e nekoliko la�je in ustezneje prevesti v ?listo uporabnikov? in to uporabim tudi sam. Takih besed je �e ogromno, recimo uporabnikom Eggdropa dobro znana beseda ?flag?, ki v neposrednem prevodu pomeni zastavica, zastava. Ampak kaj s tem povemo nekomu, ki se nikoli ni ukvarjal z irc boti? Ni�. Zato se mi je zdelo ustrezneje tovrstne izraze poimenovati opisno napr. ?user with flag = uporabnik z dolo�enim pooblastilom/stopnjo v botu? itd... Mogo�e se bo kak�nemu ?poznavalcu? irc botov zdelo zaradi tega na prvi pogled kaj manj razumljivo, vendar bo imel �e vseeno neprimerno manj te�av, kot bi jih ob dobesednem prevodu imeli za�etniki - ki jim ravno ti dokumenti predstavljajo osnovo delovanja Evangeline bota.
24
25----------------------------------------------------------------------------
26
27(1) Info:
28   Evangeline je IRC (Internet Relay Chat) bot, ki temelji na eggdropu. Narejen je za IRCnet omre�je zato je ve�ina sprememb prilagojenih temu omre�ju. Kljub temu bo verjetno pravilno deloval tudi na drugih omre�jih (z izjemo kak�ne znane te�ave, kot je kickanje na Quakenetu).
29Evangeline se lahko seveda �e izpopolni z dodatki, kot so moduli (Eggdrop moduli s popravki) in Tcl skriptami.
30
31
32(2) Zahteve:
33  * Unix ra�un (account) s pribli�no 7MB prostora.
34  * Tcl 8.2+ (8.4.6 je priporo�eno)
35  * Nekaj malega znanja angle��ine ;-)
36  * Nekaj malega poznavanja IRC-a in UNIX-a.
37
38(3) Lastnosti:
39  Veliko teh lastnosti obstaja tudi v drugih botih (napr.: AversE, VoiD), toda nekatere med njimi so unikatne ali do sedaj javno neobjavljene.
40
41Encrypted userfile - lista uporabnikov je kodirana in dekodirana v spominu brez uporabe za�asnih datotek. Kju� ni shranjen v "binary" zato "strings binary" ne bo nikomur uporabno pri iskanju dekodirnega klju�a.
42
43Admin - administrator je uporabnik, kompiliran v "binary" in ima neomejen dostop do bota in njegovih komand. Lahko odstrani stalne lastnike (permowners), zamenja njihova pooblastila (flags), dodaja virtualne hoste itd... [ Originalno iz Cub3 bota]
44
45Permowers - stalni lastniki, kompilirani v "binary", ki imajo skoraj neomejen dostop do bota (ne morejo spreminjati drugih stalnih lastnikov ali administratorja)
46
47Adder - "dodajalec" - novo uporabni�ko pooblastilo (+r). Uporabniki s tem pooblastilom lahko dodajajo nove uporabnike ne da bi bili stalni lastniki bota. To pooblastilo lahko v bota doda samo stalni lastnik (permowner) ali administrator (admin).
48
49Posredovanje datotek med boti - bot posreduje spremembe in posilja user/channel listo samo s strani bota s +p pooblastilom (flagom). Torej main/slave/alt huba.
50
51Irc akcije - bot kicka (vr�e s kanala) namesto deopa. To je na IRCnetu precej bolj u�inkovito. Evangeline lahko kickne celo �est uporabnikov naenkrat (pri "defense" in otro�jih "takeover" nastavitvah) ali pa opa naenkrat do 5   uporabnikov (pri "getops" in otro�jih "takeover" nastavitvah).
52
53Kodirano posredovanje - lista uporabnikov (userfile) je poslana drugim botom v kodirani obliki, �e le ti podpirajo to mo�nost.
54
55Skr�ena uporabni�ka datoteka - uporabni�ka lista je poslana botom v skr�eni (kompresirani) obliki. Kompresija poteka preko zlib (gzip)
56
57Prenos liste kanalo na prvo povezovanje - lista kanalov (channel list) je huba (glavnega bota) poslana drugim (slave/leaf botom) takoj po prvem povezovanju (linkanju). Tako ni ve� problemov zaradi mankajo�ih pooblastil (flagov) na nekaterih kanalih ;-)
58
59Skr�ene datoteke - uporabni�ka lista, lista kanalov in "v�eraj�nji" logi so shranjeni v skr�eni obliki.
60
61Syspass - opcija za��ite nekaterih komand (masovne botnet komande in komande, kot so .die, .restart, .rehash v hubu) z dodatnim geslom (dafcijeva ideja)
62
63AddBot - lu�kana skripta, ki pomaga dodajati bote (linkanje) ne da bi se sploh povezali vanje. Vse se da narediti preko ene komande v hubu. (V originalu ta skripta iz AmenO bota)
64
65Presets - "paket" nastavitev za kanale, ki se obnovijo vsakih 60 minut ali �e se kak�en bot lo�i od botneta in vse nastavijo v pravilnem razmerju.
66
67Maxbots - s komando lahko nastavite maksimalno �tevilo botov na kanalu, ki se preverja in po potebi ponastavi vsakih deset minut ali v primeru kak�nih problemov na kanalu (napr. masovni "obisk" kanala)
68
69Kompatibilnost - bot se lahko pove�e z veliko drugimi Eggdrop modifikacijami. Lahko si deli userlisto z: AmenO, aCo, AversE, Bear, BloW, cNs, Cub3,
70  Detox, DiVERSE, Eggdrop v1.4+, GTT, LeppeR, RaviS, RulF, Suid, VoiD,
71VoLron, vOlRoN, X-Men.  Ne more pa je deliti z: VoiD4, NnO, Shark2.
72
73BotNetOP - dodana skripta za opanje je precej hitra, tako da ni potrebe za +autoop nastavitev ali +a pooblastilo uporabniku. S pomo�jo tega je opanje bolj varno in zmanj�uje tveganje opanja napa�nih, nepoobla��enih oseb.
74
75Flood - bot ima veliko �tevilo otro�jih mo�nosti "smetenja" drugih uporabnikov, napr: msg, ctcp, invite itd... (le �emu je to sploh �e notri?)
76
77Servers randomiser - vsak bot naklju�no poljubno izbira iz konfiguracijske  liste IRC stre�nik na katerega se bo priklju�il, s �imer je deloma prepre�ena izguba kanala, ker bi bili vsi boti na enem in istem IRC stre�niku.
78
79Mainserver - bot posku�a obdr�ati �eleni IRC stre�nik. V primeru, da izbrani IRC stre�nik pade, se bot priklju�i na drugega, po dolo�enem �asu pa se ponovno posku�a priklju�iti na prvega (vendar le v primeru, da je na kanalu ve� kot 6 botov z opom in da to opcijo nastavite).
80
81Autolimit - nova nastavitev za kanal. V primeru, da imate omogo�en '+alimit' bo bot avtomastko urejal limit kanala, ki je v tem primeru odvisen od �tevila uporabnikov na kanalu. Bot bo preverjal ta limit vsako minuto. Alimit nastavitev lahko urejate preko '.chanset' komande (napr. .chanset #chan limits 10:7:1). [ Vklju�eno naj bi bilo le v ENEM botu na kanalu. ]
82
83
84(4) In�talacija:
85  * Odpakiraj datoteko (tar zxf filename.tar.gz)
86
87  * Opomba: Naslednji korak je lahko narejen tudi preko konfiguracijske skripte. Preprosto nadaljuj in pritisni 'enter' ali 'y' ko te bo konfiguracijska skripta vpra�ala 'add admin/permwoner(s)' in odgovori na naslednji dve vpra�anji (vnesi svoj vzdevek...).
88
89  * Odpri 'src/main.c' in poi��i:
90     'char admin[121]' - vpi�i sem *ENO* ime uporabnika ki bo imel popoln dostop do vseh komand bota
91     'char owner[121]' - vpi�i sem ve� imen lastnikov bota (permowners).
92
93  * V botovem root direktoriju odtipkaj './configure' (lahko da ti bo postavljeno par vpra�anj). Ko bo konfiguracijska skripta zaklju�ila svoje delo odtipkaj komando 'make' ali
94    'make static' in �akaj...
95
96    INFO: Za omogo�itev  IPv6 podpore mora� dodati --enable-ipv6 v 'configure'
97          (napr.: ./configure --enable-ipv6)
98
99    INFO: lahko onemogo�i� kodiranje uporabni�ke liste. Odtipkaj le --disable-crypt v
100          'configure' (napr.: ./configure --disable-crypt)
101
102    INFO: Lahko uporabi� tudi svoj lasten kodirni klju�. Odtipkaj le --custom-key
103          v 'configure' in vnesi klju�, ko te bo skripta vpra�ala zanj.
104          (napr.: ./configure --custom-key, ter po�akaj nekaj trenutkov... ,
105                'Enter your encryption key: tvoj_kodirni')
106          Priporo�ena je uporaba te funkcije saj olaj�a nadgradnjo (update) bota..
107
108  * Naredi konfiguracijsko datoteko bota:
109
110    *UPORABA �ARODEJA  (wizzard)*
111
112      Ena od mo�nosti je, da za konfig. datoteko bota uporabi� �arovnika.
113      NOTE: Vkolikor uporablja� Putty (mogo�e pa tudi katerega drugega klienta) za dostop do shell ra�una pazi, kaj vtipkava� (backspace tipka je lahko prepoznana kot '' kar je potem vne�eno tudi v samo konfig. datoteko bota)
114
115      *OBI�AJNI (leaf bot)*
116
117        -IPv4:
118          Za�ni s: ./starter --new ime-bota
119          Vpi�i 'y' ko te skripta vpra�a , �e �eli� narediti novo datoteko, potem vtipkaj
120          'ipv4' in odgovori na druga vpra�anja. Ne pozabi, da je ime bota (botnet-nick) hkrati tudi ime konfig. datoteke bota.
121
122        -IPv6:
123          Vpi�i 'y' ko te skripta vpra�a , �e �eli� narediti novo datoteko, potem vtipkaj
124          'ipv6' in odgovori na druga vpra�anja. Ne pozabi, da je ime bota (botnet-nick) hkrati tudi ime konfig. datoteke bota.
125
126        -BNC:
127          Za�ni s: ./starter --new ime-bota
128          Vpi�i 'y' ko te skripta vpra�a , �e �eli� narediti novo datoteko, potem vtipkaj
129          'ipv6' in odgovori na druga vpra�anja. Ne pozabi, da je ime bota (botnet-nick) hkrati tudi ime konfig. datoteke bota.
130
131      *HUBS  (glavni boti)*
132
133        -Main:
134          Za�ni s: ./starter --new ime-bota
135          Vpi�i 'y' ko te skripta vpra�a , �e �eli� narediti novo datoteko, potem vtipkaj
136          'main' in odgovori na druga vpra�anja. Ne pozabi, da je ime bota (botnet-nick) hkrati tudi ime konfig. datoteke bota.
137
138        -Slave:
139         Vpi�i 'y' ko te skripta vpra�a , �e �eli� narediti novo datoteko, potem vtipkaj
140          'slave' in odgovori na druga vpra�anja. Ne pozabi, da je ime bota (botnet-nick) hkrati tudi ime konfig. datoteke bota.
141
142        -Alt:
143          Za�ni s: ./starter --new ime-bota
144          Vpi�i 'y' ko te skripta vpra�a , �e �eli� narediti novo datoteko, potem vtipkaj
145          'alt' in odgovori na druga vpra�anja. Ne pozabi, da je ime bota (botnet-nick) hkrati tudi ime konfig. datoteke bota.
146
147
148    *RO�NO (Uporabi dodan primerek!)*
149
150      *HUBS*
151
152      - Main/Slave/Alt
153          nick "vzdevek bota"
154          botnet-nick "vzdevek, ki ga bo imel v botnetu"
155          bots-listenport "port za povezave botov"
156          users-listenport "port za povezave uporabnikov"
157          party(plpass) "Vpi�i kodirano geslo. �e pusti� prazno, bo dodatno party-line geslo onemogo�eno". Pozneje lahko geslo nastavi� tudi s komando '.bpass'  v samem hubu.
158          party(syspass) "Vpi�i kodirano geslo. �e pusti� prazno bo dodatno
159                          geslo za  'mass' comande onemogo�eno".
160                         Pozneje lahko geslo nastavi� tudi s komando '.bpass'  v samem hubu.
161          OPOMBA : Obe dodatni gesli (party-line and syspass) sta lahko tudi pozneje nastavljeni s
162                  '.bpass' komando v samem botu.
163
164      - Main:
165          mainip "vnesi IP naslove tvojega streznika"
166
167      - Alt:
168          ismalt 'nastavi tu 1 �e �eli� da alternativni hub deluje kot main hub'
169          issalt 'nastavi tu 1 �e �eli� da alternativni hub deluje kot slave hub'
170
171    *OBI�AJNI*
172
173      - IPv4/IPv6/BNC:
174        nick "vzdevek bota na ircu"
175        altnick "alternativno vzdevek (�e je prvotni �e zaseden)"
176        botnet-nick "�e uporablja� $nick s �udnimi znaki:
177                    '[', '|', vnesi sem ime brez teh znakov (la�je upravljanje z botom)"
178        realname "realname na ircu, karkoli �eli�..."
179        username "bot ident (koristno kadar ni oident na stre�niku ali kadar bota povezuje� preko psyBNC-ja)"
180        listenport 9999 'zamenjaj 9999 s tvojim izbranim portom'
181        ircserver { sem vnesi irc serverje }
182        my-ip "izpolni to �e uporablja� vhoste"
183        my-hostname "izpolni to �e uporablja� vhoste"
184        firewall "vnesi hostnaslov:port proxsy-ja �e si za firewalom/proxy-jem"
185                 Nastavi "Chostname:port" za HTTP CONNECT proxy ali
186                 "Phostname:port" za HTTP POST proxy.
187        nat-ip "external ip �e uporablja�... "
188        use-gseen 'nastavi to na 1 �e in�talira� bota z gseen modulom
189                  in �eli� uporabljati to funkcijo'
190        use-stats 'nastavi to na 1 �e in�talira� bota s stats modulom
191                   in �eli� uporabljati to funkcijo'
192
193      - IPv6:
194        use-ipv6 1 '�e �eli� uporabljati ipv6 nastavi to na 1'
195        my-ip "vstavi sem IP naslov v formatu: 127.0.0.1 (to je zgolj primer)"
196        my-ip6 "vstavi sem IP naslov v formatu: 3ffe:80ee:419:0:0:0:0:1 (to je zgolj primer)"
197        my-hostname6 "vstavi sem IP naslov v formatu: 3ffe:80ee:419:0:0:0:0:1
198	              (to je zgolj primer)"
199
200     - BNC:
201       use-bnc 1 'nastavi to na 1 �e �eli� uporabljati obi�ajni BNC'
202       use-psyBNC 0 'nastavi to na 1 �e �eli� uporabljati psyBNC. Ostalo mora biti nastavljeno na 0'
203       use-ezBOUNCE 0 'nastavi to na 1 �e �eli� uporabljat ezBOUNCE. Ostalo mora biti nastavljeno              na 0'
204       servers "nastavi bnc naslov v formatu: host/ip:port"
205       bnc-pass "geslo za bnc"
206       bnc-host "vhost ki ga bo imel bot, ko se bo povezal na irc �ez bnc"
207       ircservers "spisek irc streznikov"
208       iserv-port "port irc streznika, ki ga bot uporablja, napr 6667"
209
210     - SETTINGS (file in cfg/ directory):
211       use-mainserver 0 'nastavi to na 1 �e �eli� uporabljati opcijo povezave na to�no dolo�eni irc stre�nik'
212       ms(mserver) { vpi�i to�no dolo�en preferiran irc stre�nik}
213       ms(chktime) 120 'v minutah dolo�eno, kdaj se bo bot spet posku�al povezati na preferiran irc stre�nik, �e je trenutno na katerem drugem'
214       ms(tryagain) 360 'v minutah dolo�eno, kdaj se bo bot spet posku�al povezati na preferiran irc stre�nik, �e je bil prej�nji poizkus neuspe�en'
215       eva(ctcp) '0' - izklju�i, '1' - naklju�no izbran', 2 - dolo�en, 9 - Evangeline ;)
216       eva(rlist) { } 'pusti prazno'
217       lappend eva(rlist) "--=\[Evangeline\]==--" '�e �eli� uporbiti ve� razlogov za dejanja tcl skript (napr. Kick messages) dodaj ve� vrstic -enako kot v originalni datoteki'
218       reason(alimit) "vzrok, ki bo izpisan �e bo uporabnik brez pravih pooblastil (flagov) posku�al spremeniti ali odstraniti limit kanala"
219
220  * Ok, zdaj ko ima� konfiguriranega bota, ga za�eni s komando:
221    ./starter --new botnet-nick (samo �e za konfiguracijo uporablja�
222                                 *�ARODEJA)
223  ali pa klasi�no
224    ./evangeline -m cfg/config (-m parameter je potreben le ob PRVEM zagonu bota)
225
226  * Logiraj se vanj:
227    telnet localhost usersport (uporabi to, kar ja nastavljeno v config, napr.: 'users-listenport 9999'
228                               ali 'listenport 9999')
229
230   *NOTE:* �e tvoj bot uporablja virtualni host (vhost), potem ne pozabi uporabiti ip/hostname za ta vhost, ko se povezuje� v bota (npr. z uporabo Putty-ja). Ravno tako se spomni na to ob linkanju botov.
231
232    Odtipkaj: 'averse-' ali '-eva-'
233    Kot te bot vpra�a za "nickname", vpi�i svojega (tega, ki si ga vpisal v 'main.c')
234    zatem si nastavi geslo. �e te bot ne vpra�a  �e za party-line
235    geslo (le v main/slave/alt), si �e v botu, sicer vpi�i �e party-line geslo (main/slave/alt).
236    Sedaj lahko za�ne� u�ivati v botu ;-) Prva komanda, ki jo priporo�am, je: '.save'
237
238(5) Osnovna konfiguracija:
239
240  * Crontab:
241
242    �e pri kreiranju konf. datoteke bota uporabite �arodeja odtipkajte preprosto:
243    ./starter --cron botnet-nick
244    in va� bot bo dodan crontabu (za to na stre�niku potrebujete ustrezne privilegije)
245
246  * Presets:
247
248    Presets je paket prednastavljenih nastavitev botneta, ki se ponovno nastavijo vsakih 60 minut ali pa ko se kak�en bot izklju�i iz botneta. Trenutno so vam na voljo 3 vrste prednastavitev:
249
250    * defense:
251               +defense v vseh botih na kanalu.
252               +dkopper v 1/3 botov na kanalu (6kick v defense mode).
253               +fastop v '2/3 botov'.
254               +enforcebans v 1/2 +fastops botih.
255               +alimit v *ENEM* botu (�e je omogo�eno preko huba).
256
257    * freeop:
258               -defense v vseh botih za dolo�en kanal.
259               +enforcebans v 1/2 botov na kanalu.
260               +alimit v *ENEM* botu (�e je omogo�eno preko huba).
261
262    * off:
263               prednastavitve so izklju�ene.  channel settings can be set via
264               .enforce or .rchanset setting. Only +alimit is set
265               on *ONE* bot (if enabled on hub).
266
267    Prednastavitve lahko spremenite s  .preset komando (dostopno botnet adminu).
268    Primer: .preset #test freeop
269
270  * Maxbots:
271
272    Naslednja 'prednastavitev' lahko dolo�i, koliko botov �elite na kanalu.
273    Botnet preverja koliko botov je na kanalu vsakih 10 minut in v primeru join
274    flooda.
275    Primer: .preset #test maxbots 5 - po dolo�enem �asu lahko vidi� le 5 botov na kanalu #test. �e kateri od teh pade dol, pride na kanal #test avtomatsko novi bot (vkolikor ga imate na razpolago).
276
277  * Autolimit:
278
279    Autolimit ('+alimit' nastavitev kanala) prisili bote, da obdr�ijo ali spremenijo limit kanala glede na to koliko obiskovalcev je na kanalu. Autolimit se nastavi s komando .enforce ali .chanset, naprimer:  .enforce #test limits 10:5:0
280      10 - dolo�en �as na koliko minut naj bot preverja in spreminja limit.
281      5 - razlika med dejanskim �tevilom obiskovalcev kanala in trenutno dovoljenim �tevilom
282      0 - spremeba limita ob vsakem prihodu/odhodu na kanal (0 - onemogo�eno, 1 - omogo�eno).
283
284  * Syspass and hubpass:
285
286    Syspass is a system password, which protect all *mass* commands and
287    '.die', '.restart', '.rehash' (and few others) for non-authorized
288    users. If you see a message like this: 'Evangeline: No authorization',
289    it means that syspass is set and users have to authorize to user that
290    commands. To authorize you must use '.syspass' command.
291
292    Hubpass is a password required to enter party-line. If you see a message
293    like: 'Welcome, please enter the partyline password:' it means that
294    hubpass is set and you must enter those password to join party-line.
295
296    Both passwords can be set and disabled on party-line by bot admin via
297    '.bpass' command.
298    Example: .bpass -syspass set encore - will set word 'encore' as syspass.
299             .bpass -hubpass set encore - will set word 'encore' as hubpass.
300             .bpass -syspass off - will disable syspass.
301             .bpass -hubpass off - will disable hubpass.
302
303
304  * Hub notices:
305
306    Other bots can inform hub about important (in my oppinion) events.
307    deops, kicks, mode changes (by non-owner), netsplits, limit or ban
308    override, diverse-flood, reop mode changes, channel without opped
309    bots....
310    It can also send info when connected, disconnected, k-lined or
311    non-authorized on server, and many many more.
312    To see all those messages you have to add +m (msg) flag to your
313    console: .console +m
314
315  * Proxy support:
316
317    Evangeline can connect to irc through anonymous CONNECT and POST proxies.
318    To force bot using such proxy add 'firewall' setting to its config file.
319
320    If you want bot to connect through POST proxy add:
321      firewall "Pproxy_address:proxy_port"
322
323    If you want bot to connect through CONNECT proxy (more popular) add:
324      firewall "Cproxy_address:proxy_port"
325
326(6) Commands:
327
328  *HUBS*
329
330    -Main/Alt main: (some of them work also on Slave and Alt slave)
331
332      (+m) .+channel <channel> - add new <channel> (only on that bot)
333           Example: .+channel #test
334      (+m) .+mhost <user> <host1> [host2] [...] - add multiple hosts to
335           <handle>.
336           Example: .+mhost KrzychuG *!blah@blah.net *!bubu@a.com *!wrr@z.net
337      (+m) .-channel <channel> - remove a <channel> (only on that bot)
338           Example: .-channel #test
339      (+m) .-mhost <user> <host1> [host2] [...] - remove multiple hosts to
340           <handle>.
341           Example: .-mhost KrzychuG *!blah@blah.net *!bubu@a.com *!wrr@z.net
342      (+n) .aa <name> <ip/host> <bots port> <users port> [hubpass] - add alt
343           hub with <name> on <ip/hostname>, <bots port> and <users port>
344	   and [hubpass] if set on alt.
345           Example: .aa alt1 192.168.0.1 34010 34011
346      (+n) .ab <name> <ircname> <ident> <hostname> <ip/host> <port> [-slave <nick>]
347           [ipv6hosts] - add new leaf, where <name> is nick in botnet, <ircname> is
348	   nick on irc, <ident> is ident on irc, <hostname> is hostname on irc,
349	   <ip/host> is ip address needed to link to botnet, <port> is bot listenport,
350	   [-slave <nick>] is slave nickname if you want to link bot to slave,
351	   [ipv6host] is an addidional IPv6 hostname.
352           Example: .ab blah blah krzychug blah.net 192.168.0.1 9999 -slave slave1
353      (+n) .abstop - clear addbot variables if something went bad (some errors like
354           'invalid idx' and such things)
355           Example: .abstop
356      (+n) .addeggdrop <name> <ircname> <ident> <hostname> <ip/host> <port>
357           [-slave <nick>] [ipv6hosts] - add new eggdrop leaf, where <name> is nick
358	   in botnet, <ircname> is nick on irc, <ident> is ident on irc, <hostname>
359	   is hostname on irc, <ip/host> is ip address needed to link to botnet,
360	   <port> is bot listenport, [-slave <nick>] is slave nickname if you want
361	   to link bot to slave, [ipv6host] is an addidional IPv6 hostname.
362           Example: .addeggdrop blah blah krzychug blah.net 192.168.0.1 9999 -slave
363	   slave1
364      (+n) .addstop - clear addbot variables if something went bad (some errors like
365           'invalid idx' and such things)
366           Example: .addstop
367      (-)  .alias <-/alias> - show, add or remove aliases.
368           To add an alias: .alias .name=".cmd $1 $s", ex.: .alias .wii=".whois $1"
369           To remove an alias: .alias .name=
370           To list aliases: .alias
371      (+n) .as <name> <ip/host> <bots port> <users port> [hubpass] - add slave hub with
372           <name> on <ip/hostname>, <bots port> and <users port> and [hubpass] if
373           set on slave.
374           Example: .aa slave1 192.168.0.1 44010 44011
375      (+m) .autoop <on/off> [channel] - turn on/off autoop for all bots(+a flag) global
376           or on [channel]
377           Example: .autoop on #test
378      (+m) .bncjump <bot> <server> [port] [password] - force <bot> connected through bnc
379           to change irc server.
380           .bncjump bot1 krakow.irc.pl 6667
381      (+n) .bpass <-hubpass/-syspass> <set/off> <password> - set or unset hubpass or syspass.
382           To set: .bpass -hubpass set something or .bpass -syspass set something
383           To unset: .bpass -hubpass off or .bpass -syspass off
384      (+m) .channels [channel] - show list of channels along with description and some data
385           (like preset, op count, voice count etc).
386      (+m) .closechan <bot> <channel> - force <bot> to close <channel> (MODE #channel +i).
387           Example: .closechan bot1 #test
388      (+m) .downbots - show unlinked bots.
389      (+m) .eflag <flag(s)> [channel] - add or remove global (or channel) userflag for all
390           bots in botnet.
391           Example: .eflag +K #test
392      (-)  .encrypt <password> - encrypt string, which can be later used for hubpass or syspass.
393           .encrypt text
394      (+m) .enforce [-slave <nick>] <channel> [+/-]<setting(s)> - change channel settings in
395           botnet.
396           Example: .enforce -slave slave1 <channel> -enforcebans - will remove enforcebans from
397           #channel on all bots linked to slave1.
398           Example: .enforce * -enforcebans - will remove enforcebans from all hub channels and
399	   all bots in botnet.
400      (+m) .enforceflag <flag(s)> [channel] - add or remove global (or channel) userflag for all
401           bots in botnet.
402           Example: .enforceflag +K #test
403      (-)  .help [command] - very usefull command :)
404           Example: .help enforce
405      (+m) .list <c/i/n/d/p/s/u/v> [bot] - show some info about bots:
406           c - channels on which bots are opped
407           i - inactive channels
408           n - channels on which bots are not opped
409           d - disconnected bots
410           p - ping between bots
411           s - bot's server
412           u - bot's uptime
413           v - bots binary and tcl version
414      (+m) .mclear [-slave <nick>] <mode/server/help/all> - clean specific type of queue.
415           .mclear server
416      (+m) .mcycle [-slave <nick>] <time> <channel> - force bots to leave channel for
417           some <time> in seconds
418           Example: .mcycle 60 #test
419      (+n) .mdie [-slave <nick>] - botnet die ;)
420      (+n) .mdump [-slave <nick>] <data> - botnet dump.
421           Example: .mdump PRIVMSG #test :blah
422      (+n) .mexport [-slave <nick>] - mass userfile export.
423      (+n) .mflood [-slave <nick>] <user> <type> - flood <user> on IRC with choosen flood <type>.
424           Example: .mflood blah version
425      (+m) .mjoin [-ajf <time>/-slave <nick>] <channel> [server] [key] - add channel to botnet.
426           To join with anty-join-flood: .mjoin -ajf 15 #test - will join bot every 15 seconds.
427      (+n) .mjump <server> [port] [password] - botnet jump (really needed?).
428           Example: .mjump krakow.irc.pl
429      (+n) .mkick <all/ops> <channel> [6kick] - kick <all> or <ops> from <channel>. [6kick] is
430           dangerous option.
431           Example: .mkick all #test
432      (+m) .mmsg [-slave <nick>] <user/channel> <msg> - send message from all bots to <user>
433           or <channel>.
434           Example: .mmsg #test blah blah
435      (+m) .modenforce [-slave <nick>] <channel> [+/-]<chanmode(s)> - set chanmodes which
436           have to be kept on <channel>.
437           Example: .modenforce #test +nt-k
438      (+m) .mpart [-slave <nick>] <channel> [server] - botnet part
439           Example: .mpart #test
440      (+n) .mrehash [-slave <nick>] - botnet rehash
441      (+n) .mrestart [-slave <nick>] - botnet restart
442      (+n) .mupdate [-m <mirror number>] [-force] - botnet tcl update.
443      (+m) .netchanmode [-slave <nick>] <channel> [+/-]<chanmode(s)> - set chanmodes which
444           have to be kept on <channel>.
445           Example: .netchanmode #test +nt-k
446      (+m) .netchanset [-slave <nick>] <channel> [+/-]<setting(s)> - change channel settings in
447           botnet.
448           Example: .netchanset -slave slave1 <channel> -enforcebans - will remove enforcebans from
449           #channel on all bots linked to slave1.
450           Example: .netchanset * -enforcebans - will remove enforcebans from all hub channels
451	   and all bots in botnet.
452      (+m) .netclear [-slave <nick>] <mode/server/help/all> - clean specific type of queue.
453           .netclear mode
454      (+m) .netcycle [-slave <nick>] <time> <channel> - force bots to leave channel for
455           some <time> in seconds
456           Example: .netcycle 60 #test
457      (+n) .netdie [-slave <nick>] - botnet die ;)
458      (+n) .netdump [-slave <nick>] <data> - botnet dump.
459           Example: .netdump PRIVMSG #test :blah
460      (+n) .netexport [-slave <nick>] - mass userfile export.
461      (+m) .netflag <flag(s)> [channel] - add or remove global (or channel) userflag for all
462           bots in botnet.
463           Example: .netflag +K #test
464      (+n) .netflood [-slave <nick>] <user> <type> - flood <user> on IRC with choosen
465           flood <type>.
466           Example: .netflood blah version
467      (+n) .netsend (more data on .netsend) - send file to bot/group of bots.
468           Example: .netsend bot1 cfg/settings
469      (+m) .nnick <-all/bot> - force bot or all bots to switch to normal nicks.
470      (+m) .openchan <bot> <channel> - open channel (MODE #channel -i).
471           Example: .openchan bot1 #test
472      (+n) .optimize [channel] - optimize channel settings for channel or all channels in
473           botnet.
474           Example: .optimize #test
475      (+n) .preset <channel> <preset/off> - set or disable presets.
476           Example: .preset #channel defense or .preset #channel maxbots 10
477      (+n) .rbotattr <bot> <target bot> [+/-]<botflag(s)> - set/remove botflag from <target bot> on
478           <bot>
479           Example: .rbotattr bot1 hub +p
480      (+n) .rchaddr <bot> <target bot> <address> <bots port> [users port] - change <target bot>
481           address on <bot>.
482           Example: .rchaddr bot1 hub 192.168.0.1 24010 24011
483      (+m) .rchanmode <bot> <channel> [+/-]<chanmode(s)> - change chanmode for <channel> on <bot>.
484           Export: .rchanmode bot1 #test +nt-i
485      (+m) .rchanset <bot> <channel> [+/-]<settings> - change channel setting for <channel> on
486           <bot>.
487           Example: .rchanset bot1 #test -enforcebans
488      (+n) .rchattr <bot/*> <handle> [+/-]<flags> - change userflags for <handle> on <bot> or
489           all bots.
490           Example: .rchattr bot1 main +H or .rchattr * main +H
491      (+m) .rclear <bot> <mode/server/help/all> - clear queue on <bot>.
492           Example: .rclear bot1 mode
493      (+n) .rdeop <-all/bot> <nick> [channel] - deop <nick> on [channel] or all channels by
494           all bots or one <bot>.
495           Example: .rdeop bot1 KrzychuG #test
496      (+n) .rdie <bot> - kill bot ;)
497           Example: .rdie bot1
498      (+n) .rdop <-all/bot> <nick> [channel] - deop <nick> on [channel] or all channels by all
499           bots or one <bot>.
500           Example: .rdop bot1 KrzychuG #test
501      (+n) .rdump <bot> <data> - bot dump.
502           Example: .rdump bot1 MODE #test +o bot2
503      (+n) .rexport <bot> - force <bot> to export userfile.
504           Export: .rexport bot1
505      (+m) .rmode <-all/bot> <channel> <data> - force <bot> or all bots to enforce mode (<data>) on
506           <channel>.
507           Example: .rmode bot1 #test +o blah
508      (+m) .rmsg <-all/bot> <user/channel> <msg> - <bot> or all bots say <msg> to <user> or <channel>.
509           Example: .rmsg -all #test blah blah
510      (+n) .rnick <-all/bot> - force <bot> or all bots to change their nick(s) to random generated.
511      (+m) .rop <-all/bot> <nick> [channel] - force <bot> or all bots to op <nick> on <channel> or
512           on all channels.
513           Example: .rop bot1 KrzychuG #test
514      (+n) .rpart  <bot>  <channel> - force <bot> to part from <channel>.
515           Example: .rpart bot1 #test
516      (+n) .rrehash <bot> - force <bot> to rehash.
517      (+n) .rrestart <bot> - force <bot> to restart.
518      (+n) .rupdate <bot> [-m <mirror number>] [-force] - force bot update tcl.
519      (+m) .savenet - save chanlist and userlist on all bots.
520      (+m) .syspass <password> - authorize.
521      (+m) .tkm <channel> [6kick] - takeover <channel> (kick opped users without + userflag).
522           Example: .tkm #test
523      (+n) .tkmjoin [-slave <nick>/-auto] <channel> [6kick] [server] [key] - force botnet to join
524           channel and prepare to takeover (-auto option will set proper channel settings on proper
525           bots).
526           Example: .tkmjoin -auto #test
527      (-)  .unalias <alias> - remove an alias.
528           Example: .unalias .blah
529      (+n) .update [-m <mirror number>] [-force] - update current bot tcl script.
530      (+m) .users - show some info about users.
531      (+m) .verify - show all handles without password.
532
533(7) Channel settings:
534
535  All of those setting can be changed via '.chanset' command or '.enforce'
536  and '.rchanset' from hub.
537
538  *FLAGS?*
539    idle-kick 0
540      This setting will make the bot check every minute for idle users. Set
541      this to 0 to disable idle check.
542
543    stopnethack-mode 0
544      This setting will make the bot kick anyone who enters the channel
545      with serverops. There are seven different modes for this settings:
546
547         0 turn off
548         1 isoptest (allow serverop if registered op)
549         2 wasoptest (allow serverop if user had op before split)
550         3 allow serverop if isop or wasop
551         4 allow serverop if isop and wasop.
552         5 If the channel is -defense, see stopnethack-mode 3
553           If the channel is +defense, see stopnethack-mode 1
554         6 If the channel is -defense, see stopnethack-mode 2
555           If the channel is +defense, see stopnethack-mode 4
556
557    revenge-mode 0
558      This settings defines how the bot should punish bad users when
559      revenging. There are four possible settings:
560          0 Deop the user.
561          1 Deop the user and give them the +d flag for the channel.
562          2 Deop the user, give them the +d flag for the channel, and
563            kick them.
564          3 Deop the user, give them the +d flag for the channel, kick,
565            and ban them.
566
567    ban-time 120
568      Set here how long temporary bans will last (in minutes). If you
569      set this setting to 0, the bot will never remove them.
570
571    exempt-time 60
572      Set here how long temporary exempts will last (in minutes). If
573      you set this setting to 0, the bot will never remove them. The bot will
574      check the exempts every X minutes, but will not remove the exempt if a
575      ban is set on the channel that matches that exempt. Once the ban is
576      removed, then the exempt will be removed the next time the bot checks.
577
578    invite-time 60
579      Set here how long temporary invites will last (in minutes). If you set
580      this setting to 0, the bot will never remove them. The bot will check
581      the invites every X minutes, but will not remove the invite if a
582      channel is set to +i. Once the channel is -i then the invite will be
583      removed the next time the bot checks.
584
585    aop-delay (minimum:maximum)
586      This is used for autoop, autohalfop, autovoice. If an op or voice joins
587      a channel while another op or voice is pending, the bot will attempt to
588      put both modes on one line.
589
590        aop-delay 0    No delay is used.
591        aop-delay X    An X second delay is used.
592        aop-delay X:Y  A random delay between X and Y is used.
593
594
595    flood-chan 10:60
596      Set here how many channel messages in how many seconds from one
597      host constitutes a flood. Setting this to 0 or 0:0 disables text
598      flood protection for the channel.
599
600    flood-deop 3:10
601      Set here how many deops in how many seconds from one host constitutes
602      a flood. Setting this to 0 or 0:0 disables deop flood protection for
603      the channel.
604
605    flood-kick 3:10
606      Set here how many kicks in how many seconds from one host constitutes
607      a flood. Setting this to 0 or 0:0 disables kick flood protection for
608      the channel.
609
610    flood-join 5:60
611      Set here how many joins in how many seconds from one host constitutes
612      a flood. Setting this to 0 or 0:0 disables join flood protection for
613      the channel.
614
615    flood-ctcp 3:60
616      Set here how many channel ctcps in how many seconds from one host
617      constitutes a flood. Setting this to 0 or 0:0 disables ctcp flood
618      protection for the channel.
619
620    flood-nick 5:60
621      Set here how many nick changes in how many seconds from one host
622      constitutes a flood. Setting this to 0 or 0:0 disables nick flood
623      protection for the channel.
624
625  *CHANSETS*
626
627    enforcebans
628      When a ban is set, kick people who are on the channel and match
629      the ban? (Should be set only on 1/3 of all channel bots)
630
631    dynamicbans
632       Only activate bans on the channel when necessary? This keeps the
633       channel's ban list from getting excessively long. The bot still
634       remembers every ban, but it only activates a ban on the channel
635       when it sees someone join who matches that ban.
636
637    userbans
638       Allow bans to be made by users directly? If turned off, the bot will
639       require all bans to be made through the bot's console.
640
641    dynamicexempts
642       Only activate exempts on the channel when necessary? This keeps the
643       channel's exempt list from getting excessively long. The bot still
644       remembers every exempt, but it only activates a exempt on the channel
645       when it sees a ban set that matches the exempt. The exempt remains
646       active on the channel for as long as the ban is still active.
647
648    userexempts
649       Allow exempts to be made by users directly? If turned off, the bot will
650       require all exempts to be made through the bot's console.
651
652    dynamicinvites
653       Only activate invites on the channel when necessary? This keeps the
654       channel's invite list from getting excessively long. The bot still
655       remembers every invite, but the invites are only activated when the
656       channel is set to invite only and a user joins after requesting an
657       invite. Once set, the invite remains until the channel goes to -i.
658
659    userinvites
660       Allow invites to be made by users directly? If turned off, the bot
661       will require all invites to be made through the bot's console.
662
663    autoop
664       Op users with the +o flag as soon as they join the channel?
665       This is insecure and not recommended.
666
667    defense
668       Only let users with the proper flagf to op people on channel.
669
670    greet
671       Say a user's info line when they join the channel?
672
673    protectops
674       Reop a user with the +o flag if they get deopped?
675
676    protectfriends
677       Reop a user with the +f flag if they get deopped?
678
679    revenge
680       Remember people who deop/kick/ban the bot, valid ops, or friends
681       and punish them? Users with the +f flag are exempt from revenge.
682
683    revengebot
684       This is similar to to the 'revenge' option, but it only triggers
685       if a bot gets deopped, kicked or banned.
686
687    autovoice
688       Voice users with the +v flag when they join the channel?
689
690    secret
691       Prevent this channel from being listed on the botnet by
692       non-owners.
693
694    shared
695       Share channel-related user info for this channel?
696
697    cycle
698       Cycle the channel when it has no ops?
699
700   dontkickops
701       Do you want the bot not to be able to kick users who have the +o
702       flag, letting them kick-flood for instance to protect the channel
703       against clone attacks?
704
705    inactive
706       This prevents the bot from joining the channel (or makes it leave the
707        channel if it is already there). It can be useful to make the bot
708        leave a channel without losing its settings, channel-specific user
709        flags, channel bans, and without affecting sharing.
710
711    nodesynch
712        Allow non-ops to perform channel modes? This can stop the bot from
713        fighting with services such as ChanServ, or from kicking IRCops when
714        setting channel modes without having ops.
715
716    dkopper
717        Special version of +defense mode, which react on 4op or 5op.
718        Should be set on 1/3 of all channel bots (bot with +dkopper
719        won't react on 1op, 2op or 3op).
720
721    takeover
722        Lame takeover mode ;) When bot got op, it tries to op rest
723        of bots and take channel.
724
725    fastkick
726        6kick for +takeover mode.
727
728   fastop
729        5op for +takeover mode and for BotnetOP (should be turned on
730        on 1/3 of all channel bots).
731
732(8) Linking bots:
733
734  *MANUALLY*
735
736    *HUBS*
737
738      - Main alt: ( h - on main hub, a - on alt, r - on bots linked to main )
739        h) .+bot alt_nick alt_ip:bots_port/users_port
740        h) .botattr alt_nick +gs
741        a) .+bot main_nick main_ip:bots_port/users_port
742        a) .botattr main_nick +ghp
743        a) .chattr main_nick +H
744        a) .link main_nick
745        for every bot linked to main hub:
746        a) .botattr bot +gs
747        r) .botattr alt_nick +agp
748
749      - Slave alt: (h - on main hub, on alt, r - on bots linked to slave hub)
750        h) .+bot alt_nick alt_ip:bots_port/users_port
751        h) .botattr alt_nick +gs
752        a) .+bot main_nick main_ip:bots_port/users_port
753        a) .botattr main_nick +ghp
754        a) .chattr main_nick +H
755        a) .link main_nick
756        for every bot linked to slave hub:
757        a) .botattr bot +gs
758        r) .botattr alt_nick +agp
759
760      - Slave (h - on main hub, s - on slave hub)
761        h) .+bot slave_nick slave_ip:bots_port/users_port
762        h) .botattr slave_nick +gs
763        s) .+bot main_nick main_ip:bots_port/users_port
764        s) .botattr main_nick +ghp
765        s) .chattr main_nick +H
766        s) .link main_nick
767
768    *LEAFS*
769
770      - To Main Hub: (h - on main hub, l - on leaf)
771        h) .+bot leaf_nick leaf_ip:port
772        h) .botattr leaf_nick +gs
773        h) .chattr leaf_nick +foK
774        h) .+host leaf_hostname
775        l) .+bot main_nick main_ip:bots_port/users_port
776        l) .botattr main_nick +ghp
777        l) .chattr main_nick +H
778        l) .link main_nick
779        If you want to add alt, type: (a - on alt)
780        a) .botattr leaf_nick +gs
781        l) .botattr alt_nick +agp
782
783      - To Slave Hub: (h - on main hub, s - on slave hub, l - on leaf)
784        h) .+bot leaf_nick leaf_Ip:port
785        h) .chattr leaf_nick +foK
786        h) .+host leaf_nick leaf_hostname
787        s) .botattr leaf_nick +gs
788        l) .+bot slave_nick slave_ip:bots_port/users_port
789        l) .botattr slave_nick +ghp
790        l) .link slave_nick
791        Wait for userfile from slave_nick
792        l) .botattr main_nick +gp
793        l) .chattr main_nick +H
794        If you want to add alt, type: (a - on alt)
795        a) .botattr leaf_nick +gs
796        l) .botattr alt_nick +agp
797
798  *ADDBOT*
799
800    *HUBS*
801
802      - Alt hub:
803        .aa <name> <ip/host> <port bots> <port users> [hubpass]
804          <name> - alt hub's botnet-nick
805          <ip/host> - alt hub's address
806          <port bots> - alt hub's bots-listenport
807          <port users> - alt hub's users-listenport
808          [hubpass] - if you set hubpass on althub, type it here
809        Rest must be done manually :(
810
811      - Slave hub:
812        .as <name> <ip/host> <port bots> <port users> [hubpass]
813          <name> - alt hub's botnet-nick
814          <ip/host> - alt hub's address
815          <port bots> - alt hub's bots-listenport
816          <port users> - alt hub's users-listenport
817          [hubpass] - if you set hubpass on althub, type it here
818
819      - Leaf (IPv4/BNC) to main hub:
820        .ab <name> <ircname> <ident> <hostname> <ip/host> <port>
821          <name> - leaf's botnet-nick
822          <ircname> - leaf's nick on irc
823          <ident> - leaf's ident (string between ! and @ in hostname)
824          <hostname> - hostname on irc (for example evangeline.b3ta.org)
825          <ip/host> - leaf's address
826          <port> - leaf's port
827        Example: .ab blah blah krzychug evangeline.b3ta.org 192.168.0.1 9999
828
829      - Leaf (IPv6) to main hub:
830        .ab <name> <ircname> <ident> <hostname> <ip/host> <port> [ipv6host]
831          <name> - leaf's botnet-nick
832          <ircname> - leaf's nick on irc
833          <ident> - leaf's ident (string between ! and @ in hostname)
834          <hostname> - hostname on irc (for example evangeline.b3ta.org)
835          <ip/host> - leaf's IPv4 address
836          <port> - leaf's port
837          [ipv6host] - leaf's IPv6 IP address
838        Example: .ab blah blah krzychug evangeline.b3ta.org 192.168.0.1
839                  9999 2009:888:1524:10:0:0:0:0
840
841      - Leaf (IPv4/BNC) to slave hub:
842        .ab <name> <ircname> <ident> <hostname> <ip/host> <port>
843         [-slave <nick>]
844          <name> - leaf's botnet-nick
845          <ircname> - leaf's nick on irc
846          <ident> - leaf's ident (string between ! and @ in hostname)
847          <hostname> - hostname on irc (for example evangeline.b3ta.org)
848          <ip/host> - leaf's address
849          <port> - leaf's port
850          [-slave <nick>] - slave's botnet-nick
851          Example: .ab blah blah krzychug evangeline.b3ta.org
852                    192.168.0.1 9999 -slave slave1
853
854      - Leaf (IPv6) to main hub:
855        .ab <name> <ircname> <ident> <hostname> <ip/host> <port> [ipv6host]
856          <name> - leaf's botnet-nick
857          <ircname> - leaf's nick on irc
858          <ident> - leaf's ident (string between ! and @ in hostname)
859          <hostname> - hostname on irc (for example evangeline.b3ta.org)
860          <ip/host> - leaf's IPv4 address
861          <port> - leaf's port
862          [-slave <nick>] - slave's botnet-nick
863          [ipv6host] - leaf's IPv6 IP address
864        Example: .ab blah blah krzychug evangeline.b3ta.org 192.168.0.1
865                  9999 -slave slave1 2009:888:1524:10:0:0:0:0
866
867(10) Frequently asked questions (FAQ):
868
869  * I get 'ld-elf.so.1: Shared object 'libtcl84.so.1' not found or
870    'error in loading shared libraries libtcl8.4.so: cannot open shared
871    object file: No such file or directory' while starting the bot (or
872    similiar error):
873
874    It looks that bot was compiled with one Tcl version and tries to load
875    another. Maybe administrator upgraded Tcl and didn't tell you. You need
876    to recompile bot.
877
878    Maybe while administator upgrading Tcl, he/she didn't clean the old
879    version of Tcl or installed it into another directory. Tell your admin
880    about that :)
881
882    You might also try:
883      ./configure --with-tcllib=<path_to_tcl_lib>
884                  --with-tclinc=<path_to_tcl.h>
885
886    For example:
887      ./configure --with-tcllib=/usr/local/tcl8.4.6/lib/libtcl.so
888                  --with-tclinc=/usr/local/tcl8.4.6/include/tcl.h
889
890    This will tell configure where to look for the Tcl files.
891
892    Try looking for libtcl by:
893      ls /usr/lib/libtcl*
894      ls /usr/local/lib/libtcl*
895
896    Try looking for tcl.h by:
897      ls /usr/include/tcl.h
898      ls /usr/local/include/tcl.h
899
900    If everything else fails, try to install Tcl to your home dir ;)
901
902  * Installing Tcl in home directory:
903
904    Download newest version of tcl (check links section), then unpack
905    and go to unix/ directory. Configure, compile and install Tcl in
906    your home directory in tcl directory (if you're using bash you can
907    use $HOME variable):
908    ./configure --prefix=$HOME/tcl
909    make
910    make install
911
912    Now you should have Tcl libraries and tclsh in $HOME/tcl directory.
913    Add $HOME/tcl/bin to your PATH variable (in bash:
914    export PATH="$PATH:$HOME/tcl/bin") and LD_LIBRARY_PATH to $HOME/tcl/lib
915    (in bash: export LD_LIBRARY_PATH="$HOME/tcl/lib").
916
917    NOTE: You should add your new PATH and LD_LIBRARY_PATH in shell
918          startup files (~/.bashrc in bash), so it should work next time too.
919
920    Bot should now compile and start without problems.
921
922    NOTE: If you installed Tcl in diffrent directory than: $HOME/tcl add
923          --with-tclinc=/path/to/tcl.h --with-tcllib=/path/to/libtcl.so
924          (or similiar), For example:
925          --with-tclinc=$HOME/tcl8.4/include/tcl.h
926          --with-tcllib=$HOME/tcl8.4/lib/libtcl.so
927
928  * +user - i can't add new user(s)
929    You have to be admin, permowner or adder. First two have to be set
930    before compilation in src/main.c ('char admin[121]' and
931    'char owner[121]'), third is an user with +r flag. Flag can only be
932    added by admin or permowner.
933
934  * Kick reasons - how to change?
935    It's preety simple. Before compilation open modules/irc.mod/chaos.c in
936    editor and find 'static const char *kreasons[]'. Below you've got all
937    my reasons, which you can change or remove (enter one: '"",').
938    If you also want to change 'Evangeline' string added before kick reason,
939    find and change it 'char outputr[120]'
940
941  * How can i load my tcl scripts?
942    There are 2 methods to load user tcl scripts. Both can be enabled
943    before compilatio in src/main.c:
944
945   -  open src/main.c and find 'char Tcl2Load[512]' and add path to
946       your tcl script, for example:
947       char Tcl2Load[512] = "scripts/mc.limit.tcl scripts/blah.tcl"
948       (scripts/ directory must be created by user).
949       You cannot change (add or remove) loaded scripts after compilation.
950       Every bot started from that directory will load same tcl scripts.
951
952   - open src/main.c and find 'char Tcl2Load[512] = "";'. Put '//'  at
953     the same beggining of that line, then find '//char Tcl2Load[121]'
954     and remove '//' from that line. This will enable loader. loader.tcl
955     is available in .data/.scripts/ directory. This file is very easy to
956     edit:
957
958     array set Tcl2Load {
959       ipv4 "scripts/tcl1.tcl scripts/tcl2.tcl"
960       ipv6 "scripts/tcl2.tcl"
961       bnc  "scripts/tcl3.tcl .data/.scripts/tcl55.tcl"
962     } ;# Tcl2Load
963
964     For example, if you want bot with 'mybot' as botnet-nick to
965     load 'scripts/mc.limit.tcl' just add:
966
967     array set Tcl2Load {
968       ipv4 "scripts/tcl1.tcl scripts/tcl2.tcl"
969       ipv6 "scripts/tcl2.tcl"
970       bnc  "scripts/tcl3.tcl .data/.scripts/tcl55.tcl"
971       mybot "scripts/mc.limit.tcl"
972     } ;# Tcl2Load
973
974  * Problems with start fresh bot, segmentation fault.
975    If you see a message like:
976
977      * Last context: tclhash.c/215 []
978      * Please REPORT this BUG!
979      * Check doc/BUG-REPORT on how to do so.
980      * Wrote DEBUG
981      * SEGMENT VIOLATION -- CRASHING!
982      Segmentation fault (core dumped)
983
984    You can try to replace binary/tbcload.so file with 1.4 version
985    (or 1.3 version if it won't help). If you still have that error
986    you can try to compile tbcload 1.4 on that account.
987
988    Precompiled tbcload libraries can be found here:
989      http://www.averse.piasta.pl/list/ in libs/tbcload directory
990    Tbcload 1.4 source code can be found here:
991      http://www.averse.piasta.pl/_data/tcl-sources/tbcload.tar.gz
992
993  * My bot QUIT irc with reason: 'Segmentation fault!':
994    Probably you found a bug. Make sure your bot dumped core file
995    (file should be named core, code.PIDNUMBER or evangeline-VERSION.core).
996    Load core file using gdb debugger (gdb ./evangeline core) and type
997    'bt'. Post whole info at forum (www.averse.piasta.pl/forums). Logs
998    and/r some explanation what happend before bot crashed is also welcome.
999
1000  * Non-working botnet - Linked bots doesn't respond as "botnet"
1001    To use commands like .mjoin, .enforce (.netchanset) etc you have to
1002    compile 2 packages: msa (main/slave/alt hubs) and normal (v4/v6/bnc).
1003    Bots from msa package doesn't connect to irc (there is no need to) but
1004    contains all useful commands and options to manage whole botnet.
1005    Bots from normal package work as normal bots connectiong to irc and
1006    operating there. They have to be linked to bot from msa package.
1007
1008  * Failed connection; aborted userfile transfer
1009    This anoying problem depends on server. If you've got something like
1010    this, add to you hub config file 'my-ip "ip_address"' and eventually
1011    'my-hostname "hostname_for_above_ip"'. This should help.
1012
1013  * Upgrade from previous versions:
1014
1015    - AversE:
1016
1017      *NOTE:* If you've got AversE v1.7 or earlier, you have to add
1018              '-telnet!*@*' mask to one of your users (should be you).
1019      *NOTE:* If you've got AversE v1.8-1.8.2 you can't do an upgrade.
1020      *NOTE:* If you've got AversE v1.8.6 you don't have to modify
1021              userfile. Just move/copy userfile and chanfile to
1022              .data/.bdata and start Evangeline with '-u' param
1023              (only v4/v6/bnc). If you want to import userfile on hub
1024              copy AversE userfile to evangeline-msa/ and type
1025              '.import filename.uf'.
1026
1027    - Evangeline:
1028      *OPOMBA:* �e nadgrajuje� Evangeline 0.9 ali 1.0... skratka starej�ega od
1029              RC3, posku�aj izvoziti listo uporabnikov (userfile) s komando '.export'
1030              (ali .mexport). In�taliraj novega bota in uporabi v njem '.import' komando.
1031      *OPOMBA:* �e nadgrajuje� Evangeline 1.0 RC3 ali novej�ega in si ob in�talaciji uporabil '--custom-key' samo odpakiraj novo verzijo v isti direktorij in rein�taliraj (./configure --custom-key;make) z istim kodirnim kju�em. �e si uporabil avtomatsko generiran kodirni klju�, mora� izvoziti listo uporabnikov (.export/.mexport) in jo potem ponovno uvoziti v novega bota (.import).
1032
1033(10) Pomo�:
1034  Pomo� lahko poi��ete na AversE/Evangeline spletni strani (glej povezave!).
1035  �e ne najdete odgovora na va�e vpra�anje/te�avo lahko poskusite na #evangeline@IRCnet kanalu.
1036
1037
1038(11) Povezave:
1039  Evangeline website: http://www.averse.piasta.pl
1040  Eggdrop website: http://www.eggheads.org
1041  Eggdrop help: http://www.egghelp.org
1042  Tcl download: ftp://tcl.activestate.com/pub/tcl and
1043                ftp://ftp.eggheads.org/pub/tcl
1044
1045((12) O meni:
1046  Moj e-mail: arcain@evangeline.x86.cl
1047  Moj vzdevek (nickname): KrzychuG, dosegljiv na IRC-u (#evangeline@IRCnet).
1048
1049
1050(13) Pozdravi in zahvale (po abecednem vrstnem redu):
1051  assassin: zaradi dobrih idej, bug poro�il, pomo�i/podpore (na kanalu in forumu) in posoja botneta za par mesecev ;)
1052  Bogas: zaradi dobrih idej, testiranja, bug poro�il in pomo�i (na kanalu in forumu)
1053  Dafcio: zaradi nekaterih zanimivih idej, testiranja, bug poro�il in pomo�i (na kanalu)
1054  Jorhn: zaradi shell accounta, testiranja, bug poro�il in nekaj pomo�i (na kanalu)
1055
1056  Ostala #evangeline ekipa in vsi, ki uporabljajo AversE/Evangeline bote.
1057
1058---------------------------------- OPOMBA -------------------------------------
1059  Deli tega dokumenta so uporabljeni iz Eggdrop's Readme.
1060----------------------------------------------------------------------------
1061____________________________________________________________________________
1062# Copyright (C) 1999 - 2005 Eggheads Development Team
1063# Copyright (C) 2001 - 2005 Arcain/[Xp-AvR]
1064
1065
1066