我只想删除一个类别中的语音通道

时间:2020-07-29 04:44:10

标签: python python-3.x discord.py

这是我的代码:

import discord, asyncio
    
app = discord.Client()
    
@app.event
async def on_voice_state_update(member, before, after):
    username = str(member)
    guild = app.get_guild(660213767820410893)
    ch = guild.get_channel(660213767820410918)
    category = guild.get_channel(660213767820410908)
    
    if after.channel == ch:
        channel = await guild.create_voice_channel(
                name=username+"`s Room",
                category=category,
                user_limit=99
            )
        await member.move_to(channel)
        await channel.set_permissions(member, manage_channels=True)
    if not before.channel.members and before.channel != ch:
        await before.channel.delete()

我只想删除一个类别中的语音通道。目前,所有频道均已删除。

1 个答案:

答案 0 :(得分:1)

您是否只想删除VoiceChannel中的category?如果是,则只需在最后一个before.channel.category == category块中添加条件:if

import discord, asyncio
    
app = discord.Client()
    
@app.event
async def on_voice_state_update(member, before, after):
    username = str(member)
    guild = app.get_guild(660213767820410893)
    ch = guild.get_channel(660213767820410918)
    category = guild.get_channel(660213767820410908)
    
    if after.channel == ch:
        channel = await guild.create_voice_channel(
                name=username+"`s Room",
                category=category,
                user_limit=99
            )
        await member.move_to(channel)
        await channel.set_permissions(member, manage_channels=True)

    b_channel = before.channel
    if b_channel: # If the user was connected to a voice channel before 
        if not b_channel.members and b_channel != ch and b_channel.category == category:
            await b_channel.delete()