- EcoEnchants uses Dependency Injection since 6.0.0.
- Any calls to AbstractEcoPlugin#getInstance are code smells and should never be used unless **absolutely necessary**.
- NamespacedKeys, FixedMetadataValues, Runnables, and Schedules should be managed using EcoEnchantsPlugin through DI.
- Any DI class should extend PluginDependent where possible. If the class extends another, then you **must** store the plugin instance in a private final variable called **plugin** with a private or protected getter.
## Other
- All drops **must** be sent through a DropQueue - calls to World#dropItem will get your PR rejected.
- EcoEnchants is built with java 8. Usage of J9+ will get your PR rejected.
- Any non-plugin-specific changes **must** be made to eco-util, or core-proxy, rather than core-plugin.