khl.py khl.py
主页
文档
示例
  • khl.py (opens new window)
  • khl.py.docs (opens new window)
KOOK (opens new window)
主页
文档
示例
  • khl.py (opens new window)
  • khl.py.docs (opens new window)
KOOK (opens new window)
  • 机器人

    • 初始化
    • 命令
    • 定时任务
    • 在玩状态
  • 消息

    • 消息类型
    • 上传和发送文件或图片
    • 卡片消息
  • 频道

    • 获取频道对象
    • 主动发送消息
  • 用户

    • 获取机器人用户对象
    • 获取用户对象和发送私聊信息
    • 机器人下线
  • 服务器

    • 获取服务器对象
    • 服务器角色操作
    • 设置用户昵称
  • 事件

    • 事件基础处理
      • 基础
      • 事件信息
      • 示例
  • 其他

    • KOOK客户端获取各类ID
    • 多文件注册机器人命令
    • 配置python的venv虚拟环境
    • 获取图片链接
    • 尝试自己调用api
  • docs
  • 事件
musnows
2023-08-02
目录
基础
事件信息
示例

事件基础处理

机器人可以通过@bot.on_event监听kook提供的各类事件,并在事件发生时触发相关函数

# 基础

所有事件都的存放在 EventTypes 里面的

from khl import EventTypes

你可以查看这个类中的事件名称,并使用如下方法监听此事件

from khl import EventTypes, Bot, Event

@bot.on_event(EventTypes.事件类型)
async def exp_event(b: Bot, e: Event):
    # 处理函数

# 事件信息

事件信息一般存放于 e.body 和 e.target_id 中; 你可以监听你想要的事件,然后打印这两个值的内容,再针对你的业务进行后续的逻辑处理。

# 示例

举个例子,如下代码就是一个监听了 用户加入kook服务器 事件的处理流程

当有用户加入kook服务器,机器人会向目标文字频道发送一个信息。

@bot.on_event(EventTypes.JOINED_GUILD)
async def join_guild_send_event(b: Bot, e: Event):
    try:
        print("user join guild", e.body)  # 用户加入了服务器
        ch = await bot.client.fetch_public_channel("文字频道ID")  # 获取指定文字频道的对象
        # 发送信息
        ret = await ch.send("用户加入服务器触发了此消息") 
        print(f"ch.send | msg_id {ret['msg_id']}")  # 刚刚发送消息的id
    except Exception as result:
        print(traceback.format_exc())  # 打印报错详细信息
上次更新: 2024/01/29, 03:40:24
设置用户昵称
KOOK客户端获取各类ID

← 设置用户昵称 KOOK客户端获取各类ID→

Artalk ErrorFailed to load comments
TypeError: Failed to fetch


Retry
Theme by Vdoing | Copyright © 2023-2025 khl.py | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式