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

Discord.JS 实现加入创建临时VC自动更名、离开自动删除的方法

实现方案调整

核心修改点

  • 频道命名替换为对应用户的用户名#识别码 - 用户ID格式
  • 增加临时频道分类判断,避免误删服务器普通语音频道
  • 新增用户离开语音频道的监听逻辑,当临时频道成员数为0时自动删除

注意:以下代码默认适配Discord.js v13+版本,如果你使用v12版本,需要将代码中channelId改为channelID、parentId改为parentID、type: 'GUILD_VOICE'改为type: 'voice'

// 提前定义配置项,后续修改更方便
const TRIGGER_CHANNEL_ID = '替换为你的触发频道ID'; // 用户加入这个频道就会触发创建临时VC
const TEMP_CATEGORY_ID = '替换为存放临时VC的分类ID'; // 所有临时VC都会放在这个分类下

client.on('voiceStateUpdate', (oldState, newState) => {
    const targetUser = newState.member?.user;
    // 1. 处理用户加入触发频道的逻辑
    if (newState.channelId === TRIGGER_CHANNEL_ID && targetUser) {
        // 拼接要求的频道名称格式,user.tag原生就是 用户名#识别码 的格式
        const vcName = `${targetUser.tag} - ${targetUser.id}`;
        // 创建临时语音频道
        newState.guild.channels.create(vcName, {
            type: 'GUILD_VOICE',
            parent: TEMP_CATEGORY_ID,
            // 可选配置:给创建者开放频道管理权限,可自行调整或删除该配置
            permissionOverwrites: [
                {
                    id: targetUser.id,
                    allow: ['MANAGE_CHANNELS', 'MUTE_MEMBERS', 'DEAFEN_MEMBERS']
                }
            ]
        }).then(newVc => {
            // 创建完成后自动把用户移到新的临时频道
            newState.setChannel(newVc);
        }).catch(err => console.log('创建临时频道失败:', err));
    }

    // 2. 处理用户离开频道后的清理逻辑
    const leftChannel = oldState.channel;
    // 只判断属于临时VC分类、且当前没有任何成员的语音频道
    if (leftChannel && leftChannel.parentId === TEMP_CATEGORY_ID && leftChannel.members.size === 0) {
        // 加1秒延迟+二次判断,避免用户临时切频道导致误删
        setTimeout(() => {
            if (leftChannel.members.size === 0) {
                leftChannel.delete().catch(err => console.log('删除临时频道失败:', err));
            }
        }, 1000);
    }
});

补充说明

如果不需要给创建者开放频道管理权限,直接删除permissionOverwrites相关配置即可。所有异步操作都加了错误捕获,不会因为权限不足、频道已被删除等异常情况导致bot崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:18:00