如何防止其他人更改我的机器人的状态?

时间:2021-04-27 00:39:05

标签: javascript discord.js

我有一个 command 可以直接更改机器人的 status

如果我把机器人放到其他服务器上,那些拥有 administrator permissions 的人将能够改变机器人的状态,而我不希望那样

我想成为唯一一个能够改变机器人status的人。

这是我当前的代码:

client.on("message", (message) => {
  var argresult = message.content.split(` `).slice(1).join(" ");
  const { member, mentions } = message;

  if (member.hasPermission("ADMINISTRATOR")) {

    if (message.content.startsWith(prefix + "wat")) {

      client.user.setActivity(argresult, { type: "WATCHING" });
      message.channel.send(
        "**:white_check_mark: | The Watching Status Has Been Changed To : ``" +
          `${argresult}` +
          "``**"
      );
      
      console.log(`Bot status was changed to: ${argresult}`);
    }
  } else {
    message.reply("You dont have permission to do that");
  }
});

有什么办法可以实现吗?

2 个答案:

答案 0 :(得分:0)

好吧,您可以给自己一个非常自定义的角色,只有您可以拥有,代码将如下所示:

在这种情况下,您必须创建一个名为“AdminDeveloper”的新角色并将其分配给您。

client.on('message', message => {
            var argresult = message.content.split(` `).slice(1).join(' ');
            const {
                member,
                mentions
            } = message;
            if (member.roles.cache.some(role => role.name === 'AdminDeveloper') {
                    if (message.content.startsWith(prefix + 'wat')) {
                        client.user.setActivity(argresult, {
                            type: 'WATCHING'
                        });
                        message.channel.send("**:white_check_mark: | The Watching Status Has Been Changed To : ``" + `${argresult}` + "``**");
                        console.log(`Bot status was changed to: ${argresult}`);
                    }
                } else {
                    message.reply("You dont have permission to do that")
                }
            });

答案 1 :(得分:0)

最简单的方法是here in the discord.js guide

您限制命令,以便通过拒绝没有您的用户 ID 的任何人来执行此操作

if (<message>.author.id === '<id>') {
    // This is if they are you
}


// or you can do which is the opposite, it returns if it is not you
if (<message>.author.id != '<id>') return