常见场景
约 342 字大约 1 分钟
2025-09-28
处理小抄(Handlers Cookbook)
这里给出基于“事件快速回复”方法的常见场景代码片段,便于即抄即用。
基本格式:
from ncatbot.core.event import BaseMessageEvent, RequestEvent
async def your_message_handler(event: BaseMessageEvent):
# 你的处理代码
pass
async def your_request_handler(event: RequestEvent):
# 你的处理代码
pass群聊戳一戳反戳
from ncatbot.core import BotClient, NoticeEvent, MessageArray
from ncatbot.utils import config
bot = BotClient()
@bot.on_notice() # type: ignore
async def on_notice(event: NoticeEvent):
notice = event.sub_type
if notice == 'poke' and event.is_group_event(): # 群聊戳一戳消息
if event.target_id == event.self_id:
# Bot 被戳时戳回去
await bot.api.send_poke(user_id=event.user_id, group_id=event.group_id)
bot.run_frontend()群消息:回复并 @ 对方
async def on_group(event):
await event.reply(text="收到", at=True)群消息:仅引用回复(不@)
await event.reply(text="只引用", at=False)群消息:撤回当前消息
await event.delete()群消息:禁言消息发送者 60 秒
await event.ban(ban_duration=60)群消息:踢出消息发送者
await event.kick()群消息:带图片的回复
await event.reply(image="./pic.png")私聊消息:快速文本/图片回复
await event.reply(text="你好")
await event.reply(image="./pic.png")请求:同意加好友并设置备注
if event.request_type == "friend":
await event.approve(True, remark="新朋友 XXX")请求:拒绝入群并给理由
if event.request_type == "group":
await event.approve(False, reason="请先完成实名认证")同步环境用法(示例)
# 群
event.reply_sync(text="OK", at=True)
event.delete_sync()
event.ban_sync(60)
event.kick_sync()
# 私聊
event.reply_sync(text="你好")
# 请求
event.approve_sync(True, remark="新同学")版权所有
版权归属:huan-yp
