perf: 升级插件功能
This commit is contained in:
parent
440d19836a
commit
dcb0cdc02b
@ -1,3 +1,10 @@
|
|||||||
|
from nakuru.entities.components import *
|
||||||
|
from nakuru import (
|
||||||
|
GroupMessage,
|
||||||
|
FriendMessage
|
||||||
|
)
|
||||||
|
from botpy.message import Message, DirectMessage
|
||||||
|
|
||||||
class HelloWorldPlugin:
|
class HelloWorldPlugin:
|
||||||
"""
|
"""
|
||||||
初始化函数, 可以选择直接pass
|
初始化函数, 可以选择直接pass
|
||||||
@ -7,19 +14,32 @@ class HelloWorldPlugin:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
入口函数,机器人会调用此函数。
|
入口函数,机器人会调用此函数。
|
||||||
参数规范: message: 消息文本; role: 身份; platform: 消息平台
|
参数规范: message: 消息文本; role: 身份; platform: 消息平台; message_obj: 消息对象
|
||||||
|
参数详情: role为admin或者member; platform为qqchan或者gocq; message_obj为nakuru的GroupMessage对象或者FriendMessage对象或者频道的Message, DirectMessage对象。
|
||||||
返回规范: bool: 是否hit到此插件(所有的消息均会调用每一个载入的插件, 如果没有hit到, 则应返回False)
|
返回规范: bool: 是否hit到此插件(所有的消息均会调用每一个载入的插件, 如果没有hit到, 则应返回False)
|
||||||
Tuple: None或者长度为3的元组。当没有hit到时, 返回None. hit到时, 第1个参数为指令是否调用成功, 第2个参数为返回的消息文本, 第3个参数为指令名称
|
Tuple: None或者长度为3的元组。当没有hit到时, 返回None. hit到时, 第1个参数为指令是否调用成功, 第2个参数为返回的消息文本或者gocq的消息链列表, 第3个参数为指令名称
|
||||||
例子:做一个名为"yuanshen"的插件;当接收到消息为“原神 可莉”, 如果不想要处理此消息,则返回False, None;如果想要处理,但是执行失败了,返回True, tuple([False, "请求失败啦~", "yuanshen"])
|
例子:做一个名为"yuanshen"的插件;当接收到消息为“原神 可莉”, 如果不想要处理此消息,则返回False, None;如果想要处理,但是执行失败了,返回True, tuple([False, "请求失败啦~", "yuanshen"])
|
||||||
;执行成功了,返回True, tuple([True, "结果文本", "yuanshen"])
|
;执行成功了,返回True, tuple([True, "结果文本", "yuanshen"])
|
||||||
"""
|
"""
|
||||||
def run(self, message: str, role: str, platform: str):
|
def run(self, message: str, role: str, platform: str, message_obj):
|
||||||
|
|
||||||
|
if platform == "gocq":
|
||||||
|
"""
|
||||||
|
QQ平台指令处理逻辑
|
||||||
|
"""
|
||||||
|
if message == "helloworld":
|
||||||
|
return True, tuple([True, [Plain("Hello World!!")], "helloworld"])
|
||||||
|
else:
|
||||||
|
return False, None
|
||||||
|
elif platform == "qqchan":
|
||||||
|
"""
|
||||||
|
频道处理逻辑(频道暂时只支持回复字符串类型的信息,返回的信息都会被转成字符串,如果不想处理某一个平台的信息,直接返回False, None就行)
|
||||||
|
"""
|
||||||
|
if message == "helloworld":
|
||||||
|
return True, tuple([True, "Hello World!!", "helloworld"])
|
||||||
|
else:
|
||||||
|
return False, None
|
||||||
|
|
||||||
# 这里是插件核心处理逻辑
|
|
||||||
if message == "helloworld":
|
|
||||||
return True, tuple([True, "Hello World~", "helloworld"])
|
|
||||||
else:
|
|
||||||
return False, None
|
|
||||||
|
|
||||||
# 热知识:检测消息开头指令,使用以下方法
|
# 热知识:检测消息开头指令,使用以下方法
|
||||||
# if message.startswith("原神"):
|
# if message.startswith("原神"):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user