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
语句上方添加一个控制台日志,并检查实际包含的消息