python - 让 discord.py 机器人使用外部命令
问题描述
我打算制作一个通用机器人,它也可以调用其他机器人。有任何想法吗?
import os
import discord
import time
from discord.ext import commands
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv("DISCORD_TOKEN")
bot = commands.Bot(command_prefix = ".")
@bot.event
async def on_ready():
print(f"{bot.user.name} is ready")
#---------------------------------------#
@bot.command(name = "bot_interact")
async def join(ctx, voice_channel: commands.VoiceChannelConverter):
await voice_channel.connect()
await ctx.send("-play (desired_song)")
time.sleep(2)
await ctx.send("-loop")
@bot.command(name = "leave")
async def leave(ctx):
server = ctx.message.guild.voice_client
await server.disconnect()
#---------------------------------------#
bot.run(TOKEN)
此外,我把它弄得很满,所以你可以具体看到我想要做什么,这是我的机器人来引起 Groovy 的注意,并告诉 Groovy,我想播放这首歌。请记住,我对 python 比较陌生,我没有使用太多。提前谢谢
解决方案
机器人几乎总是被设计为忽略任何其他机器人的消息。没有这个,机器人可能会进入无限循环。
Groovy 做同样的事情。它将忽略机器人发送的所有其他消息。
推荐阅读
- angular - 如何将 SASS 选项传递给 Angular 库构建器
- javascript - 通过将所有嵌套数组项与父元素连接来创建数组
- python - 在 python 中发送 HTML 图像电子邮件
- apache-kafka - 为什么 debezium 连接器进入未分配状态?
- gitlab - 单个 GitLab CI 作业的多个 terraform 报告
- elasticsearch - helm 中的 elasticsearch 安装失败并出现 statefulset 错误
- docker - 如何从 Azure Devops ubuntu 构建代理访问 docker sql server 数据库?
- bash - 为什么这是无限循环 - Bash 中的简单游戏脚本
- java - Sonatype OSS Index Analyzer Error requesting component 报告 javax.net.ssl.SSLHandshakeException:
- postgresql - 连接到 Microsoft Azure 的 postgres (dBeaver) 证书问题中的 dblink