gpt4 book ai didi

javascript - 如何让机器人在 react 后发送消息到另一个 channel | Discord.js

转载 作者:行者123 更新时间:2023-12-01 16:25:14 24 4
gpt4 key购买 nike

我该如何做到,当有人对此命令中的第一个表情符号使用react时,机器人会删除该消息并将其发送到另一个 channel ?

当前代码:

const Discord = require("discord.js");

module.exports.run = async (bot, message, args) => {
if (!message.member.hasPermission("MANAGE_MESSAGES"))
return message.channel.send("You are not allowed to run this command.");
let botmessage = args.join(" ");
let pollchannel = bot.channels.cache.get("716348362219323443");
let avatar = message.author.avatarURL({ size: 2048 });

let helpembed = new Discord.MessageEmbed()
.setAuthor(message.author.tag, avatar)
.setColor("#8c52ff")
.setDescription(botmessage);

pollchannel.send(helpembed).then(async msg => {
await msg.react("715383579059945512");
await msg.react("715383579059683349");
});
};
module.exports.help = {
name: "poll"
};

最佳答案

您可以使用 awaitReactionscreateReactionCollectormessageReactionAdd 事件,我认为 awaitReactions 是最好的选择,因为另外两个用于更全局化的目的,

const emojis = ["715383579059945512", "715383579059683349"];
pollchannel.send(helpembed).then(async msg => {

await msg.react(emojis[0]);
await msg.react(emojis[1]);

//generic filter customize to your own wants
const filter = (reaction, user) => emojis.includes(reaction.emoji.id) && user.id === message.author.id;
const options = { errors: ["time"], time: 5000, max: 1 };
msg.awaitReactions(filter, options)
.then(collected => {
const first = collected.first();
if(emojis.indexOf(first.emoji.id) === 0) {
msg.delete();
// certainChannel = <TextChannel>
certainChannel.send(helpembed);
} else {
//case you wanted to do something if they reacted with the second one
}
})
.catch(err => {
//time up, no reactions
});
});

关于javascript - 如何让机器人在 react 后发送消息到另一个 channel | Discord.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62766934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com