2015-03-27 3 views
-7

Я делаю Skype-бот на C#, но у меня проблема. Он не читает мои собственные команды, а только команды, полученные другими.Skype BOT C# Не работает корректно

Когда я добавляю что-то вроде «! Resolve (username)», он заставляет весь код прослушиваться с помощью bugged up, я имею в виду, что он просто сбрасывает инструмент, когда я его запускаю.

Может кто-нибудь, пожалуйста, посмотрите, есть ли серьезные проблемы.

private Skype skype; 
    private const string trigger = "!"; 
    private const string nick = "The OG Bot"; 

И это

private string ProcessCommand(string str) 
    { 
     string result; 
     switch (str) 
     { 
      case "resolve": 
       result = "Currently Not Working Will Fix Soon."; 
       break; 
      case "help": 
       result = "Here are some commands you can run. \n !resolve \n !date \n !time \n !who \n !swag \n !ip"; 
       break; 
      case "date": 
       result = "Current Date is: " + DateTime.Now.ToLongDateString(); 
       break; 
      case "time": 
       result = "Current Time is: " + DateTime.Now.ToLongTimeString(); 
       break; 
      case "who": 
       result = "This API was created by TehMerkMods"; 
       break; 
      case "ip": 
       result = new WebClient().DownloadString("http://icanhazip.com"); 
       break; 
      case "swag": 
       result = "(mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) "; 
       break; 
      default: 
       result = "Sorry, I do not recognize your command"; 
       break; 
     } 

     return result; 
    } 

И последний из всех

private void skype_MessageStatus(ChatMessage msg, TChatMessageStatus status) 
    { 
     if (TChatMessageStatus.cmsRead == status) 
     { 
      return; 
     } 

     if (msg.Body.IndexOf(trigger) == 0 && TChatMessageStatus.cmsReceived == status) 
     { 
      string command = msg.Body.Remove(0, trigger.Length).ToLower(); 
      skype.SendMessage(msg.Sender.Handle, nick + " : " + ProcessCommand(command)); 
     } 
    } 
+0

Что вы имеете в виду, что «делает код все прослушивается до»? Опишите поведение, которое вы ожидаете, и поведение, которое вы видите. Нам нужны детали. – Amy

+0

@Amy Ну в основном это не захватывает функции после этого, он просто дает мне ошибку сборки, в основном, он не может читать мои собственные команды, что бы я ни делал, но читал, что другие пользователи посылали команды просто отлично – TehMerkMods

+1

Не могли бы вы отправить сообщение об ошибке, когда он падает? –

ответ

0

У вас есть, если заявление в последнем разделе кода, который только ищет для TChatMessageStatus.cmsReceived. Это сообщение никогда не будет истинным, когда вы отправляете сообщение, потому что вы не получаете свои собственные сообщения.

Что касается программы сбой ... вам нужно предоставить дополнительную информацию.

1

Вы только получаете «получил», вам нужно получить «отправить» также

Пример:

if (TChatMessageStatus.cmsReceived Or Status = TChatMessageStatus.cmsSent)