事件基础处理
机器人可以通过@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