EcoEnchants/CONTRIBUTING.md
2021-07-21 18:38:30 +01:00

1.3 KiB

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.
  1. Use lombok wherever possible.
  • As of 6.0.0, EcoEnchants is now built with lombok.
  • @Getter, @Setter, @ToString, @EqualsAndHashCode, @UtilityClass are the most important.
  1. Use JetBrains annotations
  • Every parameter should be annotated with @NotNull or @Nullable
  • Use @NotNull over lombok @NonNull
  1. 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.
  • Any non-plugin-specific changes must be made to eco-util, or core-proxy, rather than core-plugin.