aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRitabrata Das <[email protected]>2025-02-14 06:10:58 +0530
committerGitHub <[email protected]>2025-02-14 06:10:58 +0530
commit1e37498c1f99c1bea1452ff21e6c549bd301d420 (patch)
tree7fa4cb6775ec87cf5fba63ad41dc7f53c0c65253 /lib
parent7fb77e2f0f715713950878f4369d420481ab5170 (diff)
parent7e74ceff2b7d32c934fa2e42fefaee45cfab4ff9 (diff)
Merge pull request #4 from Skipper-is/plugin_manager
Updated plugin manager and plugins
Diffstat (limited to 'lib')
-rw-r--r--lib/Aircraft.py4
-rw-r--r--lib/YSchat.py6
-rw-r--r--lib/plugin_manager.py14
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