Einzelnen Beitrag anzeigen

Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#1

IRC-Bot verbunden aber k. Receive

  Alt 25. Sep 2006, 12:01
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;
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat