Plugin
插件主类
Attributes
attributenamestr= ''插件名
attributeversion= (0, 0, 1)插件版本号
attributeauthorstr= '?'作者名
attributedescription= '...'简介
attribute__path_created__= Falseattributeframe= frameattributegame_ctrl= frame.get_game_control()attributedata_pathPath该插件的数据文件夹路径 (调用时直接创建数据文件夹)
Functions
func__init__(self, frame)paramselfparamframeToolDeltaReturns
Nonefuncmake_data_path(self)Deprecated: 获取 data_path 属性时会自动创建缺失的插件数据路径。
paramselfReturns
Nonefuncprint(self, msg)paramselfparammsgstrReturns
Nonefuncformat_data_path(self, *paths)Deprecated: Use plugin.data_path / "dirpath" / "to" / "file" instead.
将所给路径与该插件的默认数据文件存放处拼合,
等价于 os.path.join(self.data_path, *paths)
Returns: type: description
paramselfparampathsstr= ()Returns
Nonefuncget_config_and_version(self, template, default_cfg)获取该插件的配置文件及版本
Args: plugin_name (str): 插件名 template (dict): 配置模版 default_cfg (dict): 默认配置
Returns: tuple[dict[str, Any], tuple[int, int, int]]: 配置文件内容及版本
paramselfparamtemplatedictparamdefault_cfgdictReturns
NonefuncListenPreload(self, cb, priority=0)监听预加载事件 预加载事件: 在读取插件后、和游戏建立连接前触发一次
Args: cb (Callable[[], None]): 监听回调 priority (int, optional): 优先级, 默认为 0
paramselfparamcbCallable[[], Any]parampriorityint= 0Returns
NonefuncListenActive(self, cb, priority=0)监听连接建立事件 连接建立事件: 在框架和游戏完全建立连接时触发一次
Args: cb (Callable[[], None]): 监听回调
paramselfparamcbCallable[[], Any]parampriorityint= 0Returns
NonefuncListenPlayerJoin(self, cb, priority=0)监听玩家加入事件 玩家加入事件: 在有玩家加入游戏时触发一次
Args: cb (Callable[[Player], None]): 监听回调, 传参: 玩家 (Player)
paramselfparamcbCallable[[Player], Any]parampriorityint= 0Returns
NonefuncListenPlayerLeave(self, cb, priority=0)监听玩家退出事件 玩家退出事件: 在有玩家退出游戏时触发一次
Args: cb (Callable[[Player], None]): 监听回调, 传参: 玩家 (Player)
paramselfparamcbCallable[[Player], Any]parampriorityint= 0Returns
NonefuncListenChat(self, cb, priority=0)监听玩家聊天事件 玩家聊天事件: 在有玩家在聊天栏发言时触发一次
Args: cb (Callable[[Player], None]): 监听回调, 传参: 聊天事件 (Chat)
paramselfparamcbCallable[[Chat], Any]parampriorityint= 0Returns
NonefuncListenFrameExit(self, cb, priority=0)监听框架退出事件 框架退出事件: 在框架退出/插件即将重载时触发一次
Args: cb (Callable[[Player], None]): 监听回调, 传参: 聊天事件 (Chat)
paramselfparamcbCallable[[FrameExit], Any]parampriorityint= 0Returns
NonefuncListenPacket(self, pkID, cb, priority=0)监听字典数据包的事件
Args: pkID (PacketIDS): 数据包ID cb ((dict) -> bool): 数据包监听回调, 返回 True 为拦截该数据包
Raises: Exception: 尝试监听一个二进制数据包
paramselfparampkIDPacketIDS | list[PacketIDS]paramcbDictPacketListenerparampriorityint= 0Returns
NonefuncListenBytesPacket(self, pkID, cb, priority=0)监听二进制数据包的事件
Args: pkt_id (PacketIDS): 数据包ID cb ((BytesPacketListener) -> bool): 数据包监听回调, 返回 True 为拦截该数据包
Raises: Exception: 尝试监听一个非二进制数据包
paramselfparampkIDPacketIDS | list[PacketIDS]paramcbBytesPacketListenerparampriorityint= 0Returns
NonefuncListenInternalBroadcast(self, broadcast_name, cb, priority=0)监听广播事件 广播事件: 在产生广播事件时触发一次
Args: broadcast_name (str): 广播事件名 cb (Callable[[InternalBroadcast], Any]): 监听回调, 传参: 广播事件 (InternalBroadcast), 返回: 回传给发送者的内容
paramselfparambroadcast_namestrparamcbCallable[[InternalBroadcast], Any]parampriorityint= 0Returns
NonefuncBroadcastEvent(self, evt)向全局广播一个特定事件, 可以传入附加信息参数 Args: evt (InternalBroadcast): 事件 Returns: list[Any]: 收集到的数据的列表 (如果接收到广播的方法返回了数据的话)。 如果返回了 None 则不会把此返回放入收集表里。
paramselfparamevtInternalBroadcastReturns
NonefuncGetPluginAPI(self, api_name, min_version=(0, 0, 0), force=True)获取插件 API
Args: api_name (str): 插件 API 名 min_version (tuple, optional): API 所需的最低版本 (若不填则默认不检查最低版本) force: 若为 False, 则在找不到插件 API 时不报错而是返回 None
Raises: PluginAPIVersionError: 插件 API 版本错误 PluginAPINotFoundError: 无法找到 API 插件
Returns: Plugin: 插件 API
paramselfparamapi_namestrparammin_versiontuple[int, int, int]= (0, 0, 0)paramforce= TrueReturns
Nonefuncget_typecheck_plugin_api(self, api_cls) -> PLUGIN_TYPE对外源导入 (import) 的 API 插件类进行类型实例化。 可以使得你所使用的 IDE 对导入的插件 API 类进行识别和高亮其所含方法。 请在 TYPE_CHECKING 的代码块下使用。
Args: api_cls (type[_PLUGIN_CLS_TYPE]): 导入的 API 插件类
Raises: ValueError: API 插件类未被注册
Returns: _PLUGIN_CLS_TYPE: API 插件实例
使用方法如下:
p_api = get_plugin_api("...")
if TYPE_CHECKING:
from outer_api import api_cls_xx
p_api = get_typecheck_plugin_api(api_cls_xx)paramselfparamapi_clstype[PLUGIN_TYPE]Returns
tooldelta.plugin_load.classic_plugin.plugin_cls.PLUGIN_TYPE