Guten Tag,

folgendes Snippet habe ich vor paar Monaten für ein kleines Testprojekt von mir benötigt und da eventuell jemand es benötigen könnte, stelle ich es Opensource. Ist nichts großartiges, es zeigt nur an, wer von wem geknuddelt wurde.

Spoiler:
[highlight=csharp]
using System;
using System.Threading;
using System.Text.RegularExpressions;

namespace Knuddels
{
class KnuddlerInfo
{
#region Global

private String sender, receiver;
private bool success;

private String[] Knuddelmessages = new String[] {
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° °RR°knuddelt°BB° °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° ein bisschen.",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° °RR°knuddelt°BB° eifrig drauf los. °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° ist das erwählte Opfer.",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° °RR°knuddelt°BB° heute richtig gut. Diesmal hat °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° einen abbekommen.",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° zieht °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° beiseite und °RR°knuddelt°BB° wie wild drauf los. °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° hat jetzt (\\d+) Knuddels!",
"Es wird wieder °RR°geknuddelt°BB°! °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° scheint °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° sehr gerne zu haben...",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° hat °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° scheinbar richtig gern und °RR°knuddelt°BB° eifrig drauf los.",
"°>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° wird Opfer von °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<°'s °RR°Knuddelattacke°BB°. (\\d+) Knuddels hat °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° nun.",
"°>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° wird von °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° mit einem °RR°Knuddelüberfall°BB° überrascht. Auf (\\d+) Knuddels kommt °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° nun.",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° °RR°knuddelt°BB° °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<°, sodass °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° jetzt auf (\\d+) Knuddels kommt.",
"°>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° wird von °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° liebevoll °RR°geknuddelt°BB°.",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° nimmt °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° in den Arm und °RR°knuddelt°BB° mal so richtig.",
"°>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° kann sich gar nicht gegen das herzliche °RR°Knuddeln°BB° von °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° wehren.",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° ist gerade in °RR°Knuddellaune°BB° und stürzt sich sogleich auf °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<°. (\\d+) Knuddels hat °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° nun.",
"Auf (\\d+) Knuddels kommt °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° nun, nachdem °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° so richtig °RR°geknuddelt°BB° hat. (.*?) würde auch gern mitmachen.",
"°>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° wird von °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° so richtig °RR°durchgeknuddelt°BB°. Auf (\\d+) Knuddels kommt °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° nun.",
"°>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° wird Opfer eines °RR°Knuddelüberfalls°BB° von °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<°.",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° °RR°knuddelt°BB° °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° mal so richtig durch. °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° hat jetzt (\\d+) Knuddels!",
"°>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° wird von °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° mal so richtig °RR°durchgeknuddelt°BB°.",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° °RR°knuddelt°BB° °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° ganz liebevoll, sodass °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° nun auf (\\d+) Knuddels kommt.",
"Es wird wieder °RR°geknuddelt°BB°! °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° scheint °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° sehr gerne zu haben...",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° schnappt sich °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° und °RR°knuddelt°BB° drauf los.",
"°>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° bekommt von °>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° den (\\d+). °RR°Knuddel°BB°.",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° °RR°knuddelt°BB° °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° ganz liebevoll, sodass °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° nun auf (\\d+) Knuddels kommt.",
"°>_h(?<snd>([^\\|]+))\\|/serverpp "\\|/w "<° °RR°knuddelt°BB° heute richtig gut. Diesmal hat °>_h(?<rcv>([^\\|]+))\\|/serverpp "\\|/w "<° einen abbekommen."
};

#endregion

#region Infos

public String Sender
{
get { return sender; }
}

public String Receiver
{
get { return receiver; }
}

public bool Success
{
get { return success; }
}

#endregion

public KnuddlerInfo(String message)
{
for (int i = 0; i < Knuddelmessages.Length; i++)
{
Regex r = new Regex(Knuddelmessages[i]);

if (r.IsMatch(message))
{
this.sender = r.Match(message).Groups["snd"].Value;
this.receiver = r.Match(message).Groups["rcv"].Value;

success = true;

break;
}
}
}
}
}

[/highlight]

Benutzung via KNLib (OnTokenReceived-Event):

[highlight=csharp]
case "t":

KnuddlerInfo kndlerInfo = new KnuddlerInfo(token[3]);

if (kndlerInfo.Success)
{
Console.WriteLine("Der User {0} wurde von dem User {1} geknuddelt.", kndlerInfo.Receiver, kndlerInfo.Sender);
}

break;[/highlight]