from nonebot.adapters.onebot.v11 import GroupMessageEvent def get_at_id(ev: GroupMessageEvent) -> int | None: """提取消息中第一个被 at 的用户(排除 at all)""" for m in ev.message: if m.type == "at" and m.data.get("qq") != "all": return int(m.data["qq"]) return None def has_at_all(ev: GroupMessageEvent) -> bool: return any(m.type == "at" and m.data.get("qq") == "all" for m in ev.message)