【发布时间】:2021-05-18 03:35:13
【问题描述】:
希望你能帮上忙。这一直让我发疯。我是编程和 JS 的新手,但我正在制作一个不和谐的机器人作为一个爱好项目。如果我没有使用正确的术语,请原谅我,但我认为我的问题实际上应该很简单。
我有一个机器人可以构建带有嵌入的消息。该机器人通过收集器进行侦听,并根据他们的反应将玩家添加到嵌入的字段中。例如,请参见屏幕截图。玩家可以将自己添加到“Farming”“Not Farming”或“Starter”中
当我发布初始嵌入时,我会清除频道中的所有置顶消息并置顶此消息,因此带有我状态嵌入的帖子将始终是频道中唯一置顶的帖子。
我想做的是输入一个类似“!placed @user”的命令,并且@提到的用户应该从原始帖子中删除他们的反应。获取消息 ID 和用户 ID 没有问题,但我似乎无法将两者结合起来以消除他们的反应。这是我的代码的摘录:
message.channel.messages.fetchPinned().then(messages => {
console.log(`Received ${messages.size} messages`);
var testuserid = message.mentions.users.first().id;
messages.forEach(message => {
message.reactions.resolve("????").users.remove(testuserid);
})
})
问题是最后一行message.reactions.resolve。我已经尝试过使用表情符号字符或代码、硬编码用户 ID 等的各种组合
我似乎总是以类似以下的错误告终:
UnhandledPromiseRejectionWarning:TypeError:无法读取属性 null 的“用户”
message.reactions.removeAll() 确实有效,但会删除包括机器人在内的所有反应。
我从here 获得了此代码,但尝试了许多其他代码组合,包括this one,我似乎根本无法工作(与不在异步函数中有关)。
请告诉我我遗漏了一些简单的东西!
【问题讨论】:
标签: javascript node.js discord.js