如何检查机器人是否连接到频道? |不和谐.py

2023-11-27

我决定尝试让我的不和谐机器人播放音乐,但我已经陷入困境了。主要是由于我找不到任何资源来帮助当前版本,所以我一直在参考文档中的所有内容。但是,我不知道如何检查机器人是否连接到语音通道。

我努力了if not Client.is_connected():,但是这没有用。如果有任何更新的资源可以帮助我了解 discord.py 语音功能的基础知识,请给我一个链接:) 这是迄今为止我的代码:

# ----- ATTEMPT AT VOICE COMMANDS ------
#discord.opus.load_opus() - what goes in bracket???

@client.command(name="join", pass_ctx=True)
async def join(ctx):
    #if not is_connected(): - Client.is_connected() not working

    user = ctx.message.author
    vc = user.voice.channel
    await vc.connect()
    await ctx.send(f"Joined **{vc}**")

    #else:
    #    await ctx.send("I'm already connected!")

@client.command(name="disconnect", pass_ctx=True)
async def disconnect(ctx):
    # if not is_connected(): - once again can't work it out
    vc = ctx.message.guild.voice_client # i don't even know how this worked :D
    await vc.disconnect()

    #else:
    #    await ctx.send("I'm not connected to any channels")

@client.command(name="play", pass_ctx=True)
async def play(ctx, songurl=None):
    if not songurl: # this works at least
        await ctx.send("Please specify a song")
        return
    if not is_connected(): # once again, how to check if bot is connected?
        vc = ctx.message.author.voice.channel
        if not vc: # i think this should work
            await ctx.send("You're not in a voice channel!")

        await vc.connect()
    # haven't even worked out anything past this point and it's broken

PS:抱歉,我把我的整个 VC 部分都扔掉了,但我不太明白

实际上,这里最重要的是播放命令,但我将其他命令包括在内只是因为(正如您从我的评论中看到的)我不明白发生了很多事情。我该怎么办?当前版本有什么好的资源吗?提前致谢。


一个机器人可以同时连接多个公会的语音,所以你需要获取VoiceClient对于适当的公会Client.voice_clients然后检查VoiceClient.is_connected:

def is_connected(ctx):
    voice_client = get(ctx.bot.voice_clients, guild=ctx.guild)
    return voice_client and voice_client.is_connected()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查机器人是否连接到频道? |不和谐.py 的相关文章

  • discord.py 中的 Cog 和 Extension 有什么区别?

    在discord py文档中 有 扩展 https discordpy readthedocs io en stable ext commands extensions html https discordpy readthedocs io
  • SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1108) Discord/python

    我正在使用 Pycharm 和 python 3 8 以及最新版本的不和谐 我尝试运行此脚本但收到此错误 有人可以帮忙吗 import discord TOKEN xxxxx client discord Client client eve
  • Discord.py(重写)on_member_update 无法正常工作

    我对 discord py 包的 on member update 函数有疑问 我的问题是 on member update 函数仅在机器人本身更新时触发 如角色更新 而不是在其他用户更新时触发 它应该如何工作 这是我的代码的细分 impo
  • Discord.py 时间表

    这就是我到目前为止所拥有的 确实适用于我想要的延迟秒数 但是如何添加时间模块或时间表模块以使其工作 以防万一我希望机器人每 24 小时发送一次消息 import discord import asyncio from discord ext
  • Discord.py on_member_join 没有响应

    我正在使用一个 client event为我的功能on member join事件 我希望它在用户加入时发送消息 但是控制台没有响应或错误 这是我当前尝试的代码 client event async def on member join m
  • 如何在Python不和谐机器人中获取提到的用户的ID?

    所以我正在用 python 编写一个不和谐的机器人 但有一个问题 我知道如何提及发送消息的用户 但是如何获取作者在消息中提到的用户的 ID 我无法得到答案 您可以使用以下方式获取消息中提到的用户message mentions async
  • 使用 youtube-dl 搜索 Youtube 视频

    我正在尝试构建一个 Discord 音乐机器人 我需要使用用户给出的关键字搜索 YouTube 目前我知道如何从网址播放 loop loop or asyncio get event loop data await loop run in
  • 添加对消息的反应。 Discord.py 重写

    我正在尝试使用自定义表情符号添加对消息的反应 由于某种原因 我在网上找不到太多与此相关的内容 并且我花了过去 3000 万的时间试图找出不同的方法 到目前为止还没有任何效果 这是在齿轮内部 第一种方法 accept decline awai
  • 在discord.py中调用on_member_update时如何访问member?

    我正在尝试创建一个不和谐的机器人 一旦成员离线 不可见 该机器人就会为该成员添加特定的角色 这是我的代码 bot event async def on member update before after if str before sta
  • 在discord.py中添加角色

    我尝试了许多不同的方法 并在 youtube 上进行了搜索 但我尝试的所有方法都不起作用 已过时或不相关 如何向提到的用户添加角色 这就是我的代码 你看 最后我在 里写的 client command commands has permis
  • android:媒体记录器:启动失败:-38

    简介 如何检查录音是否已在其他应用程序的后台运行 详细信息 如果录音已在本机应用程序的后台运行 录音机 现在我已将录音作为我的应用程序中的功能之一 问题 当我尝试同时在我的应用程序中录制时 出现错误 E MediaRecorder star
  • 在 Django 中运行 Discord 机器人

    我想要一个访问 Django 数据库的不和谐机器人 一个明显的解决方案是有两个单独的脚本 我想知道是否有办法使不和谐机器人作为应用程序或其他东西成为 Django 的一部分 您可以在单独的线程中运行不和谐机器人 并且还可以相互设置属性 同样
  • Python 为消息添加自定义反应

    我想为多个命令添加多个自定义反应 或者如果我们添加反应列表 它将从该列表中添加随机反应 那么该怎么做呢 from discord utils import get 按名称添加表情符号 reactions emoji name 1 emoji
  • 如何向随机频道发送消息?

    我正在尝试制作一个机器人 当用户发送特定消息时 它会向随机选择的频道发送随机消息 除了获取所有频道 ID 并手动将它们添加到列表中 然后从该列表中随机选择之外 我不知道如何解决这个问题 但是这种方法存在一些非常大的问题 而且它不起作用 我尝
  • Client = Discord.client() TypeError: 'module' 对象不可调用

    为什么我会得到TypeError module object is not callable用我的代码 import discord from discord ext commands import Bot from discord ext
  • Discord.py 机器人没有响应

    我对discord py相对较新 我正在制作一个机器人 但是使用某些命令或我放置的东西 机器人停止响应命令 当它以前工作时 我不知道如何修复它 机器人开启 但不响应任何命令 这是新的区域 import os import discord f
  • discord.py send_message 用法

    我已经开始致力于一个项目来加速我对 python 的学习 我正在尝试重新创建一个我经常使用的不和谐机器人 因为我已经习惯了它的功能 下面是我当前的代码 import discord from discord import User from
  • 通话过程中是否可以拦截语音数据?

    我计划开发 Android 应用程序 对语音数据进行加密 解密 以便各方可以使用安全通道进行通信 那么问题来了 GSM通话时如何拦截语音 音频数据 可能还是不可能 我应该使用 Android NDK 还是其他东西 在 GSM 中 由于信道特
  • 我的 on_member_join 事件不起作用。我尝试了意图,但它给出了这个错误

    考虑 最近一次通话最后 文件 randomgg py 第 1271 行 位于 u003cmodule u003e 中客户端 运行 令牌 文件 usr local lib python3 8 site packages discord cli
  • 从内存中发送图像

    我正在尝试为 Discord 机器人实现一个系统 该系统可以动态修改图像并将其发送给机器人用户 为此 我决定使用 Pillow PIL 库 因为它对于我的目的来说似乎简单明了 这是我的工作代码的示例 它加载一个示例图像 作为测试修改 在其上

随机推荐

  • Electron 中的自定义错误窗口/处理

    我目前正在构建一个用于文件备份的应用程序 它对文件系统进行了大量的读写操作 大部分功能都很好 但我在应用程序的错误处理方面遇到了一些困难 在下面的屏幕截图中 最后一个路径不是有效的目录 并返回异常 如您所见 function getTota
  • Visual Studio:检测不需要的程序集

    在较大和 或长期运行的项目中 我倾向于引用许多程序集和命名空间 并且通常最终会在稍后删除某些功能或将其移动到不同的项目中 我只是想知道 有没有一种方法可以检查整个 Visual Studio 解决方案中的每个项目 哎呀 每个 cs 文件 并
  • 如何在 Maven 构建中永久排除一个测试类

    我试图从我的 Maven 构建中排除单个测试 我不希望编译或执行该测试 以下不起作用
  • 如何更改和设置 Rcpp 编译参数

    我创建了一个新的Rcpp包 通过使用 RStudio 该包包含一个使用以下编译器选项编译的 C 函数 clang I Library Frameworks R framework Resources include DNDEBUG I us
  • 有些城市不是城市或大城市的实例?维基数据的奇怪行为

    在检查官方示例查询 大陆 国家 地区和首都 的结果时 关于https query wikidata org 为方便起见 仅限德国 link 我注意到德国联邦州的一些首府不见了 例如黑森州首府威斯巴登 我注意到威斯巴登是一个例子big cit
  • Android语音识别持续服务

    我正在尝试创建一项服务来在 Android 4 2 中运行连续语音识别 使用此链接中的答案 Android 语音识别作为 Android 4 1 和 4 2 上的服务 我创建了一个从活动运行的服务 我的问题是访问时出现空异常mTarget
  • 如果仅从前向列表中删除单个元素,如何有效地删除?

    嗯 我认为这个问题已经概括了这一点 我有一个包含唯一项目的forward list 并且想从中删除单个项目 std forward list
  • 从闭包填充集合时,类型不匹配“绑定生命周期参数”与“具体生命周期”

    我试图在可迭代序列中找到重复项 此外 我想知道到目前为止该序列中发生的元素 我创建了一个HashMap我正在尝试打电话insert从使用的闭包内对其进行take while 但是 由于与具体 绑定生命周期相关的类型不匹配 到目前为止我还没有
  • 销毁并重新加载子组件

    我需要能够完全重新加载子组件 实现这一目标的最佳方法似乎是使用一个简单的 ngIf具有布尔值 设置 false 来删除组件 然后设置为 true 来重新初始化它 即
  • 如何检索ag-grid中的列索引?

    In ag grid 当我想检索我使用的行索引时 params node id 但是 我找不到对列执行相同操作的方法 我发现的只是检索columnId它引用列定义中的字段变量 即 如果这是列定义 headerName checkButton
  • 以编程方式添加应用程序图标以在安装时停靠

    我希望在安装软件包 DMG 后将我的应用程序自动添加到扩展坞中 有谁知道如何做到这一点 安德鲁 有几种方法可以做到这一点 其中很大程度上取决于您如何安装应用程序 如果您使用 PackageMaker 安装应用程序 则可以运行 postfli
  • Redux-Form 通过外部交互更新字段值

    我有一个 redux form 连接到我的应用程序状态 一切似乎都运行良好 我可以获取数据并将其加载到我的表单中 然后提交数据并获取我想要的元数据 但是 我有一个自定义交互 颜色选择器 需要动态更改托管字段的值 我尝试的所有操作都会改变屏幕
  • 在c#中通过USB驱动POS打印机[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我有什么想法可以最好地从 C 驱动 USB POS 打印机 POS 打印机通常是基于串行 TCP IP 或 USB 的 我知道如何完成串行和 TCP
  • 如何找到调用者函数? [复制]

    这个问题在这里已经有答案了 关闭为完全相同的副本 如何找到调用当前方法的方法 Is this可以用c 吗 void main Hello void Hello how do you find out the caller is functi
  • 使用async需要async函数,但我的函数是async

    我正在改编一个使用回调的库使用承诺 当我使用时它正在工作then 但是当我使用时它不起作用await gt dbc solve AsyncFunction gt await dbc solve img await dbc solve img
  • 为什么 VB.Net 中每个窗体都有默认实例,而 C# 中却没有?

    我只是想知道有 Name 属性 它代表 Form 类的名称 此属性在命名空间内用于唯一标识窗体是其实例的类 并且在 Visual Basic 的情况下 用于访问窗体的默认实例 现在这个默认实例从何而来 为什么 C 不能有一个与此等效的方法
  • Rails 4:acts_as_taggable_on 的 text_field 不使用逗号分隔标签

    我试图让表单中的 text field 部分为逗号分隔的acts as taggable on 标签 现在 当我重新加载页面时 逗号会消失 因此如果一个字段有两个或多个标签 它们就会变成一个大标签 例如 我得到 Tag1 Tag2 Tag3
  • 系统调用期间发生 I/O 错误,S3 客户端的对等问题导致连接重置

    当尝试将文件 图像 音频 上传到 S3 时 我偶尔会遇到此异常 有什么解决办法吗 配置 Android 4x 5x aws android sdk s3 版本 2 2 14 Unable to execute HTTP request Wr
  • XML 可绘制对象在 4.3 和 4.1.2 上具有不同的行为

    我有以下可绘制的
  • 如何检查机器人是否连接到频道? |不和谐.py

    我决定尝试让我的不和谐机器人播放音乐 但我已经陷入困境了 主要是由于我找不到任何资源来帮助当前版本 所以我一直在参考文档中的所有内容 但是 我不知道如何检查机器人是否连接到语音通道 我努力了if not Client is connecte