我有一个关于 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")```
答案 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]
= 只需插入带有正确缩进的 if
和 else
代码。self
。