创建语音通道后锁定(Discord Python)



我想锁定语音通道,这样创建后没有人可以加入它。语音通道被用作服务器时钟。下面是创建通道的代码:

for channel in saved_guild["guild"].channels:
#first_word = channel.name.split(" ")[0]
#if first_word == '🕕 (GMT-4)':
if '🕕 (GMT-4)' in channel.name:
await channel.delete()
#channel_exists = True
#await channel.edit(name=new_title)
#break
#create new channel
if not channel_exists:
await saved_guild["guild"].create_voice_channel(new_title)

channel_exists = False
for channel in context.guild.channels:
#first_word = channel.name.split(" ")[0]
#if first_word == 'Time/Hora':
if '🕕 (GMT-4)' in channel.name:
await channel.delete()
#channel_exists = True
#await channel.edit(name=new_title)
#break
#create new channel
if not channel_exists:
await context.guild.create_voice_channel(new_title)

如果你想为每个人锁定语音通道,你可以这样做:

for channel in ctx.guild.voice_channels:
#insert code here
for role, permissions in channel.overwrites:
permissions.connect = False
await channel.set_permissions(role, permissions)

这基本上拒绝了"连接"语音通道权限列表中每个角色的权限

yotam rec的建议起了作用,这是新的代码:

for channel in saved_guild["guild"].channels:
if '🕕' in channel.name:
await channel.set_permissions(saved_guild["guild"].roles[0], connect=True)
await channel.delete()

if not channel_exists:
await saved_guild["guild"].create_voice_channel(new_title)
for channel in saved_guild["guild"].channels:
if '🕕' in channel.name:
await channel.set_permissions(saved_guild["guild"].roles[0], connect=False)

最新更新