首页 > 解决方案 > 如何将反应存储到 quick.db

问题描述

所以我想将用户反应存储到 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

标签: botsdiscord.jsquick.db

解决方案


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

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

推荐阅读