Сначала я хочу сказать, что у какого-то вопроса, например, , у этого есть то, что вы ищете.
Более того, документация по разногласиям и руководство содержат раздел ожидающих реакций .
Существует еще один вопрос, касающийся предмета или функции, используемой в руководстве иНемного поиска вы можете найти вопрос, подобный этому , который почти такой же, как и вы.
Однако, вот полный пример того, что вы хотите сделать.Вы можете добавить таймер к обещанию, а не просто ждать.Я не использовал коллектор реакции, потому что обещание немного быстрее, но вы также можете создать систему управления несколькими коллекторами или использовать client.on('messageReactionAdd')
.
const Discord = require('discord.js');
const config = require('./config.json');
const channelSuggestion = '<channelID>';
const channelSend = '<channelID>';
const emojiReact = '<emojiID>';
const prefixSuggestion = '!';
const reactionMax = 11;
const client = new Discord.Client();
client.on('ready', () => {
console.log('Starting!');
client.user.setActivity(config.activity);
});
client.on('message', (msg) => {
if ((msg.content[0] === prefixSuggestion) && (msg.channel.type === 'dm')){
sendSuggestion(msg);
}
});
function filter(reaction) {
return reaction.emoji.id === emojiReact;
}
function moveSuggestion(msg) {
client.channels.get(channelSend).send(msg.content)
.then(() => msg.delete()).catch(err => console.log(error));
}
function sendSuggestion(msg){
client.channels.get(channelSuggestion).send(msg.content.substr(1))
.then((newMsg) => newMsg.react(emojiReact))
.then((newMsgReaction) =>
newMsgReaction.message
.awaitReactions(filter, {max: reactionMax})//, time: 15000, errors: ['time']})
.then(collected => {
moveSuggestion(newMsgReaction.message);
})
// .catch(collected => {
// console.log(`After a minute, only ${collected.size} out of 10 reacted.`);
// })
);
}
client.login(config.token)
.then(() => console.log("We're in!"))
.catch((err) => console.log(err));
Бот будет слушать сообщение dm(Я не знаю, как вы хотите, чтобы ваш бот отправил сообщение с предложением, поэтому я сделал свой собственный путь), который начинается с !
.
Затем бот отправит сообщение на определенный канал, подождите Nчеловек, чтобы добавить реакцию, а затем отправит сообщение на другой канал.