Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IRC-Bot verbunden aber k. Receive (https://www.delphipraxis.net/77815-irc-bot-verbunden-aber-k-receive.html)

Harry M. 25. Sep 2006 11:01


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

nabbl 7. Feb 2008 21:35

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:
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.
Das is mein Quelltext bis jetzt :)

Harry M. 7. Feb 2008 23:38

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 04:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz