Как установить канал, используя идентификатор канала в discord.py? - PullRequest
0 голосов
/ 29 июня 2018

Привет, ребята. Я пытаюсь создать функцию, которая проверяет, заполнены ли несколько каналов на моем сервере разногласий, но я не знал, как их указать. Лучшая идея, которая у меня была, - использовать эту идею, но я не мог установить ее в качестве объекта канала, так как я могу это сделать, или есть другие хорошие идеи?

def full(channel):
   while True:
       if len(channel.voice_members) == channel.user_limit:
           print("Wooo There is a full channel.")
       asyncio.sleep(10)

Но я не знал, как установить параметр канала. Заранее спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Если вы хотите, чтобы это была команда, вы также можете воспользоваться конвертерами :

@bot.command(pass_context=True)
async def full(ctx, channel: discord.Channel):
    if len(channel.voice_members) == channel.user_limit:
        await bot.say("{} is full".format(channel.name))
    else:
        await bot.say("{} is not full".format(channel.name))
0 голосов
/ 29 июня 2018

Вы можете получить объект канала либо по идентификатору, либо по имени.

Используйте discord.utils.get() для возврата канала по его имени (пример для голосовых каналов):

channel = discord.utils.get(server.channels, name="Channel_name_here", type="ChannelType.voice") 

Или вы можете использовать discord.get_channel(id), если у вас есть идентификатор канала.

Например, если у вас есть список названий каналов, которые вы хотите проверить:

channel_names = ['channel1', 'channel2', 'channel3']
for ch in channel_names:
    channel = discord.get.utils(server.channels, name=ch, type="ChannelType.voice")
    full(channel)

Подробнее см. В документации :

discord.get_channel ()

discord.utils.get ()

...