QFurinaQFurina
首页
快速开始
  • AI对话
  • 绘图
  • 语音
  • 联网
插件系统
API参考
GitHub
首页
快速开始
  • AI对话
  • 绘图
  • 语音
  • 联网
插件系统
API参考
GitHub
  • API文档

    • QFurina 核心API
    • QFurinaClient 客户端
    • QFurinaMessage 消息处理
    • QFurinaPlugin 插件接口

插件生命周期函数

    async def on_load(self):
        """当插件被加载时调用"""
        pass

    async def on_unload(self):
        """当插件被卸载时调用"""
        pass

    async def on_enable(self):
        """当插件被启用时调用"""
        self.enabled = True

    async def on_disable(self):
        """当插件被禁用时调用"""
        self.enabled = False

onebotv11相关配置


# 定义消息类型枚举
class MessageType(Enum):
    PRIVATE = "private"  # 私聊消息
    GROUP = "group"  # 群聊消息

# 定义事件类型枚举
class EventType(Enum):
    MESSAGE = "message"  # 消息事件
    NOTICE = "notice"  # 通知事件
    REQUEST = "request"  # 请求事件
    META_EVENT = "meta_event"  # 元事件

# 定义通知类型枚举
class NoticeType(Enum):
    GROUP_UPLOAD = "group_upload"  # 群文件上传
    GROUP_ADMIN = "group_admin"  # 群管理员变动
    GROUP_DECREASE = "group_decrease"  # 群成员减少
    GROUP_INCREASE = "group_increase"  # 群成员增加
    GROUP_BAN = "group_ban"  # 群禁言
    FRIEND_ADD = "friend_add"  # 好友添加
    GROUP_RECALL = "group_recall"  # 群消息撤回
    FRIEND_RECALL = "friend_recall"  # 好友消息撤回
    POKE = "poke"  # 戳一戳
    LUCKY_KING = "lucky_king"  # 运气王
    HONOR = "honor"  # 群荣誉变更

# 定义请求类型枚举
class RequestType(Enum):
    FRIEND = "friend"  # 好友请求
    GROUP = "group"  # 群请求

# 定义消息段类型
class MessageSegment(TypedDict):
    type: str  # 消息段类型
    data: dict  # 消息段数据

# 定义发送者信息类型
class Sender(TypedDict):
    user_id: int  # 用户ID
    nickname: str  # 昵称
    sex: str  # 性别
    age: int  # 年龄
    card: str  # 群名片
    area: str  # 地区
    level: str  # 等级
    role: str  # 角色
    title: str  # 头衔

# 定义群消息事件类型
class GroupMessageEvent(TypedDict):
    post_type: str  # 上报类型
    message_type: str  # 消息类型
    time: int  # 事件发生的时间戳
    self_id: int  # 收到事件的机器人 QQ 号
    sub_type: str  # 消息子类型
    message_id: int  # 消息 ID
    user_id: int  # 发送者 QQ 号
    message: Union[str, List[MessageSegment]]  # 消息内容
    raw_message: str  # 原始消息内容
    font: int  # 字体
    sender: Sender  # 发送人信息
    group_id: int  # 群号

# 定义私聊消息事件类型
class PrivateMessageEvent(TypedDict):
    post_type: str  # 上报类型
    message_type: str  # 消息类型
    time: int  # 事件发生的时间戳
    self_id: int  # 收到事件的机器人 QQ 号
    sub_type: str  # 消息子类型
    message_id: int  # 消息 ID
    user_id: int  # 发送者 QQ 号
    message: Union[str, List[MessageSegment]]  # 消息内容
    raw_message: str  # 原始消息内容
    font: int  # 字体
    sender: Sender  # 发送人信息

# 可以继续添加其他事件类型的定义...

# 判断是否为群消息
def is_group_message(event: dict) -> bool:
    return event.get('message_type') == MessageType.GROUP.value

# 判断是否为私聊消息
def is_private_message(event: dict) -> bool:
    return event.get('message_type') == MessageType.PRIVATE.value

# 获取用户ID
def get_user_id(event: dict) -> int:
    return event.get('user_id', 0)

# 获取群ID
def get_group_id(event: dict) -> int:
    return event.get('group_id', 0)

# 获取消息内容
def get_message_content(event: dict) -> str:
    return event.get('raw_message', '')

def get_sender(event: dict) -> Sender:
    return event.get('sender', {})

def get_username(event: dict) -> str:
    return event.get('sender', {}).get('nickname', '')
在 GitHub 上编辑此页
上次更新:
Prev
QFurina 核心API
Next
QFurinaMessage 消息处理