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

如何获取另一Discord机器人(Mee6)的指令参数值

解决方案:追踪Mee6的/spawn-item指令参数

首先,你当前的代码只打印机器人消息内容,但Mee6执行/spawn-item后的响应通常是嵌入消息(Embed),而非普通文本,直接调用message.content会输出None。需要针对Embed内容解析参数。

以下是修正后的代码:

import re
import discord

@client.event
async def on_message(message: discord.Message):
    # 只处理Mee6发送的消息(Mee6的固定用户ID为159985870458322944)
    if message.author.id == 159985870458322944:
        # 检查消息是否包含Embed
        if message.embeds:
            embed = message.embeds[0]
            description = embed.description
            # 匹配Mee6典型的spawn-item响应格式:"给 <@用户ID> 生成了 x 个 [物品名称]"
            if description and "生成了" in description:
                # 用正则提取参数
                member_match = re.search(r'<@(\d+)>', description)
                amount_match = re.search(r'(\d+) 个', description)
                item_match = re.search(r'个 (.+)\]', description)
                
                if member_match and amount_match and item_match:
                    member_id = member_match.group(1)
                    amount = amount_match.group(1)
                    item = item_match.group(1)
                    
                    # 获取成员对象,若不存在则用ID代替
                    member = message.guild.get_member(int(member_id))
                    member_name = member.display_name if member else member_id
                    
                    # 输出或处理参数
                    print(f"成员:{member_name},物品:{item},数量:{amount}")

关键说明

  • 过滤Mee6消息:直接通过固定ID判断,避免处理其他机器人的消息
  • 读取Embed内容:Mee6的物品生成通知是嵌入消息,需从message.embeds中提取描述文本
  • 正则匹配参数:根据Mee6的实际响应格式调整正则表达式(若你的服务器中Mee6的提示语有差异,需修改匹配规则)
  • 获取成员信息:通过提取的成员ID可以获取服务器内的成员对象,拿到昵称等详细信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:40:26