eggdrop - Ghostdog.pl

Transkrypt

eggdrop - Ghostdog.pl
EGGDROP
Jak tylko jakiś master doda Cię do bota lub właśnie odpaliłeś eggdropa musisz sobie ustalić hasło.
Zamesguj do bota i napisz:
hello
pass haslo
Słowo hello jest obowiązkowe wtedy gdy po pierwszym uruchomieniu bota chcesz aby bot dopisał Cię do
swojej userlisty jako ownera. Słowo to może być zastąpione dowolnym innym słowem ustalonym w pliku
konfiguracyjnym bota poprzez instrukcje:
unbind msg - hello *msg:hello
bind msg - nowe_słowo *msg:hello
Natomiast zamiast wyrazu haslo wstaw swoje jakieś wymyślone, które odtąd będzie twoim hasłem
dostępu do bota. Po tej komendzie bot powinien odpowiedzieć notice'm "Password set to: 'haslo'"
Teraz możesz śmiało się połączyć z botem za pomocą DCC chat. (Ważne: Jeżeli kożystasz z jakiegoś
proxy lub tunelu ssh możesz mieć problemy) Po uzyskaniu połączenia wpisz swoje hasło. Gdy bot wypisze
pozdrowienie i tak zwany motd czyli "Message of the day" możesz wydawać komendy. Wszystko co
napiszesz bez kropki będzie traktowane jako twój tekst do Party line i zobaczą go inni, którzy są w danej
chwili podłączeni do bota lub botów ze sobą połączonych. Natomiast wszystkie komendy z kropką to
komendy do bota do którego jesteś podłączony.
Podstawowe polecenia dla operatorów:
.help polecenie - wyświetla krótką pomoc dotyczącą polecenia.
.whom - podaje listę osób aktualnie podłączonych do sieci botów.
.whois nick - wyświetla wszystkie informacje na temat usera nick zapisane w bocie (atrybuty, hosty...).
.console #channel - ustawia przeznaczenie komend dotyczących kanałów.
.op nick - daje opa osobie nick na bieżącym kanale ustawionym przez .console .
.op nick #channel - daje opa osobie nick na kanale #channel .
.kick nick powod - wykopuje osobę o nicku nick z kanału ustalonego wcześniej przez .console z powodu
powod .
.say jakiś_text - Wysyła podany tekst na kanał ustalony wcześniej przez .console .
.kickban nick powod - podobnie jak .kick tyle, że ofiara jest banowana. Ban postawiony za pomocą tego
polecenia zostanie automatycznie zdjęty po 2 godzinach.
.info #channel jakiś_text - Ustawia tekst witający na kanale #channel tzn. gdy wejdziesz na ten kanał
bot powita cię tym tekstem. Działa tylko na kanale z atrybutem +greet .
.+ban *!lamer@*glupi.host.pl #channel za glupie texty - Ustawia bana na powyższy host na kanale
#channel z powodu za glupie texty.
.-exempt *[email protected] - Zdejmuje wyjątek od bana na powyższy host na kanale ustawiomnym
wcześniej przez .console .
.note user Jakiś tekst - Zostawienie wiadomości w bocie danemu userowi.
.notes read - Odczytanie swoich wiadomości.
.notes erase all - Usunięcie wszystkich swoich wiadomości.
.echo off - Wyłączenie tzw. echa komend wydawanych do bota na dcc chat.
Podstawowe polecenia dla masterów i ownerów (w przykładach):
.match * - pokazuje listę wszystkich userów wpisanych w bocie wraz ze wszystkimi ich atrybutami.
.match +o - wyświetla userów mających globalną flagę +o.
.match *agh.edu.pl - a tu userów, których jeden z hostów pasuje do podanego wzorca.
.channel #channel - pokazuje listę osób wraz z kojarzonymi im userami w bocie na kanale #channel.
.chattr nick +o - nadaje userowi nick globalną flagę opa.
.chattr nick +f #channel - nadaje userowi nick flagę friend na kanale #channel.
.+user nick *!lamer@*szczecin.ppp.tpnet.pl - dodaje nowego usera nick z podaną maską hostu .
.-host nick *!zeus@*warszawa.ppp.tpnet.pl - kasuje podany host userowi nick.
.adduser nick - dodaje nowego usera nick przy czym bot szuka na wszystkich kanałach osoby o tym nicku
i gdy znajdzie dodaje jego maskę hostu.
.-user nick - usuwa danego osobnika.
.status - wyświetla wszystkie ważne informacje na temat bota.
.chpass nick hasło - ustala osobie nick nowe hasło.
.chinfo nick #channel jakiś_text - modyfikuje osobie nick na kanale #channel tekst powitalny. Dotyczy
tylko kanałów z atrybutem +greet .
.dump mode #channel +t - wykonuje dowolne polecenie przekazane irc-serwerowi. Tutaj nadaje kanałowi
#channel atrybut +t. (dla ownerów)
.die - powoduje przerwanie działania bota. (dla ownerów)
.traffic - Wyświetla statystyki ruchu. (od wersji 1.5.0)
Bany, wyjątki i zaproszenia
Na początek co jest co:
+b - ban - to po prostu zablokowanie komuś wejścia na kanał. Jeżeli ustawimy na ircu /mode #channel
+b *!*@ds12.pwr.wroc.pl , a następnie wykopiemy osobę pasująca do tego hosta to nie będzie mogła
wejść.
+e - exemption - Czyli wyjątek od banów. Jeżeli ustawimy na ircu /mode #channel +e
*!*@ds14.agh.edu.pl ,a następnie zabanujemy i wykopiemy osobę pasująca do tego hosta to pomimo
banu bez problemu wejdzie.
+I - invitation - Są to zaproszenia na host. Dla przykładu osoba z pasującym hostem do ustawienia +I
nie potrzebuje invita aby wejść na kanał, który w danej chwili jest tylko dla zaproszonych czyli invitedonly (+i).
Ban (+b), wyjątek (+e) czy zaproszenie (+I) ma postać nick!ident@host np:
alfred!*glupi@*krosno.tpnet.pl
*al*!*glupi@*krosno.tpnet.pl
*!*chory@*warszawa.tpnet.pl
*!*klop@*agh.edu.pl
W eggdropie można zobaczyć listę banów, wyjątków i zaproszeń za pomocą polecenia:
.bans all
.exempts all (od wersji 1.3.28)
.invites all (od wersji 1.3.28)
Bany ogólnie można podzielić na 3 grupy:
a) Globalne - Bany te dotyczą wszystkich kanałów, na których stoi bot. Stawiać może je tylko master
poleceniem .+ban nick!ident@host jakis_powod. Bany takie można usunąć tylko i wyłącznie z bota
poleceniem .-ban nr_banu
nr_banu można uzyskać po wydaniu polecenia .bans all
b) Specyficzne dla danego kanału - Bany te dotyczą jednego kanału. Stawiać może je każdy mający flagę
+o poleceniem .+ban nick!ident@host #channel jakis_powod. Te bany również można usunąć tylko i
wyłącznie z bota poleceniem .-ban nr_banu
c) Wszystkie pozostałe bany, które nie były zakładane przy udziale bota. Można je ściągnąć również bez
pomocy bota lub poleceniem .-ban nr_banu
Analogicznie można podzielić wyjątki i zaproszenia. Przy czym komendą do zakładania wyjątku jest
.+exempt, a zaproszenia .+invite
Eggdrop umożliwia również stawianie banów czasowych, które zostaną automatycznie usunięte po
określonym czasie. Na przykład komendą +ban *[email protected] #channel %2d3h4m stawiamy bana na
2 dni, 3 godziny i 4 minuty.
Liczba banów w cale nie jest nieograniczona. Ograniczenie jest ściśle ustalone przez administratora Ircservera. W bocie również od wersji 1.3.24 można ustalić maksymalna liczbę banów, wyjątków i invitów za
pomocą zmiennych max-modes, max-bans, max-exempts i max-invites w pliku konfiguracyjnym bota.
Flagi Eggdropa
W przeciwieństwie do innych botów Eggdrop nie posiada poziomów dostępu ale flagi, które określają
uprawnienia i zachowanie się bota odnośnie danej osoby. Niektóre są dobre inne złe. Ogólnie userów
można podzielić na ownera (gdyż przeważnie jest jeden), masterów, opów i innych userów. Natomiast
flagi dzielą się na:
a) lokalne - określają uprawnienia dla konkretnego kanału;
b) globalne - dotyczą uprawnień użytkownika w bocie oraz na wszystkich kanałach;
c) botflagi - flagi dotyczące innych botów.
1. Flagi lokalne.
a
auto-op
Auto-op niezależnie od ustawienia -autoop.
d
deop
Osoba taka nie może mieć opa na kanale.
e
exempt-stopnethack (od v. 1.6.0)
Wyjątek od deopowania na kanale takiej osoby przy ponownym połączeniu serwerów po splicie. Flaga ma
jedynie znaczenie w przypadku ustawienia kanałowego +stopnethack
f
friend
Większe zaufanie do danej osoby, Bot teoretycznie nie powinien w żadnej sytuacji kopać takiej osoby.
g
auto-voice
Auto-voice na kanale. Niezależnie od ustawienia -autovoice.
k
auto-kick
Osoba taka będzie wykopywana z kanału za każdym razem jak wejdzie.
m
master
Dostęp do kontroli części userlisty dotyczącej danego kanału.
n
owner
Osoba mająca dostęp do wszystkich ustawień bota dotyczących danego kanału. Czyli do komendy
.chanset
o
op
Status operatora.
q
quiet
Osoba taka nie ma prawa mieć statusu voice na kanale.
v
voice
Voice na kanale, automatyczny gdy +autovoice.
w
need-wasop
(od v. 1.3.24)
Ustawienie lokalne flagi +w. Zobacz opis dla globalnego.
Będąc masterem lokalnym można je nadać za pomocą polecenia .chattr handle +f #channel lub zdjąć
.chattr handle -f #channel
2. Flagi globalne.
a
global auto-op
Auto-op na wszystkich kanałach. Niezależnie od ustawienia kanałowego -autoop.
b
bot
Flaga informująca bota, że dany user jest botem.
c
common
Flaga dla osób mających takie same hosty i identy.
d
global deop
Osoba taka nie może mieć opa na wszystkich kanałach.
e
global exempt-stopnethack (od v. 1.6.0)
Wyjątek od deopowania takiej osoby przy ponownym połączeniu serwerów po splicie. Flaga ma jedynie
znaczenie w przypadku ustawienia kanałowego +stopnethack
f
global friend
Większe zaufanie do danej osoby, Bot teoretycznie nie powinien w żadnej sytuacji kopać takiej osoby.
Flaga dotyczy wszystkich kanałów.
h
hilite
Flaga informująca bota, że może stosować inwersję i pogrubienia w tekstach .help
j
janitor
Kontrola nad zasobami plikowymi.
k
global auto-kick
Osoba taka będzie wykopywana ze wszystkich kontrolowanych przez bota kanałów za każdym razem jak
wejdzie.
m
global master
Praktycznie prawie całkowita władza nad botem.
n
global owner
Absolutna kontrola nad botem i wszystkimi kanałami.
o
global op
Status operatora na wszystkich kanałach.
p
party
Dostęp do party line.
q
global quiet
Osoba taka nie ma prawa mieć statusu voice na wszystkich kanałach.
t
master of botnet
Kontrola nad botnetem.
u
unshared
Jeżeli boty są połączone i mają wspólną userliste flaga powoduje, że dany user jest tylko wpisany w
danym bocie i jego rekord z userlisty nie jest wysyłany do innych botów.
v
global voice
Voice na wszystkich kanałach, automatyczny gdy +autovoice.
w
global need-wasop
(od v. 1.3.24)
Jeżeli kanał jest ustawiony +stopnethack i jeżeli właśnie nastąpiło połączenie serwerów po długim splicie
wówczas bot deopuje powracających userów, którym serwer nadaje opa i którzy mają w bocie flagę +o.
Flaga +w powoduje, że bot sprawdza dodatkowo czy dany user miał opa przed splitem i odpowiednio
wtedy podejmuje decyzje czy deopować. Flaga ta może być ustawiona globalnie lub lokalnie.
x
xfer
Dostęp do zasobów plikowych. Osoba taka może wysyłać i przyjmować pliki z bota.
Będąc masterem można je nadać za pomocą polecenia .chattr handle +f lub zdjąć .chattr handle -f
3. Botflagi.
a
alternate
Flaga określająca alternatywny hub. Jeżeli nie można sie połączyć z żadnymi botami z flagą +h, wówczas
bot łączy się z botem z flagą +a. Pomimo tego bot próbuje łączyć się z hubem i w chwili nawiązania
połączenia, łączność z aternatywnym botem jest zrywana.
g
global share
Wymiana całej userlisty, ze wszystkimi kanałami między tym botem.
h
hub
Automatyczne łączenie się z tym botem. Dotyczy to tylko jednego bota. W przypadku większej ilości
botów z flagą +h automatyczne połączenie zostanie nawiązane z tylko jednym z nich.
i
isolate
Połączenie z tym botem nie powoduje asymilacji party line obu połączonych botnetów.
l
leaf
Brak zezwolenia na połączenie z tym botem.
p
passive
Flaga zezwala na przyjmowanie userlisty od takiego bota.
r
reject
Brak zezwolenia na połączenie z tym botem wszystkim botom w botnecie.
s
aggressive
Wysyłanie userlisty do takiego bota. Flaga ta jest także ustawiana lokalnie dla konkretnych kanałow.
Wówczas oznacza dwukierunkową wymianę części userlisty dotyczącej danego kanału.
Będąc masterem można je nadać za pomocą polecenia .botattr handle +h lub zdjąć .botattr handle -h
Oprócz wyżej wymienionych flag, występują inne, których znaczenie można zdefiniować sobie samemu.
Atrybuty kanałów
Każdy kanał, na którym znajduje się bot posiada określone ustawienia. Są one zapamiętywane (co 1h) w
specjalnym pliku ustalonym przez zmienną set chanfile "jakisś_plik.chan" w pliku konfiguracyjnym. Dzięki
temu jeżeli podczas działania bota dodamy kanał lub dokonamy zmiany jego atrybutu nie modyfikując
pliku konfiguracyjnego zmiany te będą trwałe. Nawet gdy zakończymy i ponownie uruchomimy bota.
Aby dodać nowy kanał w bocie trzeba posiadać flagę ownera. Kanał można dodać na 2 sposoby:
statycznie - poprzez modyfikacje pliku konfiguracyjnego, a następnie zrestartowaniu bota ( .restart) lub
dynamicznie - poprzez użycie komendy .+chan #channel, które jest o wiele wygodniejsze.
Aktualne ustawienia danego kanału można wyświetlić komendą .chaninfo #channel .Natomiast zmiany
atrybutów kanału można wykonywać poprzez użycie komendy .chanset #channel atrybut .W obu
przypadkach konieczna jest flaga ownera.
W celu zwiększenia wygody przy dynamicznym dodawaniu kanałów od wersji 1.3.27 wprowadzono
możliwość zmiany domyślnych atrybutów kanałów tzn. takich, które będą ustawiane dla nowo
utworzonych kanałów poprzez .+chan #channel. Są to zmienne: global-flood-chan, global-flood-deop,
global-flood-kick, global-flood-join, global-flood-ctcp, global-idle-kick, global-chanset, global-chanmode.
chanmode Określa ustawienia ircowe kanału. Atrybuty poprzedzone znakiem '+' będą automatycznie
włączane przez bota. Natomiast atrybuty poprzedzone znakiem '-' usuwane.
chanmode "+ntlikm"
idle-kick
Określa jak długo na kanale może przebywać osoba zanim zostanie wykopana. (0 to
zablokowanie tej opcji) idle-kick 0
need-op
need-invite
need-key
need-unban
need-limit Seria skryptów, gdy bot potrzebuje opa, zaproszenia na kanał, klucza, gdy jest zabanowany,
lub gdy nie może wejść na kanał z powodu limitu.Najlepiej je nie ustawiać i pominąć.
flood-chan Określa ile mesgów w ciągu iluś sekund wypowiedzianych przesz osobę na kanale jest
traktowane jako flood.
Jest to bardzo ważny atrybut, który ustawia się w zależności od wielkości kanału. Standardowe
ustawienie 5:60 jest bardzo surowe. Dlatego zalecam zmianę na bardziej łagodną 10:25
floodchan 10:25
(Co oznacza, że 10 mesgów wypowiedzianych przez jedną osobę w ciągu 25 sekund jest traktowane jako
flood)
flood-ctcp Określa ile ctcp w ciągu iluś sekund jest traktowane jako flood.
flood-ctcp 5:60
flood-deop Analogicznie do poprzednich tyle, że chodzi o deopowanie i wykrywanie massdeopu.
flood=deop 3:10
flood-kick Ustawienia flooda odnośnie kopniaków.
flood-kick 3:10
flood-join
Ustawienia flooda odnośnie wejść na kanał przez tą samą osobę.
flood-join 5:60
autoop
Atrybut włączenia auto opa. Wiedz, że jeżeli w bocie są wpisani ludzie z dialupów np. TPSA to
każdy "myślący" przy włączonej tej opcji może mieć opa.
-autoop
clearbans
Czyszczenie banów po wejściu bota na kanał.
-clearbans
enforcebans Wykopywanie osób, których hostmaski pasują do stawianych banów. Włączenie atrybutu
oznacza, że jeżeli ktoś na takim kanale ustawi bana to wszystkie osoby, do których pasuje dany ban
zostaną wykopane przez bota.
+enforcebans
bitch
Atrybut określa czy osoba mająca opa na danym kanale może dawać innym opy, którzy nie
posiadają flagi +o. Nie dotyczy to masterów i dlatego na takim kanale powinna być zwiększona liczba
masterów. -bitch (Spytaj się ludzi przebywających na tym kanale)
greet
Witanie userów po wejściu na kanał. +greet (Jeżeli kilka botów stoi na kanale tylko jeden
powinien mieć tą opcję ustawioną)
protectops Automatyczne reopowanie ludzi mających flagę +o jeśli zostaną zdeopowani..
+protectops
protectfriends
Automatyczne reopowanie ludzi mających flagę +f jeśli zostaną zdeopowani. Od
wer. 1.3.28 -protectfriends (+protectfriends ma sens jeżeli ustawimy -protectops)
statuslog
Logowanie lini statusu kanału co 5 minut.
-statuslog
stopnethack Deopowanie ludzi, otrzymujących opa od serwera po splicie. Od wersji 1.3.21 bot deopował
nawet userów z flagą +o w bocie, gdyż dzięki spoofowaniu adresu można było w ten sposób przejąć
kanał. Było to dość radykalne posunięcie i powodowało bardzo dużo zamieszania na kanałach dlatego
została wprowadzona nowa flaga +w, oraz od wersji 1.3.27 nowy atrybut wasoptest. +stopnethack
revenge
Zapamiętywanie ircowników, którzy zdeopowali, kopneli bądź zabanowali osobę mającą flage
+o, a następnie banowanie i wykopywanie ich.
+revenge
revengebot Działa podobnie jak revenge jednakże odnosi się tylko do botów.
Od wer. 1.5.0
-revengebot
autovoice Autovoice dla osób mających flagę +v w bocie.
+autovoice
secret
Szczególne ukrywanie kanału na party line.
-secret
shared
Zezwolenie na wymianę zmian flag userów pomiędzy połączonymi botami. +shared
cycle
Jeżeli bot nie posiada opa i nikogo prócz innych połączonych botów nie ma. Bot wychodzi na
krótki czas z kanału i powtórnie wchodzi w celu zdobycia opa. +cycle
dontkickops Jeżeli jest ustawione bot nie może kopać userów z flagą +o. Na przykład za floody.
+dontkickops
wasoptest Jeżeli jest ustawione wraz z +stopnethack bot wykonuje po splicie test na wszystkich
userach mających flagę +o w bocie i niezależnie od flagi +w, którzy powrócili na kanał po splicie i dostali
opa od serwera. Test polega na sprawdzeniu czy mieli opy przed splitem. Następnie bot odpowiednio
podejmuje decyzje czy deopować czy nie. Natomiast -wasoptest oznacza tylko sprawdzanie czy
powracający userzy mają flagę +o w bocie i jeżeli takiej nie mają to bot deopuje ich. Jest to nowy atrybut
wprowadzony od wersji 1.3.27
-wasoptest (mniej zamieszania na kanale po splitach, chyba że
szczególnie zależy nam na bezpieczeństwie wtedy +wasoptest)
seen
Włącza lub wyłącza obsługę modułu seen na danym kanale. Warunek: załadowany moduł
seen.
-seen (lepiej używać skryptów tcl do seen)
dynamicbans
Bot pamięta wszystkie bany stawiane na kanale i nie pozwala ich uaktywniać
dopóki ktos, do kogo pasuje ban, nie wejdzie na kanał.
+dynamicbans
dynamicexempts
Bot pamięta wszystkie stawiane wyjątki od banów +e na kanale i uaktywnia je
jedynie wtedy gdy ktoś postawi bana pasującego do maski wyjątku. Od wer. 1.3.28
+dynamicexempts
dynamicinvites
Tu podobnie jak w dynamicexempts dynamiczne +I - zaproszenia na kanał osób
pasujące do hostu. Od wer. 1.3.28 +dynamicinvites
userbans
Zezwolenie na stawianie banów bez pomocy bota.
+userbans
userexempts
Zezwolenie na stawianie exemptów (wyjątków) bez pomocy bota. Od wer.
1.3.28
+userexempts
userinvites Zezwolenie na stawianie invitów (zaproszeń na host) bez pomocy bota. Od wer. 1.3.28
+userinvites
inactive
Ustawienie tego atrybutu powoduje, że bot tak naprawde nie wchodzi na dany kanał. Czyli
można go stosować dynamicznie gdy chcemy aby na jakiś czas bota nie było na danym kanale, którego
ustawień nie chcemy wymazać. Wpisujemy .chanset #channel +inactive i bot wychodzi z kanału
zachowując wszystkie ustawienia. Ponowne wejście na kanał uzyskamy komendą .chanset #channel
-inactive Od wer. 1.3.28 -inactive
nodesynch Zezwala na zmiany na kanale przez serwer ircowy poprze takie usługi jak np. ChanServ. Od
wer. 1.5.1 -nodesynch
Łączenie eggdropów
Łączenie botów ma kilka zalet. Przede wszystkim jeżeli boty są na tym samym kanale mogą mieć
wspólną userliste tzn, że jeżeli dokonamy zmiany w userliscie w którymś z botów, automatycznie nastąpi
zmiana we wszystkich. Inną zaletą jest wspólne party line, na której mogą się porozumiewać osoby
zarówno z tego samego kanału jak i z innych kanałów poprzez przyłączone boty. Dzięki temu można
porozmawiać z innymi właścicielami/użytkownikami botów lub po prostu jak czegoś nie wiemy zapytać.
Istnieje wiele sieci eggdropowych na świecie i w Polsce. W niektórych liczba botów sięga 200-300.
1. Łączenie botów bez wymiany userlisty
Jest najczęściej stosowane. Załóżmy, że bot1 to nasz bot, natomiast bot2 to bot, z którym chcemy się
połączyć. Wówczas pytamy się właściciela (lub osobę mająca flagę +t) bot2 jaki nick, adres oraz port ma
jego bot. Dane te są ustawione w pliku konfiguracyjnym bota. Nick ustawia się zmienną set nick
"nick_bota". Port ustawia się zmienną listen nr_portu all lub listen nr_portu bots, aktualne ustawienie
można zobaczyć komendą .rehash .Natomiast adres to adres komputera, gdzie bot jest uruchomiony.
Można go łatwo odczytać poprzez komendę na ircu /whois nick_bota. Oczywiście znany nam jest nick,
adres, port bota1. Dane te przekazujemy właścicielowi bot2.
W bot1 wpisujemy:
.+bot nick_bot2 adres_bot2:port_bot2 (np .+bot Bocisko linux.w.pwr.edu.pl:3334)
W bot2 właściciel (lub +t) wpisuje:
.+bot nick_bot1 adres_bot1:port_bot1 (np .+bot Blacha blachowski.ds100.agh.edu.pl:3234)
Jeżeli chcemy aby bot1 zawsze po uruchomieniu, restarcie, zerwaniu połączenia itd. łączył się z bot2 to
musimy w bot1 wpisać:
.botattr nick_bot2 +h
2. Łączenie botów z wymianą userlisty.
Wymiana userlisty polega na
a) wysyłaniu z bota z botflagą +s (aggressive shared) userlisty do bota +p (passive shared) po
połączeniu się botów.
b) wymianie informacji o zmianie userlisty flag globalnych oraz, jeżeli jest ustawiona botflaga |+s
#channel na obydwu botach, wymianie flag lokalnych dotyczących tego kanału.
Przed przystąpieniem do linkowania musimy zdecydować, który bot będzie przyjmował userliste, a który
wysyłał, Od tej pory bot, który będzie wysyłał userliste do innego bota będzie hubem. Bardzo ważne jest
aby przy podłączaniu większej liczby botów nie tworzyć "łańcuszków" botów, w których jeden jest
zarówno hubem jak i odbiera userliste od innego huba, Należy tworzyć jak tylko jest to możliwe sieć
"gwiaździstą" czyli jeden hub i kilka botów czerpiących z niego userliste. Zatem niech bot2 będzie hubem.
Dodajemy boty tak samo jak w wariancie 1.
Dodatkowo w bot1 wpisujemy:
.botattr nick_bot2 +hp
.botattr nick_bot2 |+s #channel1
.botattr nick_bot2 |+s #channel2
itd.. Ustawiamy dla wszystkich kanałów, dla których chcemy aby boty miały takie same ustawienia
lokalne.
W bot2 wpisujemy:
.botattr nick_bot1 +s
.botattr nick_bot1 |+s #channel1
.botattr nick_bot1 |+s #channel2
W przypadku powyższego łączenia eggdropów, w każdym z połączonych botów musi być załadowany
moduł share oraz transfer czyli w pliku konfiguracyjnym muszą być instrukcje loadmodule share oraz
loadmodule transfer. Dodatkowo radzę ustawić zmienną xfer-timeout na 300. Zmienna ta określa czas,
po którym nastąpi przerwanie transferu userlisty, jeżeli nie zostało zakończone. W wersji 1.3.27 jest
ustawiona domyślnie na 30. Jest to stanowczo za mało. No chyba że mamy bardzo niewielką userlistę,
albo super szybkie połączenie między botami :-)
Jeżeli chcemy aby boty wymieniały się całą userlistą tj. wszystkimi kanałami zamiast flag |+s #channelX
można użyć globalnej flagi +g czyli wówczas w bot1 wpisujemy:
.botattr nick_bot2 +ghp
natomiast w bot2 wpisujemy:
.botattr nick_bot1 +gs
Komendy do ręcznego linkowania botów to .link bot lub .unlink bot. Ich użycie nie jest potrzebne jeżeli
boty mają odpowiednio ustawione botflagi +h (same się łączą). Inne komendy związane z siecią botów
tylko dla osób mających flage +t to:
.bots - podaje liste botów połączonych w sieci.
.trace botnick - wyświetla listę botów po drodze do botnick.
.bottree - pokazuje drzewo połączeń botów.
.boot nick - Wyrzuca osobę o nicku nick z party line.
.botinfo - Podaje informacje o wszystkich botach w sieci.
Jeżeli łączymy nasze boty z jakąś inną siecią botów radzę również przestawić zmienną remote-boots w
pliku konfiguracyjnym bota na:
set remote-boots 1 - co oznacza, że userów z naszego bota mogą tylko wyrzucać masterzy +t botów
współużytkujących naszą userlistę, a nie ze wszystkich botów, jak jest to domyślnie ustawione.
Skrypty TCL :
Wejdź na stronę http://www.xcalibre.com/tcl.htm Skrypty są tam pogrupowane według wersji eggdropa,
z którą działają. Gdy już upatrzysz sobie jakiś skrypt skopiuj go na konto, możesz się posłużyć lynxem z
wyżej wymienionej strony lub ftpem z wielu mirrorów np:
ftp://ftp.mud.org.pl/mirrors/ftp.sodre.net/pub/eggdrop/
ftp://ftp.irc.pl/pub/irc/bots/eggdrop2
Następnie jeżeli jest spakowany rozpakuj go komendą tar -zxf plik_skryptu.tar.gz. Przejrzyj i poczytaj
dokumentacje, a następnie przegraj do podkatalogu scripts gdzie znajduje się eggdrop i zmodyfikuj plik
konfiguracyjny. Na samym końcu w pliku konfiguracyjnym dodaj linijkę:
source scripts/plik_skryptu.tcl
Teraz w bocie wydaj komendę do ponownego przeczytania pliku konfiguracyjnego komendą .rehash i
jeżeli bot nie zakończył swojego działania znaczy, że uruchomienie skryptu powiodło się.
Czasami podczas używania starych skryptów lub wymianie wersji eggdropa na nowszą bez wymiany
wersji wszystkich skryptów mogą co jakiś czas pojawiać się w logach bota komunikaty typu:
[22:10] TCL error [jakaś_procedura]: jakiś komunikat
W takim wypadku jeżeli się nie znasz na TCLu powinieneś ściągnąć nowszą wersję skryptu lub w ogóle z
niego zrezygnować.
Eggdrop w Cronie
Myślę, że każdego po pewnym czasie zacznie męczyć ciągłe kontrolowanie czy bot jest uruchomiony i
ciągłe logowanie się na zdalny serwer tylko po to aby go ponownie uruchomić. Szczególnie takie sytuacje
występują, gdy serwer często jest rebootowany lub ma zaniki napięcia ;-) Wówczas z pomocą przychodzi
nam bardzo praktyczna usługa systemów unixowych - niejaki cron. Jest to demon zajmujący się
uruchamianiem pewnych programów o określonych porach lub w określonych odstępach czasu. W
standardowych źródłach pakietu eggdrop w katalogu scripts/ znajduje się skrypt botchk, którego
uruchomienie należy wpisać do tablicy crontab. Niestety ze względów bezpieczeństwa niektórzy
administratorzy ograniczają dostęp do crona tylko dla roota. Sprawdź to wywołując komendą:
crontab -l
Jeżeli zadziała i nie pokaże żadnych "permission danied" to znaczy, że jest OK.
Od wersji 1.3.27 pojawił się również skrypt autobotchk, który służy do generowania pliku botchk i
umieszczania go w tablicy cron. Dlatego gdy twój bot to 1.3.27 lub nowszy wejdź do katalogu scripts/ i
wpisz komendę:
./autobotchk robot -dir /home/ving/eggdrop -noemail
Przy czym zamiast robot wpisz nazwę pliku konfiguracyjnego bota, zamiast /home/ving/eggdrop pełną
ścieżkę dostępu do katalogu, w którym jest zainstalowany eggdrop. Po wykonaniu tej komendy bot
powinien się już sam uruchamiać :-)
Natomiast w wersjach wcześniejszych od 1.3.27 musisz najpierw zmodyfikować plik botchk. Zatem wydaj
komendę pico botchk lub joe botch lub vi botchk Następnie zmodyfikuj następujące linijki:
botdir="/home/ving/eggdrop" <- Wpisz pełną ścieżkę.
botscript="eggdrop robot" <- Zamiast robot wpisz nazwę pliku konfiguracyjnego bota.
botname="Nick_bota" <- Wpisz nick bota.
userfile="eggdrop.usr" <- Tu wpisz nazwę pliku z userlistą.
Teraz zapisz zmiany i wywołaj komendę: chattr +x botchk
Następnie jeżeli aktualnie jest uruchomiony eggdrop to zakończ jego działanie z bota komendą .die lub z
terminala komendą kill z odpowiednim pidem. Wywołaj kilka razy ./botchk .Jeżeli wszystko poprawnie
wpisałeś/aś efektem powinno być uruchomienie pojedyncze eggdropa.. tzn. tylko za pierwszym razem
bot powinien się uruchomić. Jeżeli tak nie jest sprawdź plik botchk czy na pewno są wpisane prawidłowe
dane o bocie.
Następnie:
crontab -e <- Wywoła ona standardowy edytor (kryjący się za zmienną EDITOR) na pliku tymczasowym
będącym kopią tablicy crontab dla ciebie. Domyślnie będzie to vi.. oczywiście ty lub administrator możesz
to wcześniej zmienić ustawiając zmienna EDITOR.
Dopisujesz linijkę: (Jeżeli uruchomił się vi to naciśnij klawisz a i dopiero teraz dopisz:)
0,10,20,30,40,50 * * * * /home/ving/eggdrop/scripts/botchk > /dev/null 2 > &1
Zamiast /home/ving/eggdrop/scripts/botchk wpisz pełną ścieżkę dostępu do skryptu botchk. Powyższa
linijka oznacza uruchamianie co 10 min skryptu botchk, którego standardowe wyjścia są kierowane
donikąd. Następnie zapisz zmiany (Dla vi naciśnij ESC dalej :wq ) i znów zakończ działanie eggdropa z
tym, że teraz oczekuj na jego automatyczne uruchomienie :-).

Podobne dokumenty