首页 > 解决方案 > 有没有办法让机器人在 Discord 上创建公会?

问题描述

我正在使用 discord.js V12,我试图让我的机器人创建一个公会,其中有一个频道。但是,我无法修复此错误“TypeError:channels is not iterable”。这是我当前的代码:

client.on("message", async message => {
    if(message.content == "?createGuild") {
        let guild = await client.guilds.create("Test Guild", {channels: {id: 1, type: "text", name: "invite-channel"}}).catch(err => {console.log(err)});        
        let guildchannel = await guild.channels.find(cha => cha.name == "invite-channel");
        let invite = await guildchannel.createInvite({maxAge: 0, unique: true, reason: "Testing."});
        message.channel.send(`https://discord.gg/${invite.code} is the server I created!`);
    }
});

谁能帮我吗?

标签: node.jsdiscorddiscord.js

解决方案


Client.guilds.create将选项作为第二个参数ObjectOptions.channels接受一个Array,包含多个对象,每个对象代表一个通道。您正在提供一个Object代替。

请注意,每个人都可以创建公会,因为您对此命令没有任何限制。


client.on("message", async message => {
    if (message.content == "?createGuild") {
        const Guild = await client.guilds.create("Test Guild", {
            channels: [
                {"name": "invite-channel"},
            ]
        });

        const GuildChannel = Guild.channels.cache.find(channel => channel.name == "invite-channel");
        const Invite = await GuildChannel.createInvite({maxAge: 0, unique: true, reason: "Testing."});
        message.channel.send(`Created guild. Here's the invite code: ${Invite.url}`);
    };
});

推荐阅读