#python #discord.py
Вопрос:
У меня возник вопрос о команде join для discord.py. У меня есть эта функция объединения, которая отлично работает, но я хотел бы получить конкретное определение для ситуаций, когда пользователь вводит команду, находясь не в VC.
У меня есть сообщение, если он успешно присоединится, а затем другой вариант, если кто-то введет команду, уже находясь в VC. Мне просто нужен elif на случай, если кто-то введет команду, не находясь в голосовом вызове. Не знаю, как это сделать, буду признателен за любую помощь.
voiceChannel = ctx.author.voice.channel
voice = discord.utils.get(bot.voice_clients, guild = ctx.guild)
if voice == None:
await voiceChannel.connect()
await ctx.send(f"Joined **{voiceChannel}**")
else:
await ctx.send("I'm already in a VC")```
Ответ №1:
Ошибка, которая выдается AttributeError
, возникает, когда пользователь не находится в канале.
Вы должны перестроить свой код следующим образом:
@client.command() / @bot.command() / @commands.command()
async def join(ctx):
try: # Build in a try
[Your Code here]
except AttributeError: # If not in a voice channel
return await ctx.send("You have to be in a channel to do that!")
[Your Code here]
= Просто вставьте свойif
else
код и с правильным отступом.- В зависимости от используемого метода вам может потребоваться изменить команду и добавить a
self
.