2017-05-19 2 views
0

Hallo Ich versuche, eine bestimmte Person in Zwietracht zu betäuben aber ich erhalte die folgende Fehlermeldung erhalten:Discord js ohrenbetäubend ein Benutzer

TypeError: message.setDeaf is not a function

Die docs Zustand js Zwietracht, die Sie Mitglieder wie diese betäuben sollte.

.setDeaf(deaf)

Deafen/undeafen a user.

Ich bin nicht sicher, warum ich diesen Fehler bekomme, unten ist mein Code;

var Discord = require("discord.js"); 
var client = new Discord.Client(); 
var user = "30898500862111287" 

client.on('ready',() => { 
    console.log('I am ready!'); 
}); 

client.on('message', function(message) { 
    if (message.content === '$deafen') { 
    message.setDeaf(user); 
    } 
}); 
+0

Haben Du hast th verbunden e Client zu einem Bot Benutzer? – MatejMecka

+0

Warum verwenden Sie 'setDeaf' in' message'? Ich denke, es sollte etwas wie 'user.setDeaf (true | false)' sein? (In diesem Fall müsste "Benutzer" das tatsächliche Benutzerobjekt und nicht nur eine ID sein). Beachten Sie, dass "taub" in den Dokumenten ein Boolescher Wert ist: https://discord.js.org/?_sm_au_=irVJ1Zb7fnGs56LG#/docs/main/stable/class/GuildMember?scrollTo=setDeaf –

Antwort

1

setDeaf() ist eine Funktion von GuildMember abgeleitet, nicht Message. Da Message keine Funktion setDeaf() enthält, gab es diesen Fehler.

Um GuildMember, zu erhalten, die der Benutzer, den Sie/undeafen betäuben wollen, können Sie zuerst die user vom Message, in Ihrem Fall bekommen, wird es message.author, sein, die die user zurückkehren wird, der diese Nachricht gesendet hat.

Jetzt gibt es unter Guild eine FetchMember()-Funktion, die einen GuildMember-Datentyp zurückgibt. Für das Argument dieser Funktion müssen Sie nur Ihre user, die Sie anvisieren möchten, einfügen.
(Ihr Guild wird natürlich die Zunft sein, wo die Nachricht in ist! Message.Guild sollte es tun.)

Letzter Schritt ist nur zu betäuben/undeafen den Benutzer.

0

Sie verwenden setDeaf() auf einem Message und kein GuildMember (SetDeaf() ist ein GuildMember Methode).

Darüber hinaus übergeben Sie einen nicht vorhandenen Wert user an setDeaf(). Ich schätze, Sie haben versucht, die message.author zu übergeben, aber setDeaf() nimmt eine boolesche und eine optionale Grundzeichenfolge, keine User.

können Sie erreichen, was Sie für mit diesen suchen:

if(message.content == "$deafen") 
    message.member.setDeaf(true); 

Alternativ fügen Sie einen Grund:

if(message.content == "$deafen") 
    message.member.setDeaf(true, "reason"); 

Referenzen:
Message Object
GuildMember Object

Verwandte Themen