【问题标题】:Bot refuses to join a voice channelBot 拒绝加入语音频道
【发布时间】:2021-08-08 11:39:54
【问题描述】:

我的 discord.py 拒绝加入语音频道,但在我运行命令时没有出现任何错误。我很新,所以一直在尝试它,但我看了很多东西,我写的东西看起来不错,但它仍然不起作用

bot = commands.Bot(command_prefix = '$')


@bot.command()
async def join(ctx):
  channel = ctx.author.voice.channel
  await channel.connect()

这是我的一小段代码,但我认为 $join 命令应该使它加入我的语音频道是正确的。我还检查了不和谐的开发者门户,它确实允许加入语音频道。

【问题讨论】:

  • 你导入from discord.ext import commands了吗?
  • 是的,我已经做到了
  • 您是否使用print 语句查看出了什么问题?这对我来说可以。你可以分享完整的代码吗?我猜你也有on_message 活动?
  • 不,我正在关注的教程并没有说要使用 on 消息,您能否解释一下如何使用它,因为我之前从未见过有人使用它
  • 在这种情况下

标签: python discord.py


【解决方案1】:

确保您已安装 discord.py 语音!您可以通过 pip install discord.py[voice] 来实现这一点,这允许您的机器人加入 vcs 并播放音乐。

【讨论】:

    【解决方案2】:
    intents = discord.Intents.all()
    bot = commands.Bot(command_prefix='$', intents=intents)
    
    # ...
    

    【讨论】:

    • 所有intents有点没必要,要不包括哪些intents是必需的?
    • @mousetail 当你可以使用所有意图时,只使用你需要的意图是没有意义的。
    • 有些intent需要特殊权限才能使用,即使不使用也会导致权限错误
    • 另外,您将收到所有意图的事件,如果您忽略它们会浪费带宽
    • @mousetail 特权意图不会发生权限错误,因为如果在代码和开发人员门户中均未启用特权意图,机器人根本不会收到有关特权意图的信息。并接收每个意图的事件?大不了。与正常意图(如消息)不断发送的大量数据相比,它是微不足道的。更好;当您的机器人需要新的意图时,启用所有意图可以为您省去麻烦。
    猜你喜欢
    • 2020-11-04
    • 2020-10-07
    • 2020-11-03
    • 1970-01-01
    • 2022-01-23
    • 2021-01-05
    • 2020-06-26
    • 2017-06-22
    • 2020-12-21
    相关资源
    最近更新 更多