【发布时间】:2021-03-12 05:27:30
【问题描述】:
正如标题所暗示的那样,我很难找到有效的明确答案。
我尝试过使用:
message.guild.members.cache.get(args[0]); returns null
message.guild.members.fetch(args[0]); returns undefined
message.guild.member(args[0]); returns undefined
我的代码现在看起来像这样,但我不知道为什么它仍然返回 undefined 和 !offender 行...有什么想法吗?
let Offender = message.guild.member(message.mentions.users.first()) || message.guild.members.cache.get(args[0]) //returns mentioned user
// Was offender mentioned?
console.log(Offender)
if (!Offender) return message.channel.send(`You need to mention someone or give me their ID!`);
正如@Lioness100 所说 - 它确实返回 GuildMember 承诺,并且不会触发前面提到的“if (!Offender)”。但现在我们面临另一个问题,即我再次收到“Offender(...).haspermission... 不是函数” - 有什么想法吗?
if (Offender().hasPermission('KICK_MEMBERS')) return message.channel.send(`You can't kick that user!`);
正如@a2br 所说,仍然返回“Offender.hasPermission 不是函数” 代码:
if (!Offender) return message.channel.send(`You need to mention someone or give me their ID!`);
if (Offender.hasPermission('KICK_MEMBERS')) return message.reply(`You can't kick that user!`);
【问题讨论】:
-
你在哪里定义 args?
-
在执行中(消息,参数)
-
再次尝试 fetch 方法,但这次是
await它(它返回一个承诺) -
当它返回它没有属性
hasPermission时,能否请您给我们Offender的类型? (另外,你应该将 var 名称更改为小写,这样的变量名称通常用于类,这可能会造成混淆) -
我尝试了所有三种方法——它们都返回了一些关于公会和用户的信息,而不是公会成员——所以是的,它没有 hasPermission 属性(谢谢,我在编码时会记住这一点从现在开始)
标签: javascript discord discord.js