【发布时间】:2021-08-11 02:23:49
【问题描述】:
我正在尝试创建一个命令来添加对特定消息的反应。
命令是:/react "Channel-ID" "Message-ID" "Emoji"
但是在运行命令时出现此错误:
(node:4) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid 表单正文:channel_id:值“845345565700128788 <:xplane11:845383490286518322>" 不是雪花。
有什么简单的方法可以解决这个问题吗?
谢谢
client.on("message", message => {
if (message.author.bot) return;
let messageArray = message.content.split(" ");
let command = messageArray[0];
let channelid = messageArray.slice(1);
let messageid = messageArray.slice(2);
let emoji = messageArray.slice(3);
if (message.channel.type === "dm") return;
if (!message.content.startsWith('/')) return;
if (command === '/react') {
let memberrole = message.member.roles.cache.find(role => role.name === "CEO");
if (!memberrole) return message.channel.send('Insufficiant Perms');
message.client.channels.fetch(channelid.slice(1).join(" ")).then(channel => {
channel.messages.fetch(messageid.slice(2).join(" ")).then(message => {
message.react(emoji.slice(3).join(" "));
})
})
}});
对于任何想知道的人,这是有效的代码:
client.on('message', async (message) => {
if (
message.author.bot ||
message.channel.type === 'dm' ||
!message.content.startsWith(prefix)
)
return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (command === 'react') {
const [channelId, messageId, emoji] = args;
if (!channelId)
return message.channel.send(`You need to provide a channel ID`);
const memberrole = message.member.roles.cache.find((role) => role.name === 'CEO');
if (!memberrole) return message.channel.send('Insufficiant perms');
try {
const channel = await message.client.channels.fetch(channelId);
if (!channel)
return message.channel.send(`No channel found with the ID ${channelId}`);
const msg = await channel.messages.fetch(messageId);
if (!msg)
return message.channel.send(`No message found with the ID ${messageId}`);
msg.react(emoji);
} catch (error) {
console.log(error);
message.channel.send('Oh-oh, there was an error...');
}
}
});
【问题讨论】:
标签: javascript node.js discord.js