2017-12-16 7 views
0

Ich versuche gerade, meinen eigenen Bot für meinen Discord-Server zu erstellen. Ich möchte für einen Benutzer in der Lage sein, den Befehl ** Ereignis einzugeben, dann wird der Bot Nachricht diesen Benutzer leiten und ihm einige Fragen für das Ereignis, wie Titel, Zeit usw. stellen.discord bot C# lesen empfangene direkte Nachricht

kann ich um den Bot zu veranlassen, den Benutzer direkt zu informieren, aber ich kann nicht finden, wie man den Bot dazu bringt, die Nachricht zu lesen, die der Benutzer zurücksendet.

Hier ist mein Code so weit:

public class Event : ModuleBase<SocketCommandContext> { 

    private static IUser currentUser; 
    private DiscordSocketClient _client; 

    [Command("event")] 
    public async Task EventAsync() { 
     _client = new DiscordSocketClient(); 

     var id = Context.User.Mention; 

     if(currentUser == null) { 
      foreach(var user in Context.Guild.Users) { 
       if(("<@!" + user.Id.ToString() + ">") == id) { 
        currentUser = user; 
        id = user.Mention; 
        break; 
       } 
      } 
     } 

     await currentUser.SendMessageAsync("Enter event title:"); 
    } 
} 

Antwort

0

ich dies herauszufinden konnte. Im Hauptprogramm.cs

static void Main(string[] args) 
    => new Program().RunBotAsync().GetAwaiter().GetResult(); 

public async Task RunBotAsync() { 
    _client.MessageReceived += MessageReceived; 
} 

private async Task MessageReceived(SocketMessage msg) { 
    //Code to direct message here 
}