ToolDelta ICU

Plugin

插件主类

Attributes

attributenamestr
= ''

插件名

attributeversion
= (0, 0, 1)

插件版本号

attributeauthorstr
= '?'

作者名

attributedescription
= '...'

简介

attribute__path_created__
= False
attributeframe
= frame
attributegame_ctrl
= frame.get_game_control()
attributedata_pathPath

该插件的数据文件夹路径 (调用时直接创建数据文件夹)

Functions

func__init__(self, frame)
paramself
paramframeToolDelta

Returns

None
funcmake_data_path(self)

Deprecated: 获取 data_path 属性时会自动创建缺失的插件数据路径。

paramself

Returns

None
funcprint(self, msg)
paramself
parammsgstr

Returns

None
funcformat_data_path(self, *paths)

Deprecated: Use plugin.data_path / "dirpath" / "to" / "file" instead.

将所给路径与该插件的默认数据文件存放处拼合, 等价于 os.path.join(self.data_path, *paths)

Returns: type: description

paramself
parampathsstr
= ()

Returns

None
funcget_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]]: 配置文件内容及版本

paramself
paramtemplatedict
paramdefault_cfgdict

Returns

None
funcListenPreload(self, cb, priority=0)

监听预加载事件 预加载事件: 在读取插件后、和游戏建立连接前触发一次

Args: cb (Callable[[], None]): 监听回调 priority (int, optional): 优先级, 默认为 0

paramself
paramcbCallable[[], Any]
parampriorityint
= 0

Returns

None
funcListenActive(self, cb, priority=0)

监听连接建立事件 连接建立事件: 在框架和游戏完全建立连接时触发一次

Args: cb (Callable[[], None]): 监听回调

paramself
paramcbCallable[[], Any]
parampriorityint
= 0

Returns

None
funcListenPlayerJoin(self, cb, priority=0)

监听玩家加入事件 玩家加入事件: 在有玩家加入游戏时触发一次

Args: cb (Callable[[Player], None]): 监听回调, 传参: 玩家 (Player)

paramself
paramcbCallable[[Player], Any]
parampriorityint
= 0

Returns

None
funcListenPlayerLeave(self, cb, priority=0)

监听玩家退出事件 玩家退出事件: 在有玩家退出游戏时触发一次

Args: cb (Callable[[Player], None]): 监听回调, 传参: 玩家 (Player)

paramself
paramcbCallable[[Player], Any]
parampriorityint
= 0

Returns

None
funcListenChat(self, cb, priority=0)

监听玩家聊天事件 玩家聊天事件: 在有玩家在聊天栏发言时触发一次

Args: cb (Callable[[Player], None]): 监听回调, 传参: 聊天事件 (Chat)

paramself
paramcbCallable[[Chat], Any]
parampriorityint
= 0

Returns

None
funcListenFrameExit(self, cb, priority=0)

监听框架退出事件 框架退出事件: 在框架退出/插件即将重载时触发一次

Args: cb (Callable[[Player], None]): 监听回调, 传参: 聊天事件 (Chat)

paramself
paramcbCallable[[FrameExit], Any]
parampriorityint
= 0

Returns

None
funcListenPacket(self, pkID, cb, priority=0)

监听字典数据包的事件

Args: pkID (PacketIDS): 数据包ID cb ((dict) -> bool): 数据包监听回调, 返回 True 为拦截该数据包

Raises: Exception: 尝试监听一个二进制数据包

paramself
parampkIDPacketIDS | list[PacketIDS]
paramcbDictPacketListener
parampriorityint
= 0

Returns

None
funcListenBytesPacket(self, pkID, cb, priority=0)

监听二进制数据包的事件

Args: pkt_id (PacketIDS): 数据包ID cb ((BytesPacketListener) -> bool): 数据包监听回调, 返回 True 为拦截该数据包

Raises: Exception: 尝试监听一个非二进制数据包

paramself
parampkIDPacketIDS | list[PacketIDS]
paramcbBytesPacketListener
parampriorityint
= 0

Returns

None
funcListenInternalBroadcast(self, broadcast_name, cb, priority=0)

监听广播事件 广播事件: 在产生广播事件时触发一次

Args: broadcast_name (str): 广播事件名 cb (Callable[[InternalBroadcast], Any]): 监听回调, 传参: 广播事件 (InternalBroadcast), 返回: 回传给发送者的内容

paramself
parambroadcast_namestr
paramcbCallable[[InternalBroadcast], Any]
parampriorityint
= 0

Returns

None
funcBroadcastEvent(self, evt)

向全局广播一个特定事件, 可以传入附加信息参数 Args: evt (InternalBroadcast): 事件 Returns: list[Any]: 收集到的数据的列表 (如果接收到广播的方法返回了数据的话)。 如果返回了 None 则不会把此返回放入收集表里。

paramself
paramevtInternalBroadcast

Returns

None
funcGetPluginAPI(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

paramself
paramapi_namestr
parammin_versiontuple[int, int, int]
= (0, 0, 0)
paramforce
= True

Returns

None
funcget_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)
paramself
paramapi_clstype[PLUGIN_TYPE]

Returns

tooldelta.plugin_load.classic_plugin.plugin_cls.PLUGIN_TYPE