Discord.js bot离开公会

时间:2018-02-17 17:39:15

标签: javascript discord discord.js

如何让机器人离开公会? 我试过这个:

case `leave`:
    if(message.author.id !=='196701848239865866') 
        return message.channel.send(`**»** ${message.author}, you don't have permission to do that!`);
    var guildID = bot.guild.find()
    guildID.leave()
    break;

4 个答案:

答案 0 :(得分:3)

你不能通过从公会ID运行.leave()来离开公会。我建议做message.guild.leave();离开公会。如果您需要公会ID,可以通过message.guild.id

从消息中获取

要扩展您的代码无法正常工作的原因,您可能会遇到一些错误。

bot.guild不存在,因此执行bot.guild.find()也不会有效。机器人被设计为在多个公会中,因此它们存储在Collection中,您可以通过bot.guilds.find("id", guildId);来搜索它们。此外,一旦你得到了" id"它以Snowflake的形式返回,因此它没有方法,您无法从中运行.leave();

答案 1 :(得分:0)

要添加到Splinxyy的答案上,请尝试使用bot.guild.find();(而不是message.guild(因为它不存在))。

答案 2 :(得分:0)

在discord.js v12中,您将不得不使用

bot.guilds.cache.get(id).leave()
.catch(err => {
    console.log(`there was an error leaving the guild: \n ${err.message}`);

我认为这就是工作原理!如果您有任何疑问,请随时给我!

答案 3 :(得分:0)

通过查看您的代码,我会说,这样做:

case `leave`:
    if(message.author.id !=='196701848239865866') 
        return message.channel.send(`**»** ${message.author}, you don't have permission to do that!`);
    var guildID = bot.guilds.cache.get(args[0]) //your argument would be the server id
    guildID.leave()
    break;

如果您想让消息离开服务器,请执行以下操作:

    if(message.author.id !=='196701848239865866') 
        return message.channel.send(`**»** ${message.author}, you don't have permission to do that!`);
message.guild.leave()

希望这有帮助。