問題描述
介紹
我想在
我可以解決這個問題.
<塊引用>與代碼無關,忘記添加 GUILD_MESSAGE_REACTIONS 意圖.
createReactionCollector 在 discord.js 中不起作用
const client = new Discord.Client({意圖:['GUILD_VOICE_STATES','GUILD_MESSAGES','GUILDS','GUILD_MESSAGE_REACTIONS'],});
Introduce
I want to use page generation from discord.js-pagination in discord.js v13.
The source code use createReactionCollector
but collect
doesn't work.
In Detail
The two reaction buttons are displayed correctly. It also runs the timeout correctly and the two buttons are removed after 12000ms.
The problem is that there is no response when I press the reaction button. "collect" doesn't work.
I can't believe that "end" is executed, but "collect" is not. Could anyone give me a clue?
Source code
static async paginationEmbed(msg: Message, pages:MessageEmbed[], emojiList = ['?', '?'], timeout = 12000)
{
if (!pages) throw new Error('Pages are not given.');
if (emojiList.length !== 2) throw new Error('Need two emojis.');
let page = pages.length - 1;
const curPage = await msg.channel.send({ embeds: [pages[page].setFooter(`Page ${page + 1} / ${pages.length}`)]});
for (const emoji of emojiList) await curPage.react(emoji);
const filter = (reaction:MessageReaction, user:User) => {
return true;
}
const reactionCollector = curPage.createReactionCollector({ filter, time: timeout });
reactionCollector.on('collect', (reaction, user) => {
console.log("I want to show this!!")
reaction.users.remove(msg.author);
switch (reaction.emoji.name) {
case emojiList[0]:
page = page > 0 ? --page : pages.length - 1;
break;
case emojiList[1]:
page = page + 1 < pages.length ? ++page : 0;
break;
default:
break;
}
curPage.edit({ embeds: [pages[page].setFooter(`Page ${page + 1} / ${pages.length}`)]});
});
reactionCollector.on('end', () => {
if (!curPage.deleted) {
curPage.reactions.removeAll()
}
});
return curPage;
}
Enviroment
discord.js@13.1.0
(get by npm ls
)
Addition
My Client is following:
const client = new Discord.Client({
intents: ['GUILD_VOICE_STATES', 'GUILD_MESSAGES', 'GUILD_MEMBERS', 'GUILDS']
});
createReactionCollector not triggering
I can solve this problem.
Was unrelated to code, forgot to add the GUILD_MESSAGE_REACTIONS intent.
createReactionCollector not working in discord.js
const client = new Discord.Client({
intents: ['GUILD_VOICE_STATES', 'GUILD_MESSAGES', 'GUILDS', 'GUILD_MESSAGE_REACTIONS'],
});
這篇關于DISCORD JS v13 createReactionCollector “收集"不工作的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!