Skip to content

Conversation

@chsami
Copy link
Owner

@chsami chsami commented Aug 10, 2025

The Microbot plugin management system consists of several key components working together to handle external plugins. Here's a breakdown of how it works:

  1. Plugin Storage and Installation:
  • Plugins are stored in ~/.runelite/microbot-plugins/ directory
  • Installed plugins are tracked in plugins.json
  • Each plugin is stored as a JAR file named after its internal name
  1. Plugin Installation Process:
- Downloads plugin JAR from the configured URL
- Verifies SHA-256 hash of downloaded JAR
- Saves JAR file to plugins directory
- Updates plugins.json with new plugin
- Triggers plugin loading
  1. Plugin Loading System:
- Uses custom MicrobotPluginClassLoader to load plugin JARs
- Scans for classes with @PluginDescriptor annotation
- Builds dependency graph of plugins
- Topologically sorts plugins to load them in correct order
- Instantiates plugins using Guice dependency injection
  1. Plugin Hub Integration:
- Connects to external plugin hub (https://chsami.github.io/Microbot-Hub/)
- Downloads plugin manifests containing metadata
- Handles plugin updates and version management
- Provides plugin search and filtering capabilities
  1. Plugin Management:
- Handles installation/removal of plugins
- Manages plugin lifecycle (loading/unloading)
- Tracks installed plugins
- Handles plugin dependencies
- Posts events when plugins change

@chsami chsami merged commit cabf95c into development Aug 10, 2025
2 checks passed
@chsami chsami mentioned this pull request Aug 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants