Register for your free account! | Forgot your password?

Go Back   elitepvpers › Coders Den › .NET Languages
You last visited: Today at 16:53

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[VB.NET] IRC Name und Nachricht

Discussion on [VB.NET] IRC Name und Nachricht within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
eRazor97's Avatar
 
elite*gold: 164
Join Date: May 2013
Posts: 147
Received Thanks: 4
[VB.NET] Case/Switch ?!?

Hey,
Ich versuche einen simplen Twitch bot in VB für einen Freund zu schreiben.
Ich würde gerne den Usernamen und die geschriebene Nachricht rausziehen und auf bestimmte Keywords überprüfen.

Wie löse ich das am besten.

MfG.
eRazor

//EDIT

Problem gelöst anderes aufgetaucht siehe seite 3 im Thread
eRazor97 is offline  
Old   #2


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180


Schau doch erstmal dort, vielleicht hat Twitch sowas schon in der API abgedeckt.
Mostey is offline  
Old   #3
 
eRazor97's Avatar
 
elite*gold: 164
Join Date: May 2013
Posts: 147
Received Thanks: 4
Die Twitch-IRC Dokumentation ist nichts beinhaltet was mir bei meinem Problem weiterhelfen könnte
eRazor97 is offline  
Old   #4


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Dann such dir den Server raus und verbinde dich eben damit. IRC ist kein komplexes Protokoll. Ansonsten gibt es fertige Libraries, siehe hier:
Mostey is offline  
Old   #5
 
eRazor97's Avatar
 
elite*gold: 164
Join Date: May 2013
Posts: 147
Received Thanks: 4
Verbunden und sowas habe ich ja schon.
Meine Frage war wie ich das empfangene "außeinaner rupfen" kann.
So das ich den Namen vom Sender sowie die Nachricht zwischenspeichern kann um Befehle wie !vote z.B. reinmachen kann.
eRazor97 is offline  
Old   #6


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Was ist daran so komplex? Werde doch mal etwas konkreter.

Wenn du die Nachrichten und User empfangen kannst, pack sie doch in eine Liste und gehe diese Liste dann durch und prüfe den Inhalt der Nachricht (mittels RegEx oder so) auf ein !vote <irgendwas>.
Mostey is offline  
Old   #7
 
eRazor97's Avatar
 
elite*gold: 164
Join Date: May 2013
Posts: 147
Received Thanks: 4
Und da liegt meine Frage
Wie ziehe ich die empfangene Nachricht raus?
eRazor97 is offline  
Old   #8
dotCom
 
Devsome's Avatar
 
elite*gold: 10077
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 17,375
Received Thanks: 4,933
Vielleicht hilft dir das weiter:


Function recv()
und dann wie Mostey sagte, einfach die komplette Nachricht splitten,regex wie auch immer du das magst
Devsome is offline  
Old   #9


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by eRazor97 View Post
Und da liegt meine Frage
Wie ziehe ich die empfangene Nachricht raus?
Ich bezweifle das du überhaupt ne Verbindung aufgebaut hast wenn du schon so eine Frage stellst.

Nachdem du einem Channel beigetreten bist, werden die Nachrichten der User über Broadcasts verschickt - jeder sieht die Nachricht und weiß von welchem User diese stammt.

Da IRC Server generell unterschiedlichen Output liefern kann man dir nicht sagen wie genau du hier die Nachricht rausziehst aber Devsome hat dir mit RegEx schon einen relativ guten Ansatz (wenn nicht sogar der beste) geliefert.



Schau mal dort, da sind alle Befehle mit Beispielen dokumentiert.

PS: IRC läuft über Port 194 TCP, da musst du halt ein Socket aufmachen und manuell den JOIN Befehl absetzen. Wobei du selbst das nicht einmal tun müsstest, wenn du die Library nutzt.
Mostey is offline  
Old   #10
 
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
Hier kannst du nachlesen, wie die Nachrichten aufgebaut sind:

Eine IRC Nachricht kann einen Präfix haben, muss aber nicht. Im Präfix findest du Informationen über den Nutzer, der die Nachricht abgesendet hat, oder den die Nachricht betrifft. Der Präfix besteht aus folgenden Teilen, wobei nur der nick Teil vorhanden sein muss (wenn es den Präfix gibt):

:nick!user@host[Leerzeichen]

Gültige Präfixe wären zum Beispiel :dowhile!daniel@localhost, aber auch nur :dowhile oder :dowhile!daniel oder :dowhile@localhost oder einfach gar kein Präfix.
Wenn es einen Präfix gibt, endet er aber immer mit einem Leerzeichen.

Anschließend kommt der Befehl, das ist zum Beispiel PRIVMSG für Nachrichten in Channels (oder User zu User), QUIT, JOIN, PART, TOPIC, MODE usw.
Nach dem Befehl kommen Parameter, die alle mit einem Leerzeichen getrennt werden. Es müssen aber keine kommen. Ganz am Ende kann ein langer Parameter mit Leerzeichen kommen, der dann mit [Leerzeichen]: beginnt. Zum Beispiel sind folgendes Nachrichten (von der Syntax her korrekt, keine Ahnung ob sie auch semantisch korrekt sind):

:dowhile!daniel@localhost PRIVMSG #101 :Hallo Welt!
Nick: dowhile
User: daniel
Host: localhost
Command: PRIVMSG
Parameter 1: #101
Parameter 2: Hallo Welt!

QUIT
Nick, User, Host: nicht vorhanden
Command: QUIT

CMDXYZ param1 param2 param3 :ganz langer param mit Leerzeichen

usw.

Wenn dich also nur Nachrichten interessieren, die Leute in den Channels schreiben, musst du nur IRC Nachrichten mit dem Befehl "PRIVMSG" betrachten. Schreibe dir also einen Algorithmus, der den Befehl in einer IRC Nachricht ermittelt. Anschließend kannst du im Präfix Informationen über den Absender der Nachricht finden und als ersten Parameter, glaube ich, den Channel, in dem die Nachricht geschrieben wird. Als letzten, langen Parameter hast du dann die Nachricht.

Wie genau du das machst, ist ja egal. Habe ich dir damit geholfen, oder brauchst du eher Hilfe dabei, wie du so einen Algorithmus nun realisierst, der das für dich Interessante aus der Nachricht rausholt (den du, wie von anderen gesagt, am einfachsten natürlich mit regexp machen könntest)?
dowhile is offline  
Old   #11
 
eRazor97's Avatar
 
elite*gold: 164
Join Date: May 2013
Posts: 147
Received Thanks: 4
Danke @Devsome der eintrag von Marks Blog hat mir so einiges erleichtert.
Jetzt werde ich mal schauen wie regex aufgebaut ist.
Und auch vielen Dank an alle anderen

//EDIT:
Ich ziehe mir nun die Nachricht raus aber habe jetzt das problem, dass wenn ich !test eingebe der kein Output kommt.

Code:
If String.Compare(rmsg, "!test") = 0 Then
    send("PRIVMSG #einchannel: Warum testest du mich " & rnick & "?")
    cout.Write(rnick & " executed !test" & vbNewLine)
End If
was mache ich falsch?
eRazor97 is offline  
Old   #12
 
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
Lass dir rmsg ausgeben und schau, wieso es ungleich !test ist.
dowhile is offline  
Old   #13
 
eRazor97's Avatar
 
elite*gold: 164
Join Date: May 2013
Posts: 147
Received Thanks: 4
Lasse ich schon eine zeile weiter oben
Code:
mail = "msg: " & rnick & ">" & rmsg
eRazor97 is offline  
Old   #14
dotCom
 
Devsome's Avatar
 
elite*gold: 10077
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 17,375
Received Thanks: 4,933
Vielleicht wird wenn ENTER gedrück wird zum absenden das "ENTER" zeichen auch noch mit gesendet, daher müsstest du das "Packet" sag ich mal trozdem noch splitten oder wie du es magst, dass du nur reinen text hast.
Devsome is offline  
Old   #15
 
eRazor97's Avatar
 
elite*gold: 164
Join Date: May 2013
Posts: 147
Received Thanks: 4
Und wie genau soll ich das machen?
Mit Packets kenne ich mich null aus :S
eRazor97 is offline  
Reply


Similar Threads Similar Threads
Nachricht auf epvp mit vorgegebenem Titel und Nachricht ?
05/23/2014 - General Coding - 12 Replies
Geht sowas mit PHP oder javascript?Wenn ja kann mir das dann einer erklären.Hab schon gesucht aber nix anständiges gefunden.Es darf sich nicht auf einem Browser basieren.Geht sowas vlt.? epvp.com/forum/private.php?do=newpm&u=5690970 &title=Titel&message=Nachricht
e*pvp Nachricht
11/29/2012 - Quotes - 10 Replies
Zitat sagt alles ;D
GM Nachricht
07/09/2011 - Metin2 Private Server - 1 Replies
...
Nachricht von GM
06/16/2009 - Metin2 Private Server - 9 Replies
ein paar Leute haben grade in MSN eine Nachricht erhalten vom GM



All times are GMT +2. The time now is 16:55.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.