Welcome plugin added. Refactored funguy.py a bit.
This commit is contained in:
@@ -90,6 +90,22 @@ class FunguyBot:
|
||||
except Exception as e:
|
||||
logging.error(f"Error loading plugin {plugin_name}: {e}") # Logging error if plugin loading fails
|
||||
|
||||
def setup_plugins(self):
|
||||
"""
|
||||
Method to call setup(bot) on any plugin that defines it.
|
||||
|
||||
This must be called AFTER self.bot is created (i.e. inside run()), so
|
||||
that plugins which register custom event listeners (e.g. on_custom_event
|
||||
for RoomMemberEvent) receive a valid bot instance.
|
||||
"""
|
||||
for plugin_name, plugin_module in self.PLUGINS.items():
|
||||
if hasattr(plugin_module, "setup") and callable(plugin_module.setup):
|
||||
try:
|
||||
plugin_module.setup(self.bot)
|
||||
logging.info(f"Setup called for plugin: {plugin_name}")
|
||||
except Exception as e:
|
||||
logging.error(f"Error during setup of plugin {plugin_name}: {e}")
|
||||
|
||||
def reload_plugins(self):
|
||||
"""
|
||||
Method to reload all plugins.
|
||||
@@ -100,6 +116,9 @@ class FunguyBot:
|
||||
if plugin_name.startswith(self.PLUGINS_DIR + "."):
|
||||
del sys.modules[plugin_name] # Deleting plugin module from system modules
|
||||
self.load_plugins() # Reloading plugins
|
||||
# Re-run setup for any plugin that needs it (bot already exists at this point)
|
||||
if self.bot is not None:
|
||||
self.setup_plugins()
|
||||
|
||||
def load_config(self):
|
||||
"""
|
||||
@@ -223,6 +242,11 @@ class FunguyBot:
|
||||
creds = botlib.Creds(MATRIX_URL, MATRIX_USER, MATRIX_PASS) # Creating credentials object
|
||||
self.bot = botlib.Bot(creds, self.config) # Creating bot instance
|
||||
|
||||
# Call setup() on any plugin that defines it, now that self.bot exists.
|
||||
# This is what registers custom event listeners such as the join-event
|
||||
# listener in the welcome plugin.
|
||||
self.setup_plugins()
|
||||
|
||||
# Defining listener for message events
|
||||
@self.bot.listener.on_message_event
|
||||
async def wrapper_handle_commands(room, message):
|
||||
|
||||
Reference in New Issue
Block a user