Hostmasks bestehen aus 3 Teilen.
"Nick!ident@host"
Zum Beispiel: Jochen!meier@port-12.aol.de
Den Nickname kann man frei wählen, die Ident ist bei Unix Rechner meistens durch den Login Namen vorgegeben und der Host wird durch den Internet Provider festgelegt.
Wenn sich voraussichtlich ein Teil der Hostmask ändern wird kann man diesen Teil durch * ersetzen.
z.B. Jochen!meier@*.aol.de
Falls der User mal zu einem anderen Provider wechselt kann er seinen neuen Host (wenn man es nicht deaktiviert hat) durch "/msg Bot ident <deinpasswort>" in seinen User Record hinzufügen lassen ("ident" kann im Config File in ein anderes Wort geändert werden).
Bans werden auch mit der Hostmask gesetzt. Wenn zum Beispiel "Jochen!meier@port-12.aol.de" im Channel stört macht er nicht viel Sinn "Jochen!meier@port-12.aol.de" zu bannen, da er nur seinen Nickname ändern muss und wieder in den Channel kann. "*!meier@port-12.aol.de" ist schon recht sicher ganz AOL würde man mit "*!*@*aol*" bannen, dadurch würde man aber unter Umständen viele unschuldige User mit bannen.
Bei ".+ban <hostmask> <#channel>" kann man festlegen ob Bans nur für einen Channel gesetzt werden sollen, oder für alle in denen der Bot ist und wie lange sie bestehen sollen.
Wenn als Dauer 0 angegeben wird bleibt der Ban für immer gesetzt.
Mit ".bans <#chan> (all)" kann man sich die Bans auflisten lassen und mit .-ban [nummer] löschen.
Um einen Ban fest zu setzen (er wird bei unban reaktiviert) kann man ".stick <bannummer/hostmask>" verwenden.
Mit ".kickban <#chan> <user>" kann man einen User bannen und kicken lassen.
Bots werden mit ".+bot botname (host:port)" geaddet. Am besten gibt man nach ".+bot botname" noch gleich den Host und Port an, da man es sonst später mit ".chaddr Botname host:port" machen muss.
z.B. ".+bot <Botnick> <botost>:<Port>"
Man addet jeweils den anderen Bot mit hostname und Port.
Den Hostname kann man per /whois Botnick in Erfahrung bringen bei
TestBot is test@212.12.234.57 wäre das dann "212.12.234.57".
Den Port bekommt man, indem man in der Partyline ".dccstat" eingibt.
Zum Beispiel:
Superbot auf tollerhost.de:3333
Tollerbot auf superhost:4444
Auf Superbot ".+bot Tollerbot superhost:4444"
Auf Tollerbot ".+bot Superbot tollerhost.de:3333" (Dadurch wird jeweils der andere Bot geaddet.)
Auf Superbot ".link Tollerbot" (Dadurch werden die Bots gelinkt.)
Mit ".unlink Tollerbot" kann man die Bots wieder trennen.
Wenn die Bots automatisch gelinkt werden sollen gibt man auf einem Bot dem anderen die Bot Flag +h(ub).
Auf Tollerbot ".botattr Superbot +h" (nicht .chattr).
Die Art wie sich der Eggdrop verhält wird stark durch Channel
Settings beeinflußt. Eggdrop hat viele eingebaute Channel Settings und man kann
verschiedene Einstellungen für jeden Channel haben, was eine sehr große
Flexibilität mit sich bringt. Wenn man das Config File erstellt und darin
Channel addet begegnen einem die Channel Settings das erste mal.
channel add #bothelp {
optionen
}
channel set #bothelp +option -option
Es gibt 2 Arten von Channel Settings. Die einen in den geschweiften Klammern
haben meistens mehr als 2 Optionen. Die hinter channel set kann man meistens mit
+ oder - an oder aus stellen.
Weitere Informationen über die verschiendenen Channel Settings gibt es im
Config File und hier.
Dynamische Channel Settings:
Um einen Channel zu adden oder Channel Settings zu ändern muss man nicht das Config File verändern. Eggdrop hat eingebaute Befehle mit denen man Channels hinzufügen, enfernen und Channel Einstellungen ändern kann. Um einen Channel zu adden ".+chan <#chan>", zum entfernen ".-chan <#chan>" und zum ändern der Channel Modes ".chanset <#chan>". Um sich die momentanen Einstellungen anzeigen zu lassen nimmt man ".chaninfo <#chan>".
z.B:
.chanset #channel +enforcebans will enable the enforcebans option.
.chanset #channel -dynamicbans +autoop will disable dynamicbans, and enable autoop.
.chanset #channel chanmode +sntk green will change the channel's chanmode setting to "+sntk green".
.chanset #channel idle-kick 60 will set the channel's idle-kick setting to 60.
To view all current channel settings for a channel, type .chaninfo #channel.
Das Channelfile:
Da der Bot nicht das eigentlich Config File verändern kann werden Channel, die mit dem .+chan Befehl geaddet werden oder mit dem chanset Befehl verändert werden in einem speziellen Channel File gespeichert, welches man im Config File angibt (set chanfile). In dieser Datei werden alle Änderungen gespeichert (.save).
Ein Nachteil ist, dass der Bot zuerst die Angaben aus dem Config File liest und dann mit denen aus dem Channel File überschreibt , wenn eins vorhanden ist. Nachträgliche Änderungen der Channel Einstellungen im Config File sind also nicht sinnvoll, man muss die Partyline Befehle benutzen (.+/-chan, .chanset).
Man muss kein dynamisches Chan File haben, wenn man bei "set chanfile" "" als Dateiname angibt werden die Änderungen der Einstellungen durch die Partyline nicht gespeichert.
Die einfachste möglichkeint ist das script autobotchk (liegt normal im scripts dir des eggdrops). Einfach in das eggdrop dir kopieren "cp autobotchk .." und mit "chmod 755 autobotchk" als ausführbar markieren. Mit "./autobotchk <eggconfig> -noemail -10" wird der eggdrop in die crontab eingefügt.
Die andere möglichkeit ist das normale botchk script. Falls du es nicht hast (liegt normal im scripts dir des eggdrops) kannst du es hier downloaden.
1) Zuerst muß ein botchk Script für jeden Bot der auf der Shell laufen soll
einerichtet werden. Das Script liegt im scripts Verzeichnis der Eggdrops.
Man öffnet es mit mit dem Lieblingseditor. z.B. pico scripts/botchk.
2) Jetzt müssen die vier Variablen die in dem Script eingestellt werden
geändert werden.
3) Nun muss das Script ausführbar gemacht werden. chmod 755
scripts/botchk
5) Dann sollte man testen ob alle läuft. Beende den Bot und starte das Script.
Wenn es funktioniert wird der Bot gestartet. Wenn nicht ist wahrscheinlich ein Pfad in der Config Datei falsch.
6) Schließlich wird die Crontab editiert, das geht mit Crontab -e. Mit Crontab -l lässt man sich die Crontab anzeigen.
Für jeden Bot der auf der Shell läuft muss einer solche Zeile eingefügt werden.
0,10,20,30,40,50 * * * * /home/mydir/EggBot1/scripts/botchk >/dev/null 2>&1
9) Teste nochmal ob alles geht. Beende den Bot und warte 10 Minuten. Wenn der Bot nicht gestartet wird teste nochmal alles. Vielleicht hast du keinen Zugriff auf die Crontab, dann frag bei dem Admin nach.
Als erstes muss man sich als Owner in den Eggdrop eintragen lassen.
Wenn der Bot im Irc ist geht es am leichtesten per "/msg bot hello" (man kann das Wort im Config File ändern), falls der Bot nicht in das Irc Netz kommt kann man sich auch per Telnet eintragen lassen indem man als Username New eingibt.
Danach setzt man ein Passwort: im Irc "/msg bot pass deinpasswort", bei Telnet wird es automatisch abgefragt.
Jetzt kann man den Bot z.B. mit ".help" die meisten Kommandos des Bots auflisten lassen und mit .help kommando genauere Hilfe zu dem Befehl bekommen.
Dcc Chat/Die Partyline/Telnet:
Die große Mehrheit der Funktionen des Eggdrops werden über einen DCC Chat mit dem Bot kontrolliert. Der DCC Chat mit dem Bot hat 2 Funktionen, es dient dazu den Bot zu bedienen und als ein Chat Bereich. Um in die Partyline zu kommen baut man wie mit einem normalen Benutzer einfach einen DCC Chat auf oder gibt "/ctcp <botname> chat" ein, dann baut der Bot den DCC Chat auf was manchmal nützlich ist wenn man hinter einer Firewall ist.
Wenn man die Verbindung zum Bot aufgebaut hat, wird er nach
dem Loginname und dem Passwort fragen, wenn man beides korrekt eingibt kommt man
automatisch in die Partyline (der Haupt Chat Bereich). Allen Befehlen wird ein
"." vorangestellt (z.B. .help oder .chattr). Alles ohne "."
wird in die Partyline gesendet. In der Partyline gibt es, wie im IRC, sehr viele
verschiedene Channels. Um in einen anderen Channel zu kommen gibt man
".chat <Nummer>" ein, es gibt die Channel 1-9999 (0 ist die
Partyline). Mit ".chat off" wird die Chat Möglichkeit ganz
abgeschaltet. Um den Channels normale Namen zu geben muss man das assoc Modul
laden.
Telnet:
Man kann die Partyline auch durch eine Telnet Verbindung erreichen. Um die
Verbindung aufzubauen gibt man einfach den Hostname (oder Vhost my-hostname/ip
Option) und Port (listen Option) des Bots in dem Telnet Client an. Man wird hier
nach dem Handle (Nickname auf dem Bot) und Passwort gefragt. Danach ist man in
der Partyline. Eine Telnet Verbindung ist nützlich wenn der Bot nicht im IRC
ist, da man ihn dann nicht per DCC Chat erreichen kann.
Eggdrop hat ein umfassendes Hilfe System. Das Erste was man machen sollte wenn man Informationen über einen Befehl braucht ist ".help <Befehlname>" und wenn man einen Befehl sucht ".help" oder ".help all".
Die Partyline erlaubt es nicht nur, dass man sich mit anderen Leuten unterhält und Befehle eingibt, sondern auch dass man sich anschaut was so alles passiert. Mit dem .console Befehl kann man die Informationen, die angezeigt werden wählen. Z.B. kann man sich die Befehle die andere Benutzer des Bots eingeben anzeigen lassen, ob andere Bots gerade linken oder was gerade in verschiedenen Channels passiert, in denen der Bot ist. Die Konsole ist meistens auf einen bestimmten Channel eingestellt, mit .console kann man sich die momentanen Einstellungenn ansehen und mit ".console <#channel>" oder ".console +/-<modes>" (".help console" für eine Liste aller Modes") kann man sie ändern. Die Einstellungen kann man mit ".store" speichern.
Man kann einen user grüßen lassen wenn er einen channel oder die partyline des bots joint. Mit ".info <#chan> <info-line>" kann jeder user seine info-line verändern. Ein master kann mit .chinfo <handle> <#chan> <info-line> die info-line eines anderen users ändern (wenn er ein "@" an den anfang stellt ist sie für den user unveränderbar". Zum löschen gibt man "none" als info-line an. Info-line-anzeigen-aktivieren: ".set use-info 1" und ".chanset <#chan> +greet", für die Partyline message den eintrag "set info-party 0" des config files in 1 ändern. Mit ".set wait-info <sekunden>" kann man einstellen nach wie vielen sekunden die info-line wieder angezeigt wird.
Mehrere Eggdrops
aus einem Verzeichnis starten:
Man kann so viele Bots laufen lassen wie es der Shell Provider erlaubt. Falls man die Bots im selben Verzeichnis laufen lassen will kann man einfach ein neues Config File machen (man muss natürlich die Dateinamen des User, Chan, Log und Note Files ändern).
Eggdrop hat eine begrenzte Anzahl von Befehlen, die man via /msg sendet, aber einige sind wichtig. Z.B. der op Befehl mit dem man sich op geben lassen kann, der pass oder der ident Befehl. Eine Liste aller Befehle bekommt man wenn man "/msg <botname> help" eingibt. Man sollte aufpassen wenn man dem Bot sein Password schickt, da die Nachricht im aktuellen IRC Channel landet wenn man bei /msg <botname> op <pass> z.B. das / am Anfang vergisst. Danach können sich andere Leute per ident MSG Befehl ihre Hostmask in den Bot eintragen lassen und sich dann op geben lassen.
Die motd datei (eggdrop dir "motd") wird bei jedem party-line login angezeigt. Die "telnet-banner" datei wird bei jedem telnet login angezeigt. Die beiden dateien kann man mit einem text-editor verändern. Es gibt viele formatierungs optionen die man mit ".help set motd" anzeigen lassen kann.
Viele der Eggdrop Funktionen können in einer anderen Sprache als Englisch angzeigt werden. Das wird durch das Benutzen von Language Files erreicht. Es ist zu beachten, dass die folgenden Informationen zur 1.4er Eggdrop Serie passen, die alten Eggdrops hatten eine schlechtere Unterstützung für andere Sprachen als Englisch. Eggdrop 1.3 und früher hat nicht die .addlang, +lang, -lang Befehle, die im Folgenden besprochen werden.
Die Language Files sind in dem /language Verzeichnis des Bots. Momentan gibt es 3 Typen von Language Files:
- Die core Language Files, z.B. core.french.lang,
enthalten den Text für die meisten von den zentralen Eggdrop Funktionen.
- Die Filesys Language Files, z.B. filesys.french.lang,
enthalten den Text für das Filesystem Modul.
- Die Wire Language Files, z.B. wire.french.lang, enthalten
den Text für das Wire Modul.
Um den Bot den Text in der bevorzugten Sprache anzeigen zu lassen braucht man ein core Language File. Für das File System und das Wire Modul braucht man zusätzliche Dateien. Man sollte immer die zur Bot Version passenden Language Files benutzen.
Wenn man einmal die Language Files hat läd man sie in das /language Verzeichnis des Bots. Wenn man ein Language File immer benuzten will sollte man es mit dem addlang Befehl im Configfile adden. z.B. um french.lang Dateien zu laden würde man addlang "french" angeben. Man kann die Language Files auch direkt in der Partyline mit .+lang installieren und mit .-lang wieder entfernen. Dann wird aber nach .rehash wieder das Language File geladen, das im Configfile angegeben wird.
Einige Language Files gibt es auf der Download Seite.
Man sollte niemanls ein Passwort benutzen das entweder nur aus Buchstaben oder nur aus Zahlen besteht. Computer werden gehackt und Bots werden gehackt. Das heisst das jemand den Computer hackt auf dem der Bot läuft, das User File runterläd und es dekodiert. Es ist schwerer ein Passwort zu cracken das Zahlen, groß- und kleingeschrieben Buchstaben benutzt und lang ist.
Man sollte als Passwort nur Buchstaben und zahlen nehmen da manche Tcl-Scipts mit Sonderzeichen nicht zurecht kommen. Allerdings sind solche Passwörter sehr sicher und man sollte sie ansonsten benutzen.
Benutze nie Namen für ein Passwort, da sie leicht zu erraten sind und dadurch die Irc-Channel gefärdet sind, in denen der Bot ist.
Eggdrop hat nur einen eingebauten Public Befehl,
"seen" aber auch nur wenn man das seen Modul läd und den Channel auf
+seen setzt. Es gibt einige TCL Scripts die solche Befehle hinzufügen, z.B.
!op, !kick, !deop usw. aber solche Scripts sind meistens relativ unsicher, auch
wenn sie ident Möglichkeiten haben. Sicherer ist es wenn das Script nur ops
erlaubt Befehle zu benutzen, auch wenn es manchmal toll aussieht wenn man dem
Bot einfach so Befehle erteilen kann ;) .
Man kann sich alle User, die auf dem Bot geaddet sind mit ".match * 9999" anzeigen lassen.
Es gibt 2 Möglichkeiten, wenn der User online und in einem Channel ist, in dem der Bot auch ist kann man ihn einfach per ".adduser <nick>" eintragen, und wenn nicht im IRC ist per ".+user <nick> [hostmask]".
".adduser" hat den Vorteil das der Bot selber den Host des Users addet, bei ".+user" muss man das selber machen.
Den Host addet man mit ".+host <username> <host>", wenn er noch nicht geaddet wurde.
Danach noch die Flags vergeben mit ".chattr <user> +/-<flags>" (wobei man mit globalem (o)p, bo(t)netmaster, (m)aster und besonders ow(n)er sehr aufpassen muss).
Mit ".-host <handle> <hostmask>" kann man eine Hostmask entfernen, mit ".-user <handle>" einen User.
Ein User kann sein Password selber mit ".newpass <neuespassword>" selber ändern oder man ändern es mit ".chpass <handle> <pass>".
Weitere Informationen zum User-File gibt es hier.