DiscordAPIError:尝试在公会创建时发送邀请时出现未知频道

时间:2020-08-04 09:24:13

标签: javascript discord.js

我正在使用v12。我试图让我的机器人在使用以下代码创建公会后向我发送邀请:

client.on('message', message => {  
    if(message.content.startsWith('!guild')) {  
    client.guilds.create('Bot Server', 'london')  
    .then(guild => {guild.channels.cache.first().createInvite()  
    .then(invite => client.users.cache.get('<myID>').send(invite.url))  
    .catch(error => console.log(error))  
    })  
    }})

它成功创建了一个服务器,但是没有向我发送邀请:

DiscordAPIError: Unknown Channel
at RequestHandler.execute (c:\Users\User\Desktop\Bot Server\node_modules\discord.js\src\rest\RequestHandler.js:170:25)
    at processTicksAndRejections (internal/process/task_queues.js:97:5) {name: 'DiscordAPIError',
message: 'Unknown Channel', method: 'post', path: '/channels/740129814459187242/invites', code: 10003}

我只是想看看机器人可以在不和谐的情况下拥有服务器,但是不能从机器人那里获得邀请消息。在这一点上,我很沮丧。在discord.jsdiscord.com的文档中已经表明有可能。我该如何向自己发送邀请,或如何将邀请发送到使用命令创建公会的频道?

1 个答案:

答案 0 :(得分:3)

创建Guild时,无论它是不是由漫游器创建的,它都会有两个类别,“文本通道”和“语音通道”,一个包含TextChannel,另一个包含一个VoiceChannel

类别被视为渠道。 Guild.channels.cache.first()将始终是Category,并且您不能在类别上创建邀请。

要解决此问题,您必须过滤Guild中的所有频道,并选择Channel中的第一个Collection


client.guilds.create("MyGuild").then(guild => {
    // Filtering all the channels.
    const channels = guild.channels.cache.filter(channel => channel.type == "text");
    // --> channels is a collection.

    channels.first().createInvite().then(invite => {
        message.channel.send(`Here is your invite: ${invite.url}`);
    })
})