-
Notifications
You must be signed in to change notification settings - Fork 2
Package Backed Plugins
Package-backed plugins are generated PMMP plugin proxies for EasyLibrary
packages by default. EasyLibrary also has an opt-in virtual-experimental
loader for testing package-backed plugins without physical proxy folders.
PocketMine-MP resolves plugin identity from files under plugins/. Official
packages live under plugin_data/EasyLibrary/packages, so EasyLibrary creates a
minimal proxy under plugins/ when PMMP identity is needed.
plugins/.easylibrary-LibCommand.easylibplugin/
plugin_data/EasyLibrary/packages/libcommand/2.0.0/
PMMP scans direct children of the plugin directory and then asks registered
loaders which paths they can load. A package stored only under plugin_data/
is not a discovery candidate, so a package-backed provider still needs a tiny
direct proxy entry when it must behave like a real PMMP plugin.
For test servers, this config tries to register installed packages directly from
plugin_data/EasyLibrary/packages:
package-manager:
plugin-loader:
enabled: true
mode: virtual-experimentalThis uses PMMP internals through Reflection. It is restart-only, refuses packages shadowed by standalone artifacts and falls back to the stable proxy loader when the current PMMP build is not compatible.
Latest OP-33 smoke coverage proved the experimental path on PMMP 5.43.1 before
LibModule became the 17th official package:
- 16/16 packages active from
plugin_data/EasyLibrary/packages; - no active
.easylibrary-*proxy folders required; - standalone shadow/switch behavior preserved;
- update, remove and rollback remain restart-only and safe;
- forced virtual incompatibility falls back to hidden proxy mounts.
Even with that smoke coverage, proxy remains the default mode. Use
virtual-experimental on test servers until the final 3.0 release-candidate
matrix decides whether it should be promoted.
- exposes the official plugin name to PMMP;
- satisfies
dependandsoftdepend; - loads package source from EasyLibrary data;
- records metadata in
.easylib-package-plugin.json; - reports through
/easylibrary packages doctor.
Use this command when you want the architecture explanation in-game:
/easylibrary packages proxies explain
- not the real package source;
- not a manual user plugin;
- not a place to edit code;
- not meant to be copied between servers without package metadata repair.
If a standalone plugin with the same official plugin name exists, standalone wins for that boot. The package is reported as shadowed or parked until the standalone artifact is removed and the server restarts.
/easylibrary packages doctor
/plugins
/version
When EasyLibraryPackageProbe is installed for development:
/elprobe libcommand
/elprobe run libcommand
- Package Manager
- Package Backed Plugins
- Standalone vs Package
- Package Switch and Migration
- Package Doctor
- Package Safety Gate
- Support Report Bundle
- Timings
- Runtime Notifications
- Package Recovery
- Proxy Troubleshooting
- Migrating from EasyLibrary 2.0 to 3.x
- Embedded Libraries Migration Map
- Removed Features and Replacements
- Deprecated APIs
- Compatibility Policy
- Config Migration
- 3x Dev Scope Checkpoint
- Plugin Developer Migration
- Server Administrator Migration
- Official Libraries
- LibPacket
- LibCommand
- LibSerializer
- LibForm
- LibDB
- LibCommons
- LibHttp
- LibAssets
- LibRuntimeInspector
- LibRuntimeGuard
- LibPlaceholder
- LibWorld
- LibModule
- EasyLibrary Agent Bridge
- LibCustom
- LibEnchantment
- LibHud
- LibTrigger
- LibWindow
- Public API Contract
- Module Boundary
- Module Smoke Matrix
- LibAsync Incubator
- LibReflect Incubator
- Doctor Output
- Repository Notifications
- Smoke Tests
- Common Errors
- Release and Changelog