我试图制造一个不和谐的机器人,它读取服务器中的每个Emoji反应,并为反应用户分配一个特定于Emoji的特定角色。
我的代码应该将角色Red分配给服务器中任何消息中的用户。将Blue角色分配给服务器中任何消息中的用户。将黄色角色分配给服务器中任何消息中的用户。
以下是这些角色的ID:
Red: <@&870162738561814578>
Blue: <@&870162842983206922>
Yellow: <@&870162885412810773>下面是机器人的代码片段:
const RYellow = '<@&870162885412810773>';
const RBlue = '<@&870162842983206922>';
const RRed = '<@&870162738561814578>';
const RRedEmoji = '';
const RBlueEmoji = '';
const RYellowEmoji = '';
client.on('messageReactionAdd', async (reaction, user) => {
if (reaction) await reaction.fetch();
if (user.bot) return;
console.log(reaction);
if (reaction.emoji.name === RYellowEmoji) {
await reaction.message.guild.members.cache.get(user.id).roles.add(RYellow);
await reaction.message.guild.members.cache.get(user.id).roles.remove(RRed);
await reaction.message.guild.members.cache.get(user.id).roles.remove(RBlue);
}
if (reaction.emoji.name === RRedEmoji) {
await reaction.message.guild.members.cache.get(user.id).roles.add(RRed);
await reaction.message.guild.members.cache
.get(user.id)
.roles.remove(RYellow);
await reaction.message.guild.members.cache.get(user.id).roles.remove(RBlue);
}
if (reaction.emoji.name === RBlueEmoji) {
await reaction.message.guild.members.cache.get(user.id).roles.add(RBlue);
await reaction.message.guild.members.cache.get(user.id).roles.remove(RRed);
await reaction.message.guild.members.cache
.get(user.id)
.roles.remove(RYellow);
}
});以下是错误:
E:\Projects\DBot\node_modules\discord.js\src\managers\GuildMemberRoleManager.js:93抛出新的TypeError(“无效类型”、“角色”、“角色、雪花或数组或角色集合或雪花”);^ TypeError INVALID_TYPE:提供的角色不是角色、雪花或数组或角色集合或雪花。在客户端的(E:\Projects\DBot\node_modules\discord.js\src\managers\GuildMemberRoleManager.js:93:15) GuildMemberRoleManager.add。(E:\Projects\DBot\index.js:49:71)在processTicksAndRejections (节点:内部/进程/任务队列:96:5){符号(代码):'INVALID_TYPE‘}
那我做错什么了?
发布于 2021-07-29 07:26:09
<@&870162885412810773>不是雪花或ID。您需要删除<@&和>
const RYellow = '870162885412810773'
const RBlue = '870162842983206922'
const RRed = '870162738561814578'
// ...https://stackoverflow.com/questions/68571765
复制相似问题