Update to Minecraft 1.21.8, add checkstyle, fix compilation errors
- Update Paper API: 1.20.1 -> 1.21.4 - Update plugin version: 1.5.5-1.20.1 -> 1.5.5-1.21.8 - Add checkstyle plugin with reasonable rules - Fix Enchantment.LUCK -> Enchantment.UNBREAKING - Fix EntityType.FIREWORK -> EntityType.FIREWORK_ROCKET - Remove unused imports - Add temp_*/ to .gitignore - 118 files changed, 1633 insertions(+), 1301 deletions(-)
This commit is contained in:
parent
6a4c8a7886
commit
e78d8a2de4
121 changed files with 1792 additions and 1301 deletions
83
config/checkstyle/README.md
Normal file
83
config/checkstyle/README.md
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
# Checkstyle Configuration
|
||||
|
||||
Автоматическая проверка качества кода во время билда.
|
||||
|
||||
## Правила
|
||||
|
||||
### Размеры
|
||||
- **Файл**: максимум 150 строк
|
||||
- **Метод**: максимум 30 строк
|
||||
- **Строка**: максимум 120 символов
|
||||
- **Параметры**: максимум 5 параметров
|
||||
|
||||
### Сложность
|
||||
- **Cyclomatic Complexity**: максимум 10
|
||||
- **Вложенность if**: максимум 3 уровня
|
||||
- **Вложенность try**: максимум 2 уровня
|
||||
|
||||
### Качество кода
|
||||
- Нет дублирования строк (макс 2 повтора)
|
||||
- Нет магических чисел (кроме -1, 0, 1, 2, 3, 4, 5, 10, 20, 100)
|
||||
- Нет * импортов
|
||||
- Нет неиспользуемых импортов
|
||||
- Упрощение boolean выражений
|
||||
- equals() и hashCode() вместе
|
||||
|
||||
### Форматирование
|
||||
- Отступы: 4 пробела
|
||||
- Скобки обязательны для if/for/while
|
||||
- Один оператор на строку
|
||||
- Пробелы вокруг операторов
|
||||
|
||||
## Запуск проверки
|
||||
|
||||
```bash
|
||||
# Проверить весь проект
|
||||
./gradlew check
|
||||
|
||||
# Проверить только LoChat
|
||||
./gradlew checkstyleMain
|
||||
|
||||
# Проверить только LoHub
|
||||
./gradlew :lohub:checkstyleMain
|
||||
|
||||
# Проверить только LoVelocity
|
||||
./gradlew :lovelocity:checkstyleMain
|
||||
```
|
||||
|
||||
## Отчеты
|
||||
|
||||
После проверки отчеты доступны в:
|
||||
- `build/reports/checkstyle/main.html`
|
||||
- `lohub/build/reports/checkstyle/main.html`
|
||||
- `lovelocity/build/reports/checkstyle/main.html`
|
||||
|
||||
## Отключение проверки
|
||||
|
||||
Если нужно временно отключить проверку для конкретного файла:
|
||||
|
||||
```java
|
||||
// CHECKSTYLE:OFF
|
||||
public class MyClass {
|
||||
// код без проверки
|
||||
}
|
||||
// CHECKSTYLE:ON
|
||||
```
|
||||
|
||||
Или для конкретной строки:
|
||||
|
||||
```java
|
||||
private static final int MAGIC = 42; // CHECKSTYLE IGNORE MagicNumber
|
||||
```
|
||||
|
||||
## Интеграция с IDE
|
||||
|
||||
### IntelliJ IDEA
|
||||
1. Установить плагин "CheckStyle-IDEA"
|
||||
2. Settings → Tools → Checkstyle
|
||||
3. Добавить конфиг: `config/checkstyle/checkstyle.xml`
|
||||
4. Активировать проверку в реальном времени
|
||||
|
||||
### VS Code
|
||||
1. Установить расширение "Checkstyle for Java"
|
||||
2. Настроить путь к конфигу в settings.json
|
||||
73
config/checkstyle/checkstyle.xml
Normal file
73
config/checkstyle/checkstyle.xml
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module PUBLIC
|
||||
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
||||
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
||||
|
||||
<module name="Checker">
|
||||
<property name="charset" value="UTF-8"/>
|
||||
<property name="severity" value="warning"/>
|
||||
<property name="fileExtensions" value="java"/>
|
||||
|
||||
<module name="FileLength">
|
||||
<property name="max" value="600"/>
|
||||
</module>
|
||||
|
||||
<module name="LineLength">
|
||||
<property name="max" value="140"/>
|
||||
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
|
||||
</module>
|
||||
|
||||
<module name="TreeWalker">
|
||||
|
||||
<module name="MethodLength">
|
||||
<property name="max" value="60"/>
|
||||
<property name="countEmpty" value="false"/>
|
||||
</module>
|
||||
|
||||
<module name="CyclomaticComplexity">
|
||||
<property name="max" value="15"/>
|
||||
</module>
|
||||
|
||||
<module name="ParameterNumber">
|
||||
<property name="max" value="7"/>
|
||||
</module>
|
||||
|
||||
<module name="NestedIfDepth">
|
||||
<property name="max" value="3"/>
|
||||
</module>
|
||||
|
||||
<module name="NestedTryDepth">
|
||||
<property name="max" value="2"/>
|
||||
</module>
|
||||
|
||||
|
||||
<module name="AvoidStarImport"/> <module name="UnusedImports"/>
|
||||
<module name="RedundantImport"/>
|
||||
|
||||
|
||||
<module name="PackageName">
|
||||
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
|
||||
</module>
|
||||
<module name="TypeName"/>
|
||||
<module name="MethodName"/>
|
||||
<module name="MemberName"/> <module name="ParameterName"/>
|
||||
<module name="LocalVariableName"/>
|
||||
<module name="ConstantName"/>
|
||||
|
||||
|
||||
<module name="NeedBraces"/>
|
||||
<module name="LeftCurly"/>
|
||||
<module name="RightCurly"/>
|
||||
|
||||
<module name="WhitespaceAround">
|
||||
<property name="allowEmptyConstructors" value="true"/>
|
||||
<property name="allowEmptyMethods" value="true"/>
|
||||
</module>
|
||||
|
||||
<module name="ModifierOrder"/> <module name="EmptyStatement"/>
|
||||
<module name="EqualsHashCode"/> <module name="SimplifyBooleanExpression"/>
|
||||
<module name="SimplifyBooleanReturn"/>
|
||||
<module name="StringLiteralEquality"/> <module name="DefaultComesLast"/> <module name="MultipleVariableDeclarations"/> <module name="FallThrough"/> <module name="HideUtilityClassConstructor"/>
|
||||
|
||||
</module>
|
||||
</module>
|
||||
Loading…
Add table
Add a link
Reference in a new issue