javascript - 如果 GuildID 未在我的代码中列入白名单,如何让我的 Discord.js (Commando) 机器人离开服务器(加入时)?

标签 javascript bots discord discord.js

我有一个需要付费订阅的机器人。我希望能够将客户想要的代码中的特定公会 ID 列入白名单。我该怎么做呢?除非它在我的代码中列入白名单,否则它会自发地离开它加入的每个服务器。我已经尝试过了。

client.on('guildCreate', (guild) => {

  let premiumServers = ['ID1', 'ID2']; // Obviously I replaced ID1, ID2 etc with actual guild IDs
  let Premium = true;
  for (var i in premiumServers) {
    if (guild.id !== premiumServers[i]) Premium = false;
  }

  if(Premium = false) {
    guild.leave();
  }

});

没有任何错误消息。应该发生的情况是,除非服务器 ID 在白名单上,否则机器人会离开其邀请的任何服务器。

最佳答案

像这样的东西看起来很干净并且做得最好:

let premiumServers = ['ID1', 'ID2'];
client.on('guildCreate', (guild) => {
    if(!premiumServers.includes(guild.id)) return guild.leave();
});

您的机器人在崩溃/离线时仍然能够加入服务器,而不会离开服务器,因此请考虑使用:

const premiumServers = ['ID1', 'ID2'];

client.on('guildCreate', (guild) => {
    if(!premiumServers.includes(guild.id)) return guild.leave();
});

client.on('ready', () => {
    client.guilds.forEach(guild => {
        if(!premiumServers.incudes(guild.id)) guild.leave();
    });
    console.log(`${client.user.username} is now online...`);
});

关于javascript - 如果 GuildID 未在我的代码中列入白名单,如何让我的 Discord.js (Commando) 机器人离开服务器(加入时)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57664340/

相关文章:

python - 如何在没有命令的情况下使用 discord.py 发送消息

php - 通过机器人访问网站,但只有在浏览器/人类设置变量之后

javascript - 那么如何在请求时从另一个文件运行代码

javascript - 从多个帐户接收消息

javascript - 如何在 Discord.js 中按名称查找表情符号

javascript - Discord.js mod bot 禁止命令不起作用

php - Ajax 无法识别页面中的自定义响应 header

javascript - 模拟所有视口(viewport)大小的恒定页面大小

javascript - 带有JSON返回的Jquery ajax无法访问JSON内部的数据

javascript - 我无法在node.js中使用router.post方法