如何将反应存储到 quick.db

Posted

技术标签:

【中文标题】如何将反应存储到 quick.db【英文标题】:How to store reactions into 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作出反应后重新启动

【问题讨论】:

【参考方案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 中执行此操作

以上是关于如何将反应存储到 quick.db的主要内容,如果未能解决你的问题,请参考以下文章

如何安装 quick.db? (再次)

如何使 quick.db 异步读取

如何修复该 quick.db 不会产生负面输出

如何安装 quick.db?

如何检查 quick.db 中是不是存在特定的东西?

我如何循环遍历数据库中的每个公会成员(quick.db)