当没有人在语音频道中时,不和谐py加入语音命令

时间:2021-03-16 18:34:55

标签: python discord.py

我有一个关于 discord.py 的 join 命令的问题。我有这个 join 函数,它工作正常,但我想要对用户在不在 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 个答案:

答案 0 :(得分: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] = 只需插入带有正确缩进的 ifelse 代码。
  • 根据使用的方法,您可能需要修改命令并添加 self