LagrangeDev / Lagrange.Core

An Implementation of NTQQ Protocol, with Pure C#, Derived from Konata.Core
GNU General Public License v3.0
1.96k stars 238 forks source link

[Bug?]: @ 信息在事件接口中没有表示出来,不知道是@的谁。 #486

Closed xinlengyuer closed 2 weeks ago

xinlengyuer commented 1 month ago

请确保您已阅读以上注意事项,并勾选下方的确认框。

Lagrange项目

OneBot

所使用/依赖的Lagrange项目对应的commit

1

运行环境

Windows

运行架构

x64

连接方式

正向 WebSocket

重现步骤

接收 消息时,过来的信息里面 没有@信息,导致无法分辨是@ 了谁。

期望的结果是什么?

能获取到@信息

实际的结果是什么?

{
    "message_type": "group",
    "sub_type": "normal",
    "message_id": -642474682,
    "group_id": 35185918,
    "user_id": 2854208500,
    "anonymous": null,
    "message": [
        {
            "type": "text",
            "data": {
                "text": " "
            }
        },
        {
            "type": "text",
            "data": {
                "text": "\n"
            }
        },
        {
            "type": "text",
            "data": {
                "text": " "
            }
        },
        {
            "type": "text",
            "data": {
                "text": " 药园中可以种植灵植种子,种子可在小程序里购买。\n目前灵植可以作为炼丹的材料、未来可能作为炼器辅助材料提高炼器品质!\n ---\n目前药园种植情况如下:\n区域1:(仙露草种子)(已成熟)\n区域2:(未开垦)(需20000灵石)\n区域3:(未开垦)(需30000灵石)\n区域4:(未开垦)(需40000灵石)\n区域5:(未开垦)(需50000灵石)\n区域6:(未开垦)(需60000灵石)\n区域7:(未开垦)(需70000灵石)\n区域8:(未开垦)(需80000灵石)\n区域9:(未开垦)(需90000灵石)\n区域10:(未开垦)(需100000灵石)"
            }
        }
    ],
    "raw_message": " \n  药园中可以种植灵植种子,种子可在小程序里购买。\n目前灵植可以作为炼丹的材料、未来可能作为炼器辅助材料提高炼器品质!\n ---\n目前药园种植情况如下:\n区域1:(仙露草种子)(已成熟)\n区域2:(未开垦)(需20000灵石)\n区域3:(未开垦)(需30000灵石)\n区域4:(未开垦)(需40000灵石)\n区域5:(未开垦)(需50000灵石)\n区域6:(未开垦)(需60000灵石)\n区域7:(未开垦)(需70000灵石)\n区域8:(未开垦)(需80000灵石)\n区域9:(未开垦)(需90000灵石)\n区域10:(未开垦)(需100000灵石)",
    "font": 0,
    "sender": {
        "user_id": 2854208500,
        "nickname": "修仙之路",
        "card": "",
        "sex": "unknown",
        "age": 0,
        "area": "",
        "level": "0",
        "role": "member",
        "title": ""
    },
    "time": 1723281693,
    "self_id": 530603979,
    "post_type": "message"
}

简单的复现代码/链接(可选)

{
    "self_id": 530446074,
    "user_id": 2854208500,
    "time": 1723277228,
    "message_id": -2147045758,
    "real_id": -2147045758,
    "message_seq": -2147045758,
    "message_type": "group",
    "sender": {
        "user_id": 2854208500,
        "nickname": "修仙之路",
        "card": "",
        "role": "member"
    },
    "raw_message": "[CQ:markdown,data=[](%7B%22version%22%3A2%7D)\n[@欲难止](mqqapi://markdown/mention?at_type=1&at_tinyid=530603979) 药园中可以种植灵植种子,种子可在小程序里购买。\n目前灵植可以作为炼丹的材料、未来可能作为炼器辅助材料提高炼器品质!\n ---\n#目前药园种植情况如下:\n区域1:(仙露草种子)(1分钟成熟)\n区域2:(未开垦)(需20000灵石)\n区域3:(未开垦)(需30000灵石)\n区域4:(未开垦)(需40000灵石)\n区域5:(未开垦)(需50000灵石)\n区域6:(未开垦)(需60000灵石)\n区域7:(未开垦)(需70000灵石)\n区域8:(未开垦)(需80000灵石)\n区域9:(未开垦)(需90000灵石)\n区域10:(未开垦)(需100000灵石)]@欲难止@欲难止 药园中可以种植灵植种子,种子可在小程序里购买。\n目前灵植可以作为炼丹的材料、未来可能作为炼器辅助材料提高炼器品质!\n ---\n目前药园种植情况如下:\n区域1:(仙露草种子)(1分钟成熟)\n区域2:(未开垦)(需20000灵石)\n区域3:(未开垦)(需30000灵石)\n区域4:(未开垦)(需40000灵石)\n区域5:(未开垦)(需50000灵石)\n区域6:(未开垦)(需60000灵石)\n区域7:(未开垦)(需70000灵石)\n区域8:(未开垦)(需80000灵石)\n区域9:(未开垦)(需90000灵石)\n区域10:(未开垦)(需100000灵石)",
    "font": 14,
    "sub_type": "normal",
    "message": [
        {
            "data": {
                "data": "[](%7B%22version%22%3A2%7D)\n[@欲难止](mqqapi://markdown/mention?at_type=1&at_tinyid=530603979) 药园中可以种植灵植种子,种子可在小程序里购买。\n目前灵植可以作为炼丹的材料、未来可能作为炼器辅助材料提高炼器品质!\n ---\n#目前药园种植情况如下:\n区域1:(仙露草种子)(1分钟成熟)\n区域2:(未开垦)(需20000灵石)\n区域3:(未开垦)(需30000灵石)\n区域4:(未开垦)(需40000灵石)\n区域5:(未开垦)(需50000灵石)\n区域6:(未开垦)(需60000灵石)\n区域7:(未开垦)(需70000灵石)\n区域8:(未开垦)(需80000灵石)\n区域9:(未开垦)(需90000灵石)\n区域10:(未开垦)(需100000灵石)"
            },
            "type": "markdown"
        },
        {
            "data": {
                "text": "@欲难止"
            },
            "type": "text"
        },
        {
            "data": {
                "text": "@欲难止"
            },
            "type": "text"
        },
        {
            "data": {
                "text": " 药园中可以种植灵植种子,种子可在小程序里购买。\n目前灵植可以作为炼丹的材料、未来可能作为炼器辅助材料提高炼器品质!\n ---\n目前药园种植情况如下:\n区域1:(仙露草种子)(1分钟成熟)\n区域2:(未开垦)(需20000灵石)\n区域3:(未开垦)(需30000灵石)\n区域4:(未开垦)(需40000灵石)\n区域5:(未开垦)(需50000灵石)\n区域6:(未开垦)(需60000灵石)\n区域7:(未开垦)(需70000灵石)\n区域8:(未开垦)(需80000灵石)\n区域9:(未开垦)(需90000灵石)\n区域10:(未开垦)(需100000灵石)"
            },
            "type": "text"
        }
    ],
    "message_format": "array",
    "post_type": "message",
    "group_id": 35185918
}

Trace 级别日志记录(可选)

No response

补充说明(可选)

No response

Linwenxuan04 commented 1 month ago

在这里MentionEntity根本没有被识别出来 所以可以考虑升级一下拉格兰 顺便你这个json数据真的是拉格兰来的吗 拉格兰并没有real_id这个字段

2mf8 commented 1 month ago

在这里MentionEntity根本没有被识别出来 所以可以考虑升级一下拉格兰 顺便你这个json数据真的是拉格兰来的吗 拉格兰并没有real_id这个字段

实际的是拉格兰的,复现的是幻想乡构造的

2mf8 commented 1 month ago

官机文本消息的@是正常的,非文本消息的@可能本身不存在。或者在另一个结构里(想到了当初MD假@的构造了)

zhongjianhua163 commented 1 month ago

在这里MentionEntity根本没有被识别出来 所以可以考虑升级一下拉格兰 顺便你这个json数据真的是拉格兰来的吗 拉格兰并没有real_id这个字段

是官机的消息,但是LAGRANGE里没有@信息,而LLONEBOT插件的消息有这个@。

上面第一个JSON是LAGRANGE的, 后面那个JSON是LLONEBOT的消息。