Skip to content

Plugin Developer Migration

ImperaZim edited this page Jun 21, 2026 · 1 revision

Plugin Developer Migration

EasyLibrary 3.x no longer guarantees that official library namespaces are present just because EasyLibrary is installed.

Dependency Pattern

Use hard dependencies only when required:

depend:
  - LibCommand

Use soft dependencies for optional features:

softdepend:
  - EasyLibrary
  - LibCommand
  - LibPlaceholder
  - LibWorld

Runtime Checks

$plugin = $this->getServer()->getPluginManager()->getPlugin("LibPlaceholder");
if($plugin === null || !$plugin->isEnabled()){
    return;
}

Do Not Parse Doctor Output

Doctor output is for humans. Use public APIs, PMMP dependency declarations or future service/capability contracts for programmatic integration.

Provider Agnostic Integrations

Package-backed and standalone providers keep the same public library namespaces. Your code should care that the provider exists, not whether it came from EasyLibrary package storage or a standalone PHAR.

Clone this wiki locally