为了账号安全,请及时绑定邮箱和手机立即绑定

(Discord.js) 类型错误:无法读取未定义的属性“添加”

(Discord.js) 类型错误:无法读取未定义的属性“添加”

德玛西亚99 2023-01-06 16:17:00

所以这是代码:


const mutedRole = message.guild.roles.cache.find(role => role.name === "Muted");

        

        if (!mutedUser) return message.channel.send()

        if (!message.author) return;

   

        if (!mutedRole) {

            message.guild.roles.create({

                data: {

                  name: 'Muted',

                  color: '#6C877C',

                  permissions: ["CREATE_INSTANT_INVITE", "VIEW_CHANNEL"],

                },

              })

                .catch(console.error);

        }

        mutedUser.roles.add(mutedRole).catch(console.error);


正如在代码中看到的那样,我添加了机器人将在角色不可用时扮演角色的部分。但是,它仍然认为该角色从未存在过。


在复制之前,我还写了这样的代码:


            if (!mutedRole) {

                guild.roles.create({

                    data: {

                      name: 'Muted',

                      color: '#6C877C',

                      permissions: ["CREATE_INSTANT_INVITE", "VIEW_CHANNEL"],

                    },

                  })

                    .catch(console.error);

            }

结果还是一样。我还将机器人的角色放在我的测试服务器上所有角色的最顶层列表中。谁能找出原因?


我目前正在使用 discord.js v12 和稳定版本的节点。


注意:完整代码在这里:https ://github.com/centralomd/breadbot/blob/master/commands/mute.js


查看完整描述

1 回答

?
RISEBY

TA贡献1616条经验 获得超5个赞

错误来自第 14 行:

const mutedUser = message.mentions.users.first() || message.guild.members.get(args[0])

如果集合中没有提及,则message.mentions.users您正在尝试获取GuildMemberusing message.guild.members.get()

Discord JS v12 引入了管理器的概念,您将无法再直接使用 Collection 方法,例如在 和Collection.get()等数据结构Client.usersGuild.members

你必须改变它:

const mutedUser = message.mentions.users.first() || message.guild.members.cache.get(args[0])
if (!mutedUser) return message.channel.send("Invalid user.");

注意:message.mentions.users也会获得其他公会的用户。我建议你使用message.mentions.members.


查看完整回答
反对 回复 2023-01-06
  • 1 回答
  • 0 关注
  • 10 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信