【发布时间】:2021-08-27 14:39:30
【问题描述】:
我想知道为什么没有定义 id 以及如何解决它。我真的坚持这一点,因为该命令昨天工作得很好。有我不知道的更新吗?我的编码是不是完全错了?
这是我的代码:
const { Permissions } = require('discord.js')
module.exports = {
name: 'test',
description: "A test command",
execute(client, message, args) {
const member = message.mentions.users.first();
const memberTarget = message.guild.members.cache.get(member.id);
const roleOne = message.guild.roles.cache.find(role => role.name === "Role Name 1")
const roleTwo = message.guild.roles.cache.find(role => role.name === "Role Name 2")
if (!message.guild.roles.cache.find(role => role.name === "Role Name 1")) {
message.guild.roles.create({
data: {
name: "Role Name 1",
color: "#FF8CC5",
permissions: [Permissions.FLAGS.MANAGE_MESSAGES]
}
});
}
if (!memberTarget.roles.cache.has(roleOne.id)) {
if (!memberTarget.roles.cache.has(roleTwo.id)) {
message.channel.send("This member doesn't have either role!")
} else {
message.channel.send("This member has Role Two")
}
} else {
message.channel.send("This member has Role One")
}
}
}
确切的错误是:
const memberTarget = message.guild.members.cache.get(member.id); ^ TypeError:无法读取未定义的属性“id”
【问题讨论】:
-
这表明没有用户提及。确保您提及的是成员。
-
我明白了,但是,我想问另一件事。昨天,我使用它的主要命令运行良好,它允许我在不提及玩家的情况下键入命令,导致它返回一条消息,说您需要提及某人。但是现在突然之间,我不得不提及别人,弹出一个错误。我真的很困惑为什么会突然发生这种情况。我不确定我是否稍微改变了我的命令,但我真的很想知道,如果你知道的话,我怎么能做到这一点
-
您可能更改了代码或其他内容。要检查是否提到了用户,您只需在设置
memberTarget之前检查member是否为空/未定义
标签: javascript discord discord.js