Created CONTRIBUTING.md and updated checkstyle.xml

This commit is contained in:
Auxilor 2020-12-27 18:30:41 +00:00
parent 349026329c
commit 2a213a7788
2 changed files with 33 additions and 4 deletions

31
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,31 @@
# 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 sonarlint (base config) if possible.
3. Use lombok wherever possible.
- As of 6.0.0, EcoEnchants is now built with lombok.
- @Getter, @Setter, @ToString, @EqualsAndHashCode, @UtilityClass are the most important.
4. Use JetBrains annotations
- Every parameter should be annotated with @NotNull or @Nullable
- Use @NotNull over lombok @NonNull
5. 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.

View File

@ -87,16 +87,14 @@
<module name="TreeWalker">
<!--
Checks for Javadoc comments.
See https://checkstyle.org/config_javadoc.html
<!-- Checks for Javadoc comments. -->
<!-- See https://checkstyle.org/config_javadoc.html -->
<module name="InvalidJavadocPosition"/>
<module name="JavadocMethod"/>
<module name="JavadocType"/>
<module name="JavadocVariable"/>
<module name="JavadocStyle"/>
<module name="MissingJavadocMethod"/>
-->
<!-- Checks for Naming Conventions. -->
<!-- See https://checkstyle.org/config_naming.html -->