diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Aircraft.py | 4 | ||||
| -rw-r--r-- | lib/YSchat.py | 6 | ||||
| -rw-r--r-- | lib/plugin_manager.py | 14 |
3 files changed, 18 insertions, 6 deletions
diff --git a/lib/Aircraft.py b/lib/Aircraft.py index dd2bbed..5e6e24d 100644 --- a/lib/Aircraft.py +++ b/lib/Aircraft.py @@ -76,7 +76,11 @@ class Aircraft: if packet.player_id != self.id: return None + if self.life == -1: + self.life=packet.life + self.prev_life = self.life + self.life = packet.life self.set_position(packet.position) self.set_attitude(packet.atti) diff --git a/lib/YSchat.py b/lib/YSchat.py index d3db201..980a11b 100644 --- a/lib/YSchat.py +++ b/lib/YSchat.py @@ -1,6 +1,5 @@ from struct import pack, unpack from lib.PacketManager.packets import FSNETCMD_TEXTMESSAGE -#Re-write this to wrap the FSNETCMD_TEXTMESSAGE class def send(buffer: bytes): """ @@ -18,7 +17,4 @@ def message(msg: str): """ Generate packets for sending messages """ - decode = "l" + str(len(msg) + 2) + "s" - msg_buffer = bytes(msg, 'utf-8') - buffer = pack(decode, 0, msg_buffer) - return reply(32, buffer) + return FSNETCMD_TEXTMESSAGE.encode(msg,True) diff --git a/lib/plugin_manager.py b/lib/plugin_manager.py index 113c47a..73c2ac1 100644 --- a/lib/plugin_manager.py +++ b/lib/plugin_manager.py @@ -14,6 +14,7 @@ class PluginManager: def load_plugins(self): for plugin in os.listdir(PLUGIN_DIR): + plugin_path = os.path.join(PLUGIN_DIR, plugin) if plugin.endswith('.py') and not plugin.startswith('__'): plugin_name = plugin[:-3] plugin_module = importlib.import_module(plugin_name) @@ -23,6 +24,15 @@ class PluginManager: self.register_plugin(plugin_instance) info(f"Loaded plugin {plugin_name}") self.plugins[plugin_name] = plugin_instance + elif os.path.isdir(plugin_path) and os.path.exists(os.path.join(plugin_path, '__init__.py')): + plugin_module = importlib.import_module(plugin) + if hasattr(plugin_module, 'Plugin'): + if plugin_module.ENABLED: + plugin_instance = plugin_module.Plugin() + self.register_plugin(plugin_instance) + info(f"Loaded plugin {plugin}") + self.plugins[plugin] = plugin_instance + def register_plugin(self, plugin): """Registers the plugin with the plugin manager""" @@ -42,5 +52,7 @@ class PluginManager: keep_orignal = True if hook_name in self.hooks: for callback in self.hooks[hook_name]: - keep_orignal = callback(data, *args, **kwargs) + keep = callback(data, *args, **kwargs) + if keep == False: + keep_orignal = False return keep_orignal |
