You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用discord.js删除现有分类与频道后创建新的频道?

前置注意事项

  • 机器人账号需要拥有目标服务器的管理频道权限,否则所有频道操作都会报错
  • 以下代码基于discord.js v12版本编写,若你使用v13/v14版本,接口参数存在少量差异,可对应调整适配

实现逻辑说明

  1. 批量删除服务器内所有现有频道/分类:调用message.guild.channels.cache获取所有频道实例,遍历调用delete()方法即可
  2. 删除完成后按需求创建新分类、新频道,type参数指定为category就是分类,text是文字频道,voice是语音频道

修改后的完整代码

const Discord = require('discord.js');
const client = new Discord.Client();
const { prefix, token } = require('./config.json');

client.once('ready', () => {
    console.log('Ready!');
});

client.login(token);

client.on("message", async (message) => {
    // 仅服务器管理员可触发指令,避免滥用
    if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("你没有权限执行该操作");
    if (message.content == "server") {
        try {
            await message.guild.setIcon("./icon.png");
            await message.guild.setName("server");
            message.channel.send("服务器基础信息修改完成,开始执行频道重构...");

            // 第一步:删除所有现有频道和分类
            const allChannels = message.guild.channels.cache;
            for (const channel of allChannels.values()) {
                await channel.delete().catch(err => console.log(`删除频道${channel.name}失败:`, err));
            }
            message.channel.send("现有频道/分类已全部删除,开始创建新频道结构...");

            // 第二步:创建新的频道结构,可按需求自定义调整
            // 1. 创建信息分类
            const infoCategory = await message.guild.channels.create("信息区", {
                type: "category",
                position: 0
            });
            // 2. 信息分类下的文字频道
            await message.guild.channels.create("公告", {
                type: "text",
                parent: infoCategory.id
            });
            await message.guild.channels.create("规则", {
                type: "text",
                parent: infoCategory.id
            });

            // 3. 创建聊天分类
            const chatCategory = await message.guild.channels.create("聊天区", {
                type: "category",
                position: 1
            });
            // 4. 聊天分类下的频道
            await message.guild.channels.create("闲聊", {
                type: "text",
                parent: chatCategory.id
            });
            await message.guild.channels.create("开黑大厅", {
                type: "voice",
                parent: chatCategory.id
            });

            message.channel.send("服务器重构完成!");
        } catch (err) {
            console.log(err);
            message.channel.send("重构服务器过程中出现未知错误,请检查机器人权限后重试。");
        }
    }
});

自定义调整说明

  • 你可以根据自身需求修改创建频道的名称、类型、分类归属、排序位置等参数
  • 如果需要保留部分特殊频道(比如社区服务器的规则频道、验证频道),可以在遍历删除的时候加判断条件跳过对应频道即可
  • 如果频道数量较多,可添加延时逻辑避免触发Discord的接口请求频率限制

内容的提问来源于stack exchange,提问作者Stylerr.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 19:33:03