参考:onebot-11/event/notice.md at master · botuniverse/onebot-11 (github.com)
# 使用 on_notice 装饰器来注册群戳一戳提醒事件监听器
group_poke = on_notice()
# 以下为戳一戳回复事件
@group_poke.handle()
async def _(bot: Bot, event: NoticeEvent):
if isinstance(event, PokeNotifyEvent):
if event.target_id == event.self_id: #判断戳的是不是机器人?不然就监听所有的戳一戳事件了。
group_id = event.group_id
user_id = event.user_id
try:
# 获取数据
infos = await bot.get_stranger_info(user_id=user_id)
# ------开发环境调试
# # 保存为 JSON 文件
# with open('stranger_info.json', 'w', encoding='utf-8') as file:
# json.dump(infos, file, ensure_ascii=False, indent=4)
# ------开发环境调试
nickname = infos.get('nickname')
except Exception as e:
nickname = ""
data = MessageSegment.image("https://vip.helloimg.com/i/2024/08/18/66c1c7126f494.jpg") + MessageSegment.text("竟然有人会尝试戳我\n") + "所以旅行者(" + MessageSegment.text(f"{nickname})\n我是星辰Bot,有什么需要帮助的吗?")
await group_poke.finish(data)
# ------开发环境调试
# print("戳一戳提醒事件" + str(infos))
# print("戳一戳提醒事件" + nickname)
# print("戳一戳提醒事件" + str(event).replace("[notice.notify.poke]: ",""))
# print("戳一戳提醒事件:" + str(event.target_id) + "被戳了戳")
# ------开发环境调试
代码通俗易懂,有相关的调试信息输出(已注释),可根据相关内容写出其他的插件,
其中这个戳一戳事件不仅仅是群内的,私聊也可以监听到
参考中还有其他的相关事件监听器:
如有错误,还请各位大佬指点