【发布时间】:2020-06-19 12:16:38
【问题描述】:
我正在编写一个 discord.js 机器人,它给了我标题中列出的错误。我正在使用 discord.js 11 当用户添加角色时,这段代码会赋予用户角色。
client.on('raw', async event => {
if (!events.hasOwnProperty(event.t)) return;
const {
d: data
} = event;
const user = client.users.get(data.user_id);
const channel = client.channels.get(data.channel_id);
const message = message.channel.fetchMessage(data.message_id);
const member = message.guild.members.get(user.id);
const emojiKey = (data.emoji.id) ? `${data.emoji.name}:${data.emoji.id}` : data.emoji.name;
let reaction = message.reactions.get(emojiKey);
if (!reaction) {
// Create an object that can be passed through the event like normal
const emoji = new Emoji(client.guilds.get(data.guild_id), data.emoji);
reaction = new MessageReaction(message, emoji, 1, data.user_id === client.user.id);
}
let embedFooterText;
if (message.embeds[0]) embedFooterText = message.embeds[0].footer.text;
if (
(message.author.id === client.user.id) && (message.content !== CONFIG.initialMessage ||
(message.embeds[0] && (embedFooterText !== CONFIG.embedFooter)))
) {
if (!CONFIG.embed && (message.embeds.length < 1)) {
const re = `\\*\\*"(.+)?(?="\\*\\*)`;
const role = message.content.match(re)[1];
if (member.id !== client.user.id) {
const guildRole = message.guild.roles.find(r => r.name === role);
if (event.t === "MESSAGE_REACTION_ADD") member.addRole(guildRole.id);
else if (event.t === "MESSAGE_REACTION_REMOVE") member.removeRole(guildRole.id);
}
} else if (CONFIG.embed && (message.embeds.length >= 1)) {
const fields = message.embeds[0].fields;
for (const {
name,
value
} of fields) {
if (member.id !== client.user.id) {
const guildRole = message.guild.roles.find(r => r.name === value);
if ((name === reaction.emoji.name) || (name === reaction.emoji.toString())) {
if (event.t === "MESSAGE_REACTION_ADD") member.addRole(guildRole.id);
else if (event.t === "MESSAGE_REACTION_REMOVE") member.removeRole(guildRole.id);
}
}
}
}
}
});
错误说这行是错误的:const message = message.channel.fetchMessage(data.message_id);
但我不知道如何解决它。
【问题讨论】:
标签: discord.js