你如何让特定的人做命令

Posted

技术标签:

【中文标题】你如何让特定的人做命令【英文标题】:How do you let specific people do commands 【发布时间】:2019-10-31 09:12:44 【问题描述】:

我正在制作一个 discord.js 机器人,但我遇到了问题。 我想成功,所以我必须允许谁可以使用我的命令。因此,如果我只想要一个获得私人命令的人,我可以添加代码并且只有他们可以使用它。我不想为他们设定一个特定的角色,因为我希望他们能够在任何不和谐服务器中使用它。谁能帮帮我?

好吧,我搜索了要做什么,但人们只说与角色有关的东西。

我目前没有代码,因为我还没有建议。

我对可能出现的错误没有任何期望,因为我真的不知道该怎么做。

【问题讨论】:

【参考方案1】:

您不仅可以基于角色,还可以通过用户 ID 来限制对命令的访问。在 Discord 中,每个用户都有一个与他们相关联的唯一 ID。发送消息时,您可以将作者的 ID 与允许使用命令的 ID 核对。

为了存储 ID,您可以使用 json 文件或数据库。为了简单起见,我在这个例子中使用了一个 json 文件。

例如permitted.json:

[
  "189855563893571595",
  "581635015151058944",
  "135190099439779841"
]

消息事件示例:

const permitted = require('./permitted.json'); // path may vary depending on the file location

client.on('message', message => 
  if (!permitted.includes(message.author.id)) return;

  // continue on 
);

“访问”命令示例:

// permitted = required json file
// args[1] = ID argument

const fs = require('fs');

if (message.author.id !== 'yourID') return;

let action;

if (!permitted.includes(args[1])) 
  permitted.push(args[1]);
  action = 'added to';
 else 
  permitted.splice(permitted.indexOf(args[1]), 1);
  action = 'removed from';


try 
  fs.writeFileSync('./permitted.json', JSON.stringify(permitted));
  message.channel.send(`That user has been $action the permitted list.`);
 catch(err) 
  console.error(err);

【讨论】:

以上是关于你如何让特定的人做命令的主要内容,如果未能解决你的问题,请参考以下文章

如何让我的机器人消息响应特定频道中的命令

为我的不和谐服务器制作 !suggest 命令,并需要它给我,所有者。可以dm特定的人吗?

知乎高赞:怎样才能和那些优秀的人做朋友?

NLP的思维:在合适的时间合适的空间遇见合适的人做了合适的事,一切刚刚好

如何让机器人在不使用命令的情况下向特定频道中的特定公会发送消息

ROS如何让局域网特定的某个机子不上网