PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eggdrop API



Compuholic
03-08-2003, 22:05
Hat jemand eine gute Dokumentation für die Eggdrop-API?
Ich hab nichts passendes gefunden. Die Dokumentation für C ist ziemlich spärlich. Wenn niemand so etwas hat, kennt jemand vielleicht eine Funktion mit der man Handler für bestimmte Ereignisse installieren kann.
Ich will z.B. PRIVMSG Nachrichten an den Bot abfangen. Damit man sich auf diese Weise an den Newsletter anmelden kann, ohne die anderen Leute im Forum zu belästigen.

bischi
04-08-2003, 16:50
Was isn dat? Noch nie davon gehört!

MfG Bischi

tuxipuxi
04-08-2003, 18:04
eggdrop ist der bekannteste irc bot, erweiterbar und konfigurierbar.

bischi
05-08-2003, 10:24
Ich versteh immer noch Bahnhof!

:confused: MfG Bischi

tuxipuxi
05-08-2003, 10:26
du hast einen channel auf irgendeine irc server und brauchst einen dienst der z.b. jedem der reinkommt op rechte zuweist. der eggdrop kann sowas.
compuholic moechte nun gerne den eggdrop etwas auf seine wuensche umschreiben.

sind wir nun weg vom bahnhof :p?

bischi
05-08-2003, 10:56
Vom Provinzbahnhof zum Hauptbahnhof :D :

op?

MfG Bischi

Silver
05-08-2003, 11:33
op=operator, also der so ziemliche alle rechte im channel hat

bischi
05-08-2003, 11:58
So langsam hab ich den Durchblick, DANKE!

Hab noch nie mit so was zu tun gehabt,

MfG Bischi :cool:

Compuholic
08-08-2003, 10:17
So endlich hab ich's gefunden.

Für den Fall das es jemanden interessiert, so installiert man einen Handler für öffentliche Nachrichten:



p_tcl_bind_list H_pub;
cmd_t MessageTrapTable[] = {
{"!event", "", (Function)EventHandler, NULL},
{NULL, NULL, NULL, NULL}};

H_pub = find_bind_table("pub");
add_builtins(H_pub, MessageTrapTable);

Wenn jetzt eine Zeile mit dem Inhalt "!event" geschrieben wird wird die Funktion EventHandler aufgerufen. Die hat folgenden Aufbau:


static int EventHandler(char *nick,
char *host,
char *hand,
char *channel,
char *text)
{
[...]
}

Allerdings ist das Verhalten meines Programmes noch ziemlich mysteriös. Bei folgendem Code wird die 1. printf Nachricht angezeigt, die 2. nicht mehr, weil das Programm vor mit einem Segfault abstürzt. Ich kann mir das nicht erlären warum. Es ist noch nur eine simple Zuweisung...


static int AppendItem(char *nickname, Subscriptions *ChainStart)
{
Subscriptions *actualPosition;
Subscriptions *lastPosition;

printf("AppendItem-Funktion\n\n");
actualPosition = ChainStart;

printf("Debug 1");


--- Wobei Subscriptions folgendermaßen definiert ist:
typedef struct
{
void *previousItem;
void *nextItem;
char nickname[MAX_NICKLEN];
} Subscriptions;