在GuildCreate事件中创建邀请

时间:2020-06-19 11:21:34

标签: discord.js

所以我试图让我的机器人将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}`)
)
}); 

1 个答案:

答案 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创建邀请。

希望这会有所帮助。