【问题标题】:How to limit the number of uses of a command (Discord.js)如何限制命令的使用次数(Discord.js)
【发布时间】:2020-07-28 17:46:39
【问题描述】:

我最近不得不创建一个命令来添加一个角色来注册一个事件,但是我需要能够使用另一个命令来限制第一个命令的使用次数。

示例:如果我写 !limit-inscriptions 20,我希望 !inscrit 命令只使用 20 次。

问题在于我是初学者,我不知道如何执行 !limit-inscriptions 命令。因此,如果您对如何操作有任何想法,我会打电话给您。这是我的 !inscrit 命令的(功能)代码:

 if(message.content === '!inscrit') {
        message.delete();
        let role = message.guild.roles.find(r => r.name === "Inscrit");

        if (message.member.roles.find(r => r.name === "Inscrit")) {
            message.member.removeRole(role)
            message.reply('vient de se désinscrire!')
        }
        else {
            message.member.addRole(role)
            message.reply(`vient de s'inscrire!`)
        }
    }

【问题讨论】:

  • 首先您需要为限制命令创建一个处理程序。然后你需要有一个地方来存储每个人的计数(使用他们的 ID,而不是他们的名字!),例如 JSON 对象。最后,如果您需要将该信息写入某种数据库,如果您希望它在您的机器人重新启动时持续存在,它可以像文件一样简单,也可以像 SQL 一样复杂。如果你有问题,回来告诉我们你做了什么。

标签: javascript discord.js


【解决方案1】:

这是个好主意,但我想在 Heroku 上托管机器人,所以我真的不能,这是修改命令代码的开始 !inscrit,不幸的是这个不起作用(我首先想从命令 !inscrit 中设置限制,然后我会使用命令 !limit-inscriptions) :

var participants = 1;
var nbInscrit = 0;
if (message.content === '!inscrit') {
     message.delete();
     let role = message.guild.roles.find(r => r.name === "Inscrit");

     if (nbInscrit < participants) {

       if (message.member.roles.find(r => r.name === "Inscrit")) {
         message.member.removeRole(role)
         nbInscrit = nbInscrit - 1
         message.reply('vient de se désinscrire!')
       }
       else {
         message.member.addRole(role)
         nbInscrit = nbInscrit + 1
         message.reply("vient de s'inscrire!")
       }
     } else {
       message.channel.send('Le nombre Maximal de Participants est déjà atteint!');
     }
   }

【讨论】:

    猜你喜欢
    • 2021-04-01
    • 1970-01-01
    • 2020-10-18
    • 2021-05-02
    • 2021-02-26
    • 2021-04-04
    • 2021-01-11
    • 2022-01-09
    • 2020-08-12
    相关资源
    最近更新 更多