如何让机器人离开公会? 我试过这个:
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;
答案 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()
希望这有帮助。