PluginGroup
插件组类, 存放插件代码有关数据
Attributes
attribute
global_broadcast_listenersdict[str, classic_plugin.PluginEvents_P[Callable[[InternalBroadcast], Any]]]
= {}
attribute
plugin_listen_packetsset[PacketIDS]
= set()
attribute
plugins_apidict[str, Plugin]
= {}
attribute
normal_plugin_loaded_num= 0
attribute
loaded_plugin_ids= []
attribute
on_err_cb= self.linked_frame.on_plugin_err
attribute
help= staticmethod(classic_plugin_loader.help)
Functions
func
__init__(self, frame)
param
selfparam
frameToolDelta
Returns
None
func
pre_reload(self)
重载插件框架前的预处理 执行插件的框架退出回调
param
selfReturns
None
func
reload(self)
重载插件框架 这是一个不很安全的操作, 多次 reload 后 可能会因为一些插件线程由于底层原因无法被停止, 或者有垃圾无法被回收, 导致内存泄露等问题
param
selfReturns
None
func
hook_packet_handler(self, hdl)
param
selfparam
hdlPacketHandler
Returns
None
func
brocast_event(self, evt) -> list[Any]
param
selfparam
evtInternalBroadcast
Returns
list[typing.Any]
func
get_plugin_api(self, apiName, min_version=None, force=True) -> Any
param
selfparam
apiNamestr
param
min_versiontuple | None
= None
param
force= True
Returns
typing.Any
func
set_frame(self, frame) -> None
为各个框架分发关联的系统框架
param
selfparam
frameToolDelta
Returns
None
func
load_plugins(self) -> None
读取所有插件/重载所有插件 并对插件进行预初始化
Raises: SystemExit: 读取插件出现问题
param
selfReturns
None
func
execute_preload(self, onerr) -> None
执行插件的二次初始化方法
Args: onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法。Defaults to non_func.
Raises: SystemExit: 缺少前置 SystemExit: 前置版本过低
param
selfparam
onerrON_ERROR_CB
Returns
None
func
execute_init(self, onerr) -> None
执行插件的连接游戏后初始化方法
Args: onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法
param
selfparam
onerrON_ERROR_CB
Returns
None
func
execute_player_join(self, player, onerr) -> None
执行玩家加入的方法
Args: player (str): 玩家 onerr (Callable[[str, Exception, str], None], optional): q 插件出错时的处理方法
param
selfparam
playerPlayer
param
onerrON_ERROR_CB
Returns
None
func
execute_chat(self, chat, onerr) -> None
执行玩家消息的方法
Args: player (str): 玩家 msg (str): 消息 onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法
param
selfparam
chatChat
param
onerrON_ERROR_CB
Returns
None
func
execute_player_leave(self, player, onerr) -> None
执行玩家离开的方法
Args: player (str): 玩家 onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法
param
selfparam
playerPlayer
param
onerrON_ERROR_CB
Returns
None
func
execute_frame_exit(self, evt, onerr)
执行框架退出的方法
Args: onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法
param
selfparam
evtFrameExit
param
onerrON_ERROR_CB
Returns
None
func
execute_reloaded(self, onerr)
执行插件重载的方法
Args: onerr (Callable[[str, Exception, str], None], optional): 插件出错时的处理方法
param
selfparam
onerrON_ERROR_CB
Returns
None
func
handle_dict_packets(self, pktID, pkt, onerr) -> bool
处理字典型数据包的监听器
Args: pktID (int): 数据包 ID pkt (dict): 数据包
Returns: bool: 是否处理成功
param
selfparam
pktIDPacketIDS
param
pktdict
param
onerrON_ERROR_CB
Returns
bool
func
handle_bytes_packets(self, pktID, pkt, onerr) -> bool
处理二进制数据包的监听器
Args: pktID (int): 数据包 ID pkt (BaseBytesPacket): 数据包
Returns: bool: 是否处理成功
param
selfparam
pktIDPacketIDS
param
pktBaseBytesPacket
param
onerrON_ERROR_CB
Returns
bool
func
handle_text_packet(self, pkt)
param
selfparam
pktdict
Returns
None
func
__add_listen_packet_id(self, packetType) -> None
添加数据包监听,仅在系统内部使用
Args: packetType (int): 数据包 ID
Raises: ValueError: 无法添加数据包监听,请确保已经加载了系统组件
param
selfparam
packetTypePacketIDS
Returns
None