【发布时间】:2021-11-03 03:20:43
【问题描述】:
我不明白这里有什么问题?它一直告诉我
(node:30) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'on' of undefined
是因为我将client.on 事件放在命令中而不是机器人核心文件中吗?我尝试将两个client.on 事件都放在那里,但当我执行命令时,它仍然没有给我配置的角色。
const Discord = require("discord.js");
const {MessageEmbed} = require('discord.js')
const bot = new Discord.Client();
module.exports = {
name: 'games',
description: "Select the games",
async execute(message, args, Discord, bot) {
if(message.member.roles.cache.has('552561546039918593')) {
const channel = '905072473899409438';
const gifsRole = message.guild.roles.cache.find(role => role.name === "GIFS");
const emojiRole = message.guild.roles.cache.find(role => role.name === "EMOJIS");
const gifs = ('<:hersheys:823607413843951646>');
const emoji = ('<:glokez:858101005512867892>');
const gifsEmoij = ('823607413843951646');
const emojiEmoij = ('858101005512867892');
let embed = new MessageEmbed()
.setColor('#e42643')
.setTitle('<a:sparkles1:905070246610739240> **Role Selection**')
.setDescription(`Choose what roles you want to access!\n\n`
+ `${gifs} **(** GIFS **)**\n`
+ `${emoji} **(** EMOJIS **)**`);
let messageEmbed = await message.channel.send(embed);
messageEmbed.react(gifsEmoij);
messageEmbed.react(emojiEmoij);
bot.on('messageReactionAdd', async (reaction, user) => {
if (reaction.message.partial) await reaction.message.fetch();
if (reaction.partial) await reaction.fetch();
if (user.bot) return;
if (!reaction.message.guild) return;
if (reaction.emoji.id === gifsEmoji) {
await reaction.message.guild.members.cache.get(user.id).roles.add(gifsRole);
}
if (reaction.emoji.id === emojiEmoji) {
await reaction.message.guild.members.cache.get(user.id).roles.add(emojiRole);
}
else {
return;
}
});
bot.on('messageReactionRemove', async (reaction, user) => {
if (reaction.message.partial) await reaction.message.fetch();
if (reaction.partial) await reaction.fetch();
if (user.bot) return;
if (!reaction.message.guild) return;
if (reaction.message.channel.id == channel) {
if (reaction.emoji.id === gifsEmoji) {
await reaction.message.guild.members.cache.get(user.id).roles.add(gifsRole);
}
if (reaction.emoji.id === emojiEmoji) {
await reaction.message.guild.members.cache.get(user.id).roles.add(emojiRole);
}
} else {
return;
}
});
}}}
【问题讨论】: