![]() |
IRC-Bot verbunden aber k. Receive
Tachchen...
Möchte einen IRC-Bot basteln. Wenn ich jetzt das Indy-Demo nehme als GUI komme ich mit meinen Daten auch dort an wo ich hin will. Übertrgae ich dies in eine Console verbindet der IRC-Client zwar aber dann kommt nix mehr. Habe auch schon von Indy 9 auf 10 aktualisiert. Problem bleibt. Hier mal mein Code:
Delphi-Quellcode:
//Edit habe gerade festgestellt, das die neuen Pfade noch nicht übernommen wären für die Indys. Jetzte hat er erstmal kein OnReceive-Ereigniss mehr. Aber das sollte ich alleine hinbekommen.
procedure TBot.IdIRCReceive(Sender: TObject; ACommand: String);
begin writeln(ACommand); end; procedure TBot.IdIRCStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); begin writeln(AStatusText); end; procedure TBot.RunBot; begin ci := Initzial; IdIRC := TIdIRC.Create(nil); IdIRC.OnReceive := IdIRCReceive; IdIRC.OnStatus := IdIRCStatus; IdIRC.Host := ci.Host; IdIRC.Port := ci.Port; IdIRC.Nick := ci.ClientNick; IdIRC.Password := ci.ClientPass; try IdIRC.Connect; if IdIRC.Connected then IdIRC.Join(ci.ChannelKey); while IdIRC.Connected do Sleep(100); finally IdIRC.Free; end; end; Ich denke das Problem ist behoben. Bekomme komme jetzte die gleichen Ergebisse wie mit der GUI. //Edit2: Ja Problem gelöst! Code sieht jetzt so aus:
Delphi-Quellcode:
IdIRC := TIdIRC.Create(nil);
IdIRC.OnRaw := IdIRC1Raw; IdIRC.OnStatus := IdIRCStatus; IdIRC.OnNotice := IdIRCNotice; IdIRC.Host := ci.Host; IdIRC.Port := ci.Port; IdIRC.Nickname := ci.ClientNick; IdIRC.AltNickname := ci.ClientNick; IdIRC.Username := 'username'; IdIRC.RealName := 'real name'; IdIRC.Password := ci.ClientPass; |
Re: IRC-Bot verbunden aber k. Receive
ist vllt. ein _bisschen_ alt, aber könntest du evtl. nochmal nen ganzen quelltext angeben? bei mir kommen nämlich nur fehler ^^
Delphi-Quellcode:
Das is mein Quelltext bis jetzt :)
program Project2;
{$APPTYPE CONSOLE} uses SysUtils, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdIRC; var IdIRC1: TIdIRC; Procedure IdIRC1Raw(ASender: TIdContext; AIn: Boolean; AMessage: String); begin end; begin IdIRC1 := TIdIRC.Create(nil); IdIRC1.OnRaw := IdIRC1Raw; IdIRC1.Host := 'de.quakenet.org'; IdIRC1.Port := 6667; IdIRC1.Nickname := 'derultitest'; IdIRC1.Password := ''; try IdIRC1.Connect; if IdIRC1.Connected then IdIRC1.Join('#testecke'); while IdIRC1.Connected do Sleep(100); finally IdIRC1.Free; end; end. |
Re: IRC-Bot verbunden aber k. Receive
Was denn für Fehler!? Mit es geht nicht lässt sich immer schlecht was anfangen.
Der Code wie von mir oben beschrieben läuft so. kann mich errinnern das ich auch eine kleine Anpassung in den Indys machen musste um mehrere Zeilen zu zu reciven. Ist schon ewig her. Aber Du bist nicht der erste der mich deswegen anspricht. Der Code wie oben beschrieben läuft unter Indy 10. Wichtig ist die Angabe Realname usw und vielleicht sollte auch die Raw-Funktion den Text aus geben... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz