所以我试图让我的机器人将DM发送给它加入的每台服务器,但我不断收到API错误:Unkown Channel
我的代码:
bot.on("guildCreate", async guild => {
guild.channels.first().createInvite().then(inv =>
bot.users.get(ownerID).send(`I have been added to **${guild.name}** | ${inv.url}`)
)
});
答案 0 :(得分:1)
好的,这是您的问题。几个月前,我犯了同样的错误,这是解决方法。
由于您使用的是discord.js版本11,guild.channels
确实是一个Collection,可以在其上使用.first()。在这种情况下,您将无法做到这一点。
这是我的解决方法:
bot.on("guildCreate", async guild => {
var channel;
guild.channels.forEach(c => {
if (c.type === "text" && !channel) channel = c;
});
channel.createInvite({ maxAge: 0 }).then(inv => bot.users.get(ownerID).send(`I have been added to **${guild.name}** | https://discord.gg/${inv.code}`));
});
这基本上遍历每个频道并找到一个有效的TextChannel创建邀请。
希望这会有所帮助。