【问题标题】:How to store reactions into quick.db如何将反应存储到 quick.db
【发布时间】:2020-10-20 04:26:54
【问题描述】:

所以我想将用户反应存储到 quick.db

    let wembed = new Discord.MessageEmbed()
    .setAuthor("Armagedon RolePlay | Verify System")
    .setColor("PURPLE")
    .setThumbnail(message.author.displayAvatarURL())
    .setDescription(arg1) 

    const reactmessage = await client.channels.cache.get(chx).send(wembed)
    await reactmessage.react('✅');

    const filter = (reaction, user) => reaction.emoji.name === '✅' && !user.bot;
    const collector = reactmessage.createReactionCollector(filter, { time: 15000 });

    collector.on('collect', async reaction => {      
        const user = reaction.users.cache.last();
        const guild = reaction.message.guild;
        const member = guild.member(user) || await guild.fetchMember(user);
        member.roles.add("725747028323205170");
    });

基本上我想存储用户的反应然后将其存储到 quick.db 以防机器人崩溃并在用户仍然可以对wembed作出反应后重新启动

【问题讨论】:

    标签: bots discord.js quick.db


    【解决方案1】:

    存储到 quick.db 或任何数据库不是最好的主意。如果您想在机器人崩溃/重新启动后处理反应,请使用 Client's options 其中包含部分。我建议使用此代码:

    const client = new Discord.Client({
       partials: ['MESSAGE', 'CHANNEL', 'REACTION', "GUILD_MEMBER"]
    })
    

    【讨论】:

    • 是的,但如果我重新启动机器人,用户仍然可以对消息做出反应,但不会获得角色
    • 确保你需要获取一个像 const member = message.guild.members.cache.get(user.id) 这样的成员类,然后添加一个角色。
    • 嗯,但是有没有办法在我的命令文件而不是 index.js 中执行此操作
    猜你喜欢
    • 2019-03-28
    • 2019-02-20
    • 2021-09-05
    • 2020-10-20
    • 2020-08-28
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多