首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使人震耳欲聋

使人震耳欲聋
EN

Stack Overflow用户
提问于 2017-05-19 17:12:09
回答 6查看 4.4K关注 0票数 0

你好,我正试图让某个人感到不和谐,但我总是犯以下错误:

TypeError: message.setDeaf不是一个函数

不和谐的js文档指出,您应该像这样让成员耳聋。

.setDeaf(聋人) 使使用者耳聋/震耳欲聋

我不知道为什么会有这个错误,下面是我的代码;

代码语言:javascript
运行
复制
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);
  }
});
EN

回答 6

Stack Overflow用户

发布于 2017-05-21 06:21:31

setDeaf()是从GuildMember派生的函数,而不是Message。因为Message不包含一个名为setDeaf()的函数,所以它给出了这个错误。

为了获得GuildMember,也就是您想要聋/未聋的用户,您可以首先从Message获得user,在您的示例中,将是message.author,它将返回发送该消息的user

现在,在Guild上,有一个FetchMember()函数返回GuildMember数据类型。对于该函数的论点,您所要做的就是将您想要针对的user放入其中。

(当然,您的Guild将成为消息所在的公会!Message.Guild应该能做到这一点。)

最后一步是让用户耳聋/震耳欲聋。

票数 2
EN

Stack Overflow用户

发布于 2017-11-23 20:11:17

您在Message上使用的是Message,而不是GuildMember (SetDeaf()是一个GuildMember方法)。

此外,您还将一个不存在的值user传递给setDeaf()。我猜您是试图传递message.author,但setDeaf()使用的是布尔字符串和可选的原因字符串,而不是User

你可以用这个实现你想要的东西:

代码语言:javascript
运行
复制
if(message.content == "$deafen")
     message.member.setDeaf(true);

或者,增加一个理由:

代码语言:javascript
运行
复制
if(message.content == "$deafen")
     message.member.setDeaf(true, "reason");

参考文献:

https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=member

https://discord.js.org/#/docs/main/stable/class/GuildMember

票数 0
EN

Stack Overflow用户

发布于 2019-06-27 09:32:18

您不能在消息上调用Server。你可以在Guild_Member上做。

如果您想获得第一个提到的成员:

代码语言:javascript
运行
复制
let mMember = message.mentions.members.first()

mMember.setDeaf(true)

您还可以使用一个成员属性在message_author上调用它。

代码语言:javascript
运行
复制
message.member.setDeaf(true)

但是,您不能在消息上设置Server。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44075573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档