mirror of
https://github.com/Auxilor/EcoEnchants.git
synced 2024-11-29 16:15:17 +01:00
37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
|
# How to contribute to EcoEnchants
|
||
|
|
||
|
## Codestyle
|
||
|
|
||
|
1. The EcoEnchants checkstyle is in /config/checkstyle.xml
|
||
|
|
||
|
- The pull request must not have any checkstyle issues.
|
||
|
- Every method and field must have a javadoc attached.
|
||
|
|
||
|
2. Use lombok wherever possible.
|
||
|
|
||
|
- As of 6.0.0, EcoEnchants is now built with lombok.
|
||
|
- @Getter, @Setter, @ToString, @EqualsAndHashCode, @UtilityClass are the most important.
|
||
|
|
||
|
3. Use JetBrains annotations
|
||
|
|
||
|
- Every parameter should be annotated with @NotNull or @Nullable
|
||
|
- Use @NotNull over lombok @NonNull
|
||
|
|
||
|
4. Imports
|
||
|
|
||
|
- No group (*) imports.
|
||
|
- No static imports.
|
||
|
|
||
|
## Dependency Injection
|
||
|
|
||
|
- 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.
|