Paradaux

PAR-307

0

Standardise soft-dependency integrations (PluginNameIntegration) + kill the Dependencies god-class

Pending ReleaseNormalUnassignedChestShopImprovement

Replace the Dependencies god-class with a standard integration abstraction:

  • integration/Integration interface: pluginName(), hook(Plugin)->boolean, required() (default false).
  • One <PluginName>Integration per soft-depend: WorldGuardIntegration, GriefPreventionIntegration, NexoIntegration, and TreasuryIntegration (which absorbs adapters/TreasuryEconomyProvider — the economy is an integration, and required()=true).
  • integration/IntegrationRegistrar (@Singleton Listener) replaces Dependencies: hooks every present+enabled integration at enable, hooks late ones on PluginEnableEvent, and fails enable if a required integration is missing. Integrations are collected via a Guice Multibinder<Integration>.
  • adapters/TreasuryEconomyProvider deleted (logic → TreasuryIntegration); the WorldGuard onLoad flag registration stays a pre-Guice static call in ChestShop.onLoad.

Resources

Comments

No comments yet.

Activity

  • tesks changed status to Status → Pending Release
  • ParadauxIO linked a commit — Commit 0a8d18a — Standardise soft-dep integrations + kill the Dependencies god-class (PAR-307)
  • tesks created the issue