我对消息的反应有问题,我让bot删除频道名称上诉
上发送的任何消息,并将其发送到另一个频道名称上诉
,并使用:white\u check\u mark:对消息作出反应,如果有人对消息作出反应时使用:white\u check\u mark:,bot将自动删除bot,
这是工作,但有一个问题,如果我重新启动机器人,并对重新启动前发送的消息作出反应,机器人不会删除消息
为什么?
client.on('message', async message => {
if(message.author.bot) return;
var muted = message.guild.member(message.author).roles.find(j => j.id === "505763004797812766");
if (muted && message.channel.id === "563944611693854721"){
var muted = message.guild.member(message.author).roles.find(j => j.id === "505763004797812766");
const args = message.content.split(" ").slice(0).join(" ");
const appeal = new Discord.RichEmbed()
.setAuthor(message.author.username, message.author.avatarURL)
.setTitle(message.author.username + " appeal")
.setColor("RED")
.addField("Message", args);
message.guild.channels.find(ch => ch.id === "563966341980225536").send(appeal).then(msg => {
msg.react('✅');
client.on('messageReactionAdd', (reaction, user) => {
if(reaction.emoji.name === "✅") {
const whitecheckmark = (reaction, user) => reaction.emoji.name === "✅";
const done = msg.createReactionCollector(whitecheckmark, {time: 60000});
done.on('collect', r => {
msg.delete();
message.guild.channels.find(ch => ch.id === "563966341980225536").send(message.author + " Appeal ended by: " + reaction.users.last())
})
}
});
})
message.delete();
message.channel.overwritePermissions(message.author, {SEND_MESSAGES: false});
}
else if(!muted && message.channel.id === "563944611693854721"){
message.channel.overwritePermissions(message.author, {SEND_MESSAGES: true});
}
});
一般来说,“嵌套”事件(即在其他事件中添加侦听器)不是一种好的做法。如果将messageReactionAdd
侦听器单独放置在message
事件之外,它将侦听而不需要发送消息。然后,如果消息被发送并且bot重新启动,则仍然会触发反应事件。只需确认触发事件的消息确实是应该被触发的消息。
这是设计事件。解决这个问题的唯一方法是将这些事件排入某种持久的队列,如RabbitMQ或NATS,假设这些事件在重新启动前到达听众。
我正在开发一个Discord机器人,但当我尝试向频道发送消息时,它不起作用。 我尝试使用代码
我有一个工作的反应角色菜单,可以很好地分配和带走角色,直到机器人重新启动,然后停止分配/带走角色,我正在努力找到一个与此反应菜单工作方式相匹配的解决方案。
我有错误,我检查了这个-discord bot-userinfo命令“IndentationError:unexpected indent”,但我不知道如何修复我的代码 此行出错- 这是我所有的功能
试图运行一个不和谐的机器人 这是密码 我得到这个错误: C:\Users\josep\AppData\Local\Programs\Python\Python 38\Python。exe C:/Users/josep/Desktop/unsettler/unsettler。py C:/Users/josep/Desktop/unsettler/unsettler。py:12:RuntimeWarn
当我在discord内部运行以下脚本(“cmd中的node musicbot.js”)和“!play ytlink”时,bot加入语音通道,并在控制台中记录命令和链接。然而,音乐并没有开始播放。我安装了ffmpeg、ytdl核心和discord。js。 有人能帮我吗?我不知道是哪一部分搞砸了。
null 我的代码 控制器 刀 我正在使用从 我还通过将URL复制粘贴到我的浏览器中来验证URL在该服务方法中是否有效。它确实会返回JSON,这省略了错误URL或错误的可能性。