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:
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;
//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.
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;