ToolDelta ICU

PluginGroup

插件组类, 存放插件代码有关数据

Attributes

attributeglobal_broadcast_listenersdict[str, classic_plugin.PluginEvents_P[Callable[[InternalBroadcast], Any]]]
= {}
attributeplugin_listen_packetsset[PacketIDS]
= set()
attributeplugins_apidict[str, Plugin]
= {}
attributenormal_plugin_loaded_num
= 0
attributeloaded_plugin_ids
= []
attributeon_err_cb
= self.linked_frame.on_plugin_err
attributehelp
= staticmethod(classic_plugin_loader.help)

Functions

func__init__(self, frame)
paramself
paramframeToolDelta

Returns

None
funcpre_reload(self)

重载插件框架前的预处理 执行插件的框架退出回调

paramself

Returns

None
funcreload(self)

重载插件框架 这是一个不很安全的操作, 多次 reload 后 可能会因为一些插件线程由于底层原因无法被停止, 或者有垃圾无法被回收, 导致内存泄露等问题

paramself

Returns

None
funchook_packet_handler(self, hdl)
paramself
paramhdlPacketHandler

Returns

None
funcbrocast_event(self, evt) -> list[Any]
paramself
paramevtInternalBroadcast

Returns

list[typing.Any]
funcget_plugin_api(self, apiName, min_version=None, force=True) -> Any
paramself
paramapiNamestr
parammin_versiontuple | None
= None
paramforce
= True

Returns

typing.Any
funcset_frame(self, frame) -> None

为各个框架分发关联的系统框架

paramself
paramframeToolDelta

Returns

None
funcload_plugins(self) -> None

读取所有插件/重载所有插件 并对插件进行预初始化

Raises: SystemExit: 读取插件出现问题

paramself

Returns

None
funcexecute_preload(self, onerr) -> None

执行插件的二次初始化方法

Args: onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法。Defaults to non_func.

Raises: SystemExit: 缺少前置 SystemExit: 前置版本过低

paramself
paramonerrON_ERROR_CB

Returns

None
funcexecute_init(self, onerr) -> None

执行插件的连接游戏后初始化方法

Args: onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法

paramself
paramonerrON_ERROR_CB

Returns

None
funcexecute_player_join(self, player, onerr) -> None

执行玩家加入的方法

Args: player (str): 玩家 onerr (Callable[[str, Exception, str], None], optional): q 插件出错时的处理方法

paramself
paramplayerPlayer
paramonerrON_ERROR_CB

Returns

None
funcexecute_chat(self, chat, onerr) -> None

执行玩家消息的方法

Args: player (str): 玩家 msg (str): 消息 onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法

paramself
paramchatChat
paramonerrON_ERROR_CB

Returns

None
funcexecute_player_leave(self, player, onerr) -> None

执行玩家离开的方法

Args: player (str): 玩家 onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法

paramself
paramplayerPlayer
paramonerrON_ERROR_CB

Returns

None
funcexecute_frame_exit(self, evt, onerr)

执行框架退出的方法

Args: onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法

paramself
paramevtFrameExit
paramonerrON_ERROR_CB

Returns

None
funcexecute_reloaded(self, onerr)

执行插件重载的方法

Args: onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法

paramself
paramonerrON_ERROR_CB

Returns

None
funchandle_dict_packets(self, pktID, pkt, onerr) -> bool

处理字典型数据包的监听器

Args: pktID (int): 数据包 ID pkt (dict): 数据包

Returns: bool: 是否处理成功

paramself
parampktIDPacketIDS
parampktdict
paramonerrON_ERROR_CB

Returns

bool
funchandle_bytes_packets(self, pktID, pkt, onerr) -> bool

处理二进制数据包的监听器

Args: pktID (int): 数据包 ID pkt (BaseBytesPacket): 数据包

Returns: bool: 是否处理成功

paramself
parampktIDPacketIDS
parampktBaseBytesPacket
paramonerrON_ERROR_CB

Returns

bool
funchandle_text_packet(self, pkt)
paramself
parampktdict

Returns

None
func__add_listen_packet_id(self, packetType) -> None

添加数据包监听,仅在系统内部使用

Args: packetType (int): 数据包 ID

Raises: ValueError: 无法添加数据包监听,请确保已经加载了系统组件

paramself
parampacketTypePacketIDS

Returns

None