Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Discord.js v12 TypeError:无法读取属性';获得许可';未定义的_Javascript_Node.js_Discord_Discord.js - Fatal编程技术网

Javascript Discord.js v12 TypeError:无法读取属性';获得许可';未定义的

Javascript Discord.js v12 TypeError:无法读取属性';获得许可';未定义的,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我做了一个添加角色命令,并为其添加了权限。但是,在运行命令时,我得到一个错误。这是我的密码: const { MessageEmbed } = require('discord.js'); module.exports = { name: "addrole", aliases: ["ar"], description: "Adds a role to a user", async execute(clie

我做了一个添加角色命令,并为其添加了权限。但是,在运行命令时,我得到一个错误。这是我的密码:

const { MessageEmbed } = require('discord.js');
module.exports = {
    name: "addrole",
    aliases: ["ar"],
    description: "Adds a role to a user",
    async execute(client, message, args) {
        if (!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send('NO PERMS')
        if (!message.guild.me.hasPermission('MANAGE_ROLES')) return message.channel.send('NO PERMS')
        const member = message.guild.members.cache.get(args[0]);
        if (!member)
            return message.channel.send('Please mention a user or provide a valid user ID');
        if (member.roles.highest.position >= message.member.roles.highest.position)
            return message.channel.send('You cannot add a role to someone with an equal or higher role');

        const role = message.guild.roles.cache.get(args[1]);

        let reason = args.slice(2).join(' ');
        if (!reason) reason = '`None`';
        if (reason.length > 1024) reason = reason.slice(0, 1021) + '...';

        if (!role)
            return message.channel.send('Please mention a role or provide a valid role ID');
        else if (member.roles.cache.has(role.id)) // If member already has role
            return message.channel.send('User already has the provided role');
        else {
            try {

                // Add role
                await member.roles.add(role);
                const embed = new MessageEmbed()
                    .setTitle('Add Role')
                    .setDescription(`${role} was successfully added to ${member}.`)
                    .addField('Moderator', message.member, true)
                    .addField('Member', member, true)
                    .addField('Role', role, true)
                    .addField('Reason', reason)
                    .setFooter(message.member.displayName, message.author.displayAvatarURL({ dynamic: true }))
                    .setTimestamp()
                    .setColor(message.guild.me.displayHexColor);
                message.channel.send(embed);
            } catch (err) {
                return message.channel.send('Please check the role hierarchy or if the role is managed by an integeration or system', err.message);
            }
        }
    }
}
正如我前面提到的,我得到一个错误:

(node:315) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'hasPermission' of undefined
    at Object.execute (/home/runner/NonstopPastelDistributionsoftware/commands/addrole.js:7:20)
    at Client.<anonymous> (/home/runner/NonstopPastelDistributionsoftware/index.js:80:13)
    at Client.emit (events.js:315:20)
    at Client.EventEmitter.emit (domain.js:483:12)
    at MessageCreateAction.handle (/home/runner/NonstopPastelDistributionsoftware/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (/home/runner/NonstopPastelDistributionsoftware/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (/home/runner/NonstopPastelDistributionsoftware/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (/home/runner/NonstopPastelDistributionsoftware/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (/home/runner/NonstopPastelDistributionsoftware/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
    at WebSocket.onMessage (/home/runner/NonstopPastelDistributionsoftware/node_modules/ws/lib/event-target.js:125:16)
(node:315) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:315) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(节点:315)未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“hasPermission”
在Object.execute(/home/runner/nonstopperldistributionsoftware/commands/addrole.js:7:20)
在客户端。(/home/runner/nonstopperldistributionsoftware/index.js:80:13)
在Client.emit(events.js:315:20)
位于Client.EventEmitter.emit(domain.js:483:12)
在MessageCreateAction.handle(/home/runner/nonstoppsteldistributionsoftware/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
在Object.module.exports[作为MESSAGE_CREATE](/home/runner/nonstoppsteldistributionsoftware/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
在WebSocketManager.handlePacket(/home/runner/nonstopsteddistributionsoftware/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
在WebSocketShard.onPacket(/home/runner/nonstopstedistributionsoftware/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
在WebSocketShard.onMessage(/home/runner/nonstopstedistributionsoftware/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
在WebSocket.onMessage(/home/runner/nonstopsteddistributionsoftware/node_modules/ws/lib/event target.js:125:16)
(节点:315)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志“---unhandled rejections=strict”(请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (拒绝id:1)
(节点:315)[DEP0018]弃用警告:未处理的承诺拒绝被弃用。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程。

我在每个命令中使用相同的权限代码,但是第一次出现这个错误。你能帮我吗?提前感谢

尝试制作
const{MessageEmbed}=require('discord.js')
into:
const Discord=require('Discord.js')
(显然是编辑嵌入)在第一个
if
语句上方添加一个控制台日志,并检查const{MessageEmbed}=require('Discord.js')实际包含的消息into:
const Discord=require('Discord.js')
(显然要编辑嵌入)在第一个
if
语句上方添加一个控制台日志,并检查实际包含的消息