你好,我正试图让某个人感到不和谐,但我总是犯以下错误:
TypeError: message.setDeaf不是一个函数
不和谐的js文档指出,您应该像这样让成员耳聋。
.setDeaf(聋人) 使使用者耳聋/震耳欲聋
我不知道为什么会有这个错误,下面是我的代码;
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);
}
});
发布于 2017-05-21 06:21:31
setDeaf()
是从GuildMember
派生的函数,而不是Message
。因为Message
不包含一个名为setDeaf()
的函数,所以它给出了这个错误。
为了获得GuildMember
,也就是您想要聋/未聋的用户,您可以首先从Message
获得user
,在您的示例中,将是message.author
,它将返回发送该消息的user
。
现在,在Guild
上,有一个FetchMember()
函数返回GuildMember
数据类型。对于该函数的论点,您所要做的就是将您想要针对的user
放入其中。
(当然,您的Guild
将成为消息所在的公会!Message.Guild
应该能做到这一点。)
最后一步是让用户耳聋/震耳欲聋。
发布于 2017-11-23 20:11:17
您在Message
上使用的是Message
,而不是GuildMember
(SetDeaf()
是一个GuildMember
方法)。
此外,您还将一个不存在的值user
传递给setDeaf()
。我猜您是试图传递message.author
,但setDeaf()
使用的是布尔字符串和可选的原因字符串,而不是User
。
你可以用这个实现你想要的东西:
if(message.content == "$deafen")
message.member.setDeaf(true);
或者,增加一个理由:
if(message.content == "$deafen")
message.member.setDeaf(true, "reason");
参考文献:
https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=member
发布于 2019-06-27 09:32:18
您不能在消息上调用Server。你可以在Guild_Member上做。
如果您想获得第一个提到的成员:
let mMember = message.mentions.members.first()
mMember.setDeaf(true)
您还可以使用一个成员属性在message_author上调用它。
message.member.setDeaf(true)
但是,您不能在消息上设置Server。
https://stackoverflow.com/questions/44075573
复制相似问题