discord.py отправить сообщение, если автор не находится в голосовом канале

#python-3.x #discord.py #discord.py-rewrite

#python-3.x #discord.py

Вопрос:

Я хочу, чтобы мой бот отправлял сообщение, если я не в голосовом канале, когда я набираю команду.

Вот мой текущий код:

 @client.command()
async def play(ctx):
    channel = ctx.author.voice.channel 
    if channel:
        await channel.connect() 
        await ctx.send('Joining voicechat.')
    elif channel is None:
        await ctx.send('You have to be in a voice channel first.')
  

Он присоединяется и отправляет сообщение, когда я нахожусь в голосовом канале, но когда меня нет, он возвращает эту ошибку в терминале:

Command raised an exception: AttributeError: 'NoneType' object has no attribute 'channel'

Ответ №1:

Member.voice будет None, вам нужно проверить это

Ниже приведен пересмотренный код:

 @client.command()
async def play(ctx):
    channel = ctx.author.voice
    if channel:
        await channel.channel.connect() 
        await ctx.send('Joining voicechat.')
    else:
        await ctx.send('You have to be in a voice channel first.')