Discord.js 计数系统

Posted

技术标签:

【中文标题】Discord.js 计数系统【英文标题】:Discord.js counting system 【发布时间】:2021-05-24 19:50:25 【问题描述】:

所以我试图为我的服务器制作我自己版本的计数系统,就像其他机器人(如 countr)一样,所以我做了以下操作:

if (message.channel.id === "794733520458612736") 
    const numdb = db.get("numdb");
    if (message.content === numdb) 
        db.add("numdb", 1);
        message.react("✅");
     else if (typeof message.content === "number") 
        db.set("numdb", 1);
        message.channel.send(`$message.author ruined it at **$numdb**! The next number is **1**.`);
        message.react("❌");
    ;
;

然而,当我尝试它时,它似乎不起作用。有谁知道我做错了什么?

【问题讨论】:

等一下,我是否必须将&& message.content !== numdb 添加到 else if 中?编辑:不,仍然不起作用。 message.content 将始终是一个字符串。 numdb 是数字吗?三等号也检查值和类型。这是否适用于双等号 (message.content == numdb)? 嗯,让我试试。 【参考方案1】:

好的,我解决了如下图:

if (message.channel.id === "794733520458612736") 
    const numdb = db.get("numdb");
    if (message.content == `$numdb`) 
        db.add("numdb", 1);
        message.react("✅");
     else if (!isNaN(message.content) && message.content != `$numdb`) 
        db.set("numdb", 1);
        message.channel.send(`$message.author ruined it at **$numdb-1**! The next number is **1**.`);
        message.react("❌");
    ;
;

我发现原因是因为=== 同时检查了值和类型(归功于 Zsolt),而我用来检查它是否是数字的旧方法不起作用,所以我将其切换为 isNaN .

【讨论】:

以上是关于Discord.js 计数系统的主要内容,如果未能解决你的问题,请参考以下文章

discord.js 成员计数 - 无法读取未定义的属性“通道”

Discord.js 集合;如何从集合中的数组中导航和抓取/计数对象

Discord.js - 发送消息的计数器,DM给公会的所有成员

如何在 discord.js 中获取消息中某个表情符号反应的计数

每个用户的 Discord bot 特定字数计数器

Discord.JS 嵌入问题