2017-05-12 3 views
0

Ich bin neu hier, also verurteile mich nicht, Ich möchte einen Befehl erstellen! Poke, die eine direkte Nachricht (PM) an angegebene Benutzer sendet, aber ich kann anscheinend keine Möglichkeit finden, userid zu füttern, und Dokumentation ist für discord.net praktisch nicht vorhanden.Discord.net senden direkte Nachricht (PM) an angegebene Benutzer

 commands.CreateCommand("poke") 
      .Parameter("target") 
      .Do(async (e) => 
      { 
       ulong userID = e.User.Id; 
       Console.WriteLine("[" + e.Server.Name + "]" + e.User.Name + " just poked " + e.GetArg("target")); 
       await e.User.SendMessage("HEY, wake up! "); 
      }); 

Antwort

2

Es gibt ein paar Möglichkeiten, dies zu tun, erste private Kanal mit dem Befehl schafft:

   var c = discord.CreatePrivateChannel(ulong userid); 

und Senden der Nachricht von ihm wie folgt aus:

   await c.SendMessage("blabla"); 

und eine andere Art und Weise speichert Benutzer als Objekt und dann Nachricht von ihm senden.

   User u = null; 
       string findUser = e.GetArg("target"); 

         u = e.Message.MentionedUsers.FirstOrDefault(); //checking mentioned users 
         u = e.Server.FindUsers(findUser).FirstOrDefault(); //looking for specified user in server 

       await u.SendMessage("HEY, wake up! "); 

Mein Befehl sieht wie folgt aus:

 commands.CreateCommand("poke") 
      .Parameter("target", ParameterType.Required) 
      .Do(async (e) => 
      { 
       ulong id; 
       User u = null; 
       string findUser = e.Args[0]; 

       if (!string.IsNullOrWhiteSpace(findUser)) 
       { 
        if (e.Message.MentionedUsers.Count() == 1) 
         u = e.Message.MentionedUsers.FirstOrDefault(); 
        else if (e.Server.FindUsers(findUser).Any()) 
         u = e.Server.FindUsers(findUser).FirstOrDefault(); 
        else if (ulong.TryParse(findUser, out id)) 
         u = e.Server.GetUser(id); 
       } 
       Console.WriteLine("[" + e.Server.Name + "]" + e.User.Name + " just poked " + u); 
       await u.SendMessage("HEY, wake up! "); 
      }); 
0

Alternativ

var u = Context.Message.Author; // Or some other means of getting user_id 
string msg = "your message"; 
await Discord.UserExtensions.SendMessageAsync(u, msg); 
Verwandte Themen