Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Kleine Frage zum IdIRC .. (https://www.delphipraxis.net/48950-kleine-frage-zum-idirc.html)

CodenameCookie 3. Jul 2005 00:41


Kleine Frage zum IdIRC ..
 
Morgen Community ,

Wie geht es , das der Bot auf befehl in einen Raum joint? .. Er soll in den Raum joinen der Hinter dem Befehl "!join" angegeben wird zb. "!join #lobby" , dann sollte er #lobby joinen !

Danke im Vorraus

CC :shock:

Die Muhkuh 3. Jul 2005 07:22

Re: Kleine Frage zum IdIRC ..
 
Hi,

es gibt ein Event, dass heißt "OnMessage" oder so ähnlich. Dort kannst du folgenden Code reinschreiben (Ungetestet!):

Delphi-Quellcode:
var
  Temp: String;
begin
  if Content[1] <> '!' then
    exit;
 
  if Pos('!join', Content) <> 0 then // !join wurde gefunden (es wird auch xxaskdk!join #blubb gefunden!
  begin
    Temp := Copy(Content, Pos('!join'), Length(Content));
    IdIRC.Join(Temp);
  end;
end;
Den Code musst du ggf. noch anpassen.

CodenameCookie 3. Jul 2005 13:26

Re: Kleine Frage zum IdIRC ..
 
Hi ,

habe das ganze nun so gemacht:

Delphi-Quellcode:
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel; Content: String);
var
Temp: String;
begin
  if Content[1] <> '!' then
    exit;

  if Pos('!join', Content) <> 0 then
  begin
    Temp := Copy(Content, Pos('!join'), Length(Content));
    IdIRC.Join(Temp);
  end;
end;
er markiert aber bei Compilen die stelle hinter ('!join') und meldet "not enough actual parameters" !

ne idee? ;)

CC

Die Muhkuh 3. Jul 2005 13:31

Re: Kleine Frage zum IdIRC ..
 
Jau:

Delphi-Quellcode:
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel; Content: String);
var
Temp: String;
begin
  if Content[1] <> '!' then
    exit;

  if Pos('!join', Content) <> 0 then
  begin
    Temp := Copy(Content, Pos('!join', Content), Length(Content));
    IdIRC.Join(Temp);
  end;
end;

CodenameCookie 14. Jul 2005 17:42

Re: Kleine Frage zum IdIRC ..
 
Zitat:

Zitat von Spider
Jau:

Delphi-Quellcode:
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel; Content: String);
var
Temp: String;
begin
  if Content[1] <> '!' then
    exit;

  if Pos('!join', Content) <> 0 then
  begin
    Temp := Copy(Content, Pos('!join', Content), Length(Content));
    IdIRC.Join(Temp);
  end;
end;

Hallöchen ,
genau so habe ich es gemacht - habe den bot joinen lassen und !join #test eingegeben , aber er macht es nicht , es kommt weder ne fehlermeldung noch sonst was :-/ ..

jmd eine Ahnung was ich vllt falsch gemacht haben könnte?

Grüsse CC :elk:

Jan 14. Jul 2005 17:47

Re: Kleine Frage zum IdIRC ..
 
Hallo ihr!
wie wärs mit dieser Modifikation:

Delphi-Quellcode:
joinpos:=Pos('!join', Content);
Temp := Copy(Content, joinpos, Length(Content)-(5+joinpos));
ist aber ungetestet und obs daran liegt weiß ich auch nicht, aber das sah mir falsch aus, was da stand.
Gruß
Jan

Matze 14. Jul 2005 18:27

Re: Kleine Frage zum IdIRC ..
 
Oder so ;)

Delphi-Quellcode:
if Pos('!join', Content) > 0 then
begin
  Channel := Copy(Content, Pos('#', Content), Length(Content) - Pos('#', Content) + 1);
end;
Nachtrag: So, jetzt aber ^^

CodenameCookie 14. Jul 2005 19:13

Re: Kleine Frage zum IdIRC ..
 
Zitat:

Zitat von Matze
Oder so ;)

Delphi-Quellcode:
if Pos('!join', Content) > 0 then
begin
  Channel := Copy(Content, Pos('#', Content), Length(Content) - Pos('#', Content) + 1);
end;
Nachtrag: So, jetzt aber ^^

Habe es eingefügt

Delphi-Quellcode:
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel; Content: String);
begin
if Pos('!join', Content) > 0 then
begin
  Channel := Copy(Content, Pos('#', Content), Length(Content) - Pos('#', Content) + 1);
end;
und so ergänzt
Delphi-Quellcode:
var
  Form1: TForm1;
  Channel: String;
nur weiss ich nu ned wie ich das vervollständigen soll ...

Delphi-Quellcode:
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel; Content: String);
begin
if Pos('!join', Content) > 0 then IdIRC1.Join('#' + Content); !?!?!? *wirr*
begin
  Channel := Copy(Content, Pos('#', Content), Length(Content) - Pos('#', Content) + 1);
end;


Habe den Channel #lala aufgemacht , aber weder auf !join lala noch !join #lala reagiert er :(

Grüsse CC :-D

Cyberaxx 15. Jul 2005 19:11

Re: Kleine Frage zum IdIRC ..
 
Hallo,

ich weiss nicht ob es noch aktuell ist aber ich schreib einfach mal. :)

HastDu Dir mal den Content angesehen was da drin steht wenn der Client eine Msg erhällt?

wenn ich das eingebe also:

Zitat:

!Join #lala
schaut der Content nur so aus, warum versucht Du da noch wer weiss was mit in den String zu geben?

Delphi-Quellcode:
IdIRC1.Join('#' + Content);
Das würde jetzt der String so aussehen:

Zitat:

#!Join #lala
Ist klar das er das nicht kann, da bei mir das Programm gerade läuft kann ich nicht nachsehen was kommt wenn du das auf dem Join machst. Schaue Dir doch einfach mal an was an Datenaustausch statt findet mit den Ereignissen OnRecive und OnSend.

Der Code müsste eher so aussehen:

Delphi-Quellcode:
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel; Content: String);
Begin
if Pos('!join', Content) > 0 then begin
  Channel := Copy(Content, Pos('#', Content), Length(Content) - Pos('#', Content) + 1);
  IdIRC1.Join(Channel);
end;
Ist getestet und er Joint auch den Chan. :)

Was mich aber mal so nebenbei interessieren würde ist wie man zu dem Status connected kommt. Ich Joine Chans kann schreiben und lesen aber wenn ich Disconnecten will kommt immer der nette Fehler das er nicht verbunden ist.
Vllt kannst Du mir da ja weiter helfen.

CodenameCookie 15. Jul 2005 21:09

Re: Kleine Frage zum IdIRC ..
 
Ahhhhhhhhhhhh *gg .. vielen Dank ^^ geht super !

Grüsse CC


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 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