NoneBot2插件——戳一戳监听

参考: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) + "被戳了戳")
            # ------开发环境调试

代码通俗易懂,有相关的调试信息输出(已注释),可根据相关内容写出其他的插件,
其中这个戳一戳事件不仅仅是群内的,私聊也可以监听到

参考中还有其他的相关事件监听器:

如有错误,还请各位大佬指点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值