首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bot自动除反应

Bot自动除反应
EN

Stack Overflow用户
提问于 2020-12-18 14:02:16
回答 1查看 171关注 0票数 0

我现在在研究一个音乐机器人。我创建了一个queue命令,它显示了队列中当前有多少首歌曲。我想让它看起来像如果队列中的歌曲大于10,机器人将分割它,并在下一个“页面”上显示其余的歌曲。要在页面之间滚动,我想要使用反应。我的代码正在工作,但是Bot会自动删除它自己的反应。为什么会这样呢?

代码语言:javascript
复制
const Discord = require("discord.js");

module.exports.run = async (client, message, args, queue, searcher) => {
    const serverQueue = queue.get(message.guild.id);
    if(!serverQueue)
        return message.channel.send("**Jelenleg nincs zene lejátszás alatt!**");
    if(message.member.voice.channel != message.guild.me.voice.channel)
        return message.channel.send("**Előbb lépj be a hang szobába!**")


    let currentPage = 0;

    if(serverQueue.songs.length <= 1) return message.channel.send(`**Lejátszás alatt:** [__${serverQueue.songs[0].title}__](${serverQueue.songs[0].url})`);

    const embeds = embedGenerator(serverQueue)
    //if(serverQueue.songs.length < 12) return message.channel.send(embeds);
    const queueEmbed = await message.channel.send(`**Oldal:**: ${currentPage+1}/${embeds.length}`, embeds[currentPage])

    await queueEmbed.react('⬅️');
    await queueEmbed.react('➡️');

    const reactionFilter = (reaction, user) => ['⬅️', '➡️'].includes(reaction.emoji.name) && (message.author.id === user.id)
    const collector = queueEmbed.createReactionCollector(reactionFilter);

    collector.on('collect', (reaction, user) => {
        if(reaction.emoji.name === '➡️'){
            if(currentPage < embeds.length-1){
                currentPage+=1;
                queueEmbed.edit(`**Oldal:**: ${currentPage+1}/${embeds.length}`, embeds[currentPage]);
                message.reactions.resolve(reaction).users.remove(user)
            }
        }else if(reaction.emoji.name === '⬅️'){
            if (currentPage !== 0){
                currentPage -= 1;
                queueEmbed.edit(`**Oldal:** ${currentPage+1}/${embeds.length}`, embeds[currentPage])
                message.reactions.resolve(reaction).users.remove(user)
            }
        }
    })
}

function embedGenerator(serverQueue){
    const embeds = [];
    let songs = 11;
    for (let i = 1; i < serverQueue.songs.length; i += 10){
        const current = serverQueue.songs.slice(i, songs)
        songs += 10;
        let j = i-1;
        const info = current.map(song => `${++j}. [${song.title}](${song.url})`).join('\n')
        const msg = new Discord.MessageEmbed()
            .setDescription(`**Lejátszás alatt:** [${serverQueue.songs[0].title}](${serverQueue.songs[0].url}) \n ${info}`)

        embeds.push(msg)
    }
    return embeds;
}

module.exports.config = {
    name: "queue",
    aliases: ['q']
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-19 19:18:03

好的,我发现problem.It发现我的另一个机器人有一个反应事件,它在大约4秒后移除消息上的反应,我没有添加if(message.author.bot)返回,所以它一直删除了这个反应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65358400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档