You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pycord如何创建SubCommands或SlashCommands分组?求BridgeCommandGroup示例

使用Pycord的BridgeCommandGroup创建Ticket子命令示例

以下是完整的示例代码,展示如何通过BridgeCommandGroup将独立的工单命令整合为/ticket主命令的子命令:

基础初始化与命令组创建

import discord
from discord.ext import bridge

# 初始化Bot,按需配置Intents
intents = discord.Intents.default()
intents.message_content = True
bot = bridge.Bot(command_prefix="!", intents=intents)

# 创建/ticket主命令组
ticket_group = bridge.BridgeCommandGroup(
    "ticket",
    description="工单系统相关操作命令"
)

子命令实现

/ticket open(创建新工单)

@ticket_group.command(description="创建一个新的工单频道")
async def open(ctx: bridge.BridgeContext):
    # 替换为实际创建工单的逻辑:比如创建私有频道、发送引导消息等
    await ctx.respond(f"已为你创建专属工单频道!", ephemeral=True)

/ticket close(关闭当前工单)

@ticket_group.command(description="关闭当前工单并清理频道")
async def close(ctx: bridge.BridgeContext):
    # 替换为实际关闭工单的逻辑:比如归档消息、通知相关人员等
    await ctx.respond(f"工单已标记为关闭,频道将在5秒后删除。", ephemeral=True)
    await ctx.channel.delete(delay=5)

/ticket config(配置工单系统,仅管理员可用)

# 自定义管理员权限检查器
def require_admin(ctx: bridge.BridgeContext):
    return ctx.author.guild_permissions.administrator

@ticket_group.command(description="配置工单系统参数(仅管理员可操作)")
@bridge.check(require_admin)
async def config(ctx: bridge.BridgeContext, setting_key: str, setting_value: str):
    # 替换为实际配置逻辑:比如将设置存入数据库或本地配置文件
    await ctx.respond(f"已更新工单设置:`{setting_key}` → `{setting_value}`", ephemeral=True)

/ticket add_person(添加用户到当前工单)

@ticket_group.command(description="邀请指定用户加入当前工单频道")
async def add_person(ctx: bridge.BridgeContext, target_user: discord.Member):
    # 替换为实际权限配置逻辑:允许目标用户查看和发送消息
    await ctx.channel.set_permissions(
        target_user,
        read_messages=True,
        send_messages=True,
        view_channel=True
    )
    await ctx.respond(f"已邀请 {target_user.mention} 加入当前工单!")

注册命令组并启动Bot

# 将命令组注册到Bot实例
bot.add_command(ticket_group)

@bot.event
async def on_ready():
    print(f"Bot已登录:{bot.user.name} ({bot.user.id})")

# 替换为你的Bot令牌
bot.run("YOUR_BOT_TOKEN_HERE")

注意事项

  • 确保Bot拥有对应的服务器权限(如管理频道、修改角色权限等)
  • 根据实际业务需求完善每个子命令的核心逻辑
  • ephemeral=True 用于仅让命令发起者看到响应,适合隐私操作
  • 权限检查可以使用Pycord内置的检查器或自定义检查函数

内容的提问来源于stack exchange,提问作者Zachary ALISON

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:25:18