ToolDelta 框架类
这个对象是 ToolDelta 的主框架类,里面有和 ToolDelta 主系统数据相关的一些内容。
ToolDelta 实例的获取
类式插件中:
python
class Plugin1(Plugin):
# 在插件主类的 self 中的 frame 属性即为 ToolDelta 主框架实例
def method(self):
frame = self.frame1
2
3
4
2
3
4
启动框架
python
frame.launcher1
- 获取当前使用的游戏启动器框架实例
- 用于判断插件是否接受该种框架、使用框架提供的特殊接口
框架实例的常见属性
| 属性 | 类型 | 说明 |
|---|---|---|
frame.launcher | 启动器实例 | 当前游戏启动器框架(见上文) |
frame.game_ctrl | GameCtrl | 游戏交互控制器,见 指令和数据包发送等 |
frame.players_maintainer | PlayerInfoMaintainer | 玩家信息管理器,也可用 frame.game_ctrl.players,见 玩家信息 |
frame.packet_handler | PacketHandler | 数据包处理器,见 数据包监听 |
frame.plugin_group | PluginGroup | 插件组,管理已加载插件与 API |
frame.reload(deep_reload: bool = False):重载插件(可选深度重载)。frame.sys_data.system_version:当前 ToolDelta 版本号,如(1, 3, 7);也可用tooldelta.get_tool_delta_version()。frame.add_console_cmd_trigger(...):注册控制台菜单触发词(见下文)。
注册控制台菜单触发词
python
def add_console_cmd_trigger(
triggers: list[str],
arg_hint: str | None,
usage: str,
func: Callable[[list[str]], Any]
)1
2
3
4
5
6
2
3
4
5
6
- 添加一个控制台菜单触发词 (注意, 不是聊天栏菜单)
- 参数:
参数名 类型 说明 triggers list[str] 触发词前缀列表 arg_hint str | None 参数提示,为 None 则无参数提示 usage str 用途介绍,在控制台输入 "?" 时显示 func (list[str]) -> Any 触发词触发时的回调,参数是触发词参数以空格分割的列表 - 若注册了重复的触发词,框架会自动为其追加后缀以避免冲突。
- 示例python
from tooldelta import fmts class MyPlugin(Plugin): def __init__(self, frame): super().__init__(frame) self.frame.add_console_cmd_trigger( ["测试输入"], "[参数1] [参数2] ...", "测试输入", self.menu_cb ) def menu_cb(self, args: list[str]): fmts.print_inf(f"你输入了: {' '.join(args)}")1
2
3
4
5
6
7
8
9
10
11
12
13
14
内置示例
框架内置的扩展功能 FastPluginDownload 就通过该接口注册了控制台命令 plg add,用于从插件市场快速安装插件。