Hallo Leute,
ich hab mal grade ein Problem :D Also, es geht darum, dass ich einen Bot für Skype schreibe, der automatisch auf bestimmte Trigger eine Antwort zurückschreibt - wie gesagt, eine Antwort. Nur leider schreibt er zwei :/
Hier ist mein Code:
Code:
using SKYPE4COMLib;
using System;
using System.Windows.Forms;
namespace SkypeBot
{
public partial class Form1 : Form
{
private Skype skype;
private const string trigger = "#";
private const string nick = "[BOT] Oneiiros: ";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
skype = new Skype();
//Protocol version
skype.Attach(8, false);
skype.MessageStatus +=
new _ISkypeEvents_MessageStatusEventHandler(skype_MessageStatus);
}
private void skype_MessageStatus(ChatMessage msg, TChatMessageStatus status)
{
label1.Text = "Got a message"; //nur zu Testzwecken
//wenn Nachricht mit Trigger startet....
if (msg.Body.IndexOf(trigger) == 0)
{
label2.Text = "Message starts with a trigger"; //nur zu Testzwecken
//trigger entfernen, command zu lowercase
string command = msg.Body.Remove(0, 1).ToLower();
label3.Text = "Command is: " + command; //nur zu Testzwecken
//schreibe Antwort
skype.SendMessage(msg.Sender.Handle, nick + ProcessCommand(command));
label4.Text = "Response sent"; //nur zu Testzwecken
}
}
private string ProcessCommand(string str)
{
string result;
switch (str)
{
case "help":
result = "---HELP TEXT---";
break;
case "test":
result = "It's alive!";
break;
default:
result = "Unknown command, #help for help.";
break;
}
return result;
}
}
}