Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 4227a18

Browse files
committed
feat: Prepare project structure
1 parent 0845c7b commit 4227a18

17 files changed

+867
-0
lines changed

.checkstyle/checkstyle.xml

Lines changed: 284 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,284 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">
3+
<module name="Checker">
4+
<property name="charset" value="UTF-8"/>
5+
<property name="fileExtensions" value="java, properties, xml"/>
6+
<property name="severity" value="error"/>
7+
8+
<!-- https://checkstyle.org/config_filefilters.html#BeforeExecutionExclusionFileFilter -->
9+
<module name="BeforeExecutionExclusionFileFilter">
10+
<property name="fileNamePattern" value="module\-info\.java$"/>
11+
</module>
12+
13+
<!-- https://checkstyle.org/config_whitespace.html#FileTabCharacter -->
14+
<module name="FileTabCharacter">
15+
<property name="eachLine" value="true"/>
16+
</module>
17+
18+
<!-- &lt;!&ndash; https://checkstyle.org/config_javadoc.html#JavadocPackage &ndash;&gt;-->
19+
<!-- <module name="JavadocPackage"/>-->
20+
21+
<!-- https://checkstyle.org/config_misc.html#NewlineAtEndOfFile -->
22+
<module name="NewlineAtEndOfFile"/>
23+
24+
<!-- https://checkstyle.org/config_filters.html#SuppressWarningsFilter -->
25+
<module name="SuppressWarningsFilter"/>
26+
27+
<!-- https://checkstyle.org/config_filters.html#SuppressWithPlainTextCommentFilter -->
28+
<module name="SuppressWithPlainTextCommentFilter">
29+
<property name="offCommentFormat" value="// (@formatter|CHECKSTYLE):(off|OFF)"/>
30+
<property name="onCommentFormat" value="// (@formatter|CHECKSTYLE):(on|ON)"/>
31+
</module>
32+
33+
<module name="TreeWalker">
34+
<!-- https://checkstyle.org/config_misc.html#ArrayTypeStyle -->
35+
<module name="ArrayTypeStyle"/>
36+
37+
<!-- https://checkstyle.org/config_javadoc.html#AtclauseOrder -->
38+
<module name="AtclauseOrder">
39+
<property name="violateExecutionOnNonTightHtml" value="true"/>
40+
<property name="tagOrder" value="@author, @exception, @param, @return, @serial, @serialData, @serialField, @throws, @see, @since, @sinceMinecraft, @version, @deprecated"/>
41+
</module>
42+
43+
<!-- https://checkstyle.org/config_imports.html#AvoidStarImport -->
44+
<module name="AvoidStarImport"/>
45+
46+
<!-- https://checkstyle.org/config_misc.html#AvoidEscapedUnicodeCharacters -->
47+
<module name="AvoidEscapedUnicodeCharacters">
48+
<property name="allowByTailComment" value="true"/>
49+
<property name="allowEscapesForControlCharacters" value="true"/>
50+
<property name="allowNonPrintableEscapes" value="true"/>
51+
</module>
52+
53+
<!-- https://checkstyle.org/config_misc.html#CommentsIndentation -->
54+
<module name="CommentsIndentation"/>
55+
56+
<!-- https://checkstyle.org/config_imports.html#CustomImportOrder -->
57+
<module name="CustomImportOrder">
58+
<property name="customImportOrderRules" value="THIRD_PARTY_PACKAGE###STATIC"/>
59+
<property name="standardPackageRegExp" value="^$"/>
60+
<property name="sortImportsInGroupAlphabetically" value="true"/>
61+
</module>
62+
63+
<!-- https://checkstyle.org/config_whitespace.html#EmptyForInitializerPad -->
64+
<module name="EmptyForInitializerPad"/>
65+
66+
<!-- https://checkstyle.org/config_whitespace.html#EmptyForIteratorPad -->
67+
<module name="EmptyForIteratorPad"/>
68+
69+
<!-- https://checkstyle.org/config_whitespace.html#EmptyLineSeparator -->
70+
<module name="EmptyLineSeparator">
71+
<property name="allowMultipleEmptyLines" value="false"/>
72+
<property name="allowMultipleEmptyLinesInsideClassMembers" value="false"/>
73+
<property name="allowNoEmptyLineBetweenFields" value="true"/>
74+
<property name="tokens" value="CLASS_DEF, CTOR_DEF, ENUM_DEF, IMPORT, INSTANCE_INIT, INTERFACE_DEF, METHOD_DEF, STATIC_IMPORT, STATIC_INIT, VARIABLE_DEF"/> <!-- remove PACKAGE_DEF, temporarily remove COMPACT_CTOR_DEF, RECORD_DEF -->
75+
</module>
76+
77+
<!-- https://checkstyle.org/config_coding.html#FallThrough -->
78+
<module name="FallThrough">
79+
<property name="checkLastCaseGroup" value="true"/>
80+
</module>
81+
82+
<!-- https://checkstyle.org/config_design.html#FinalClass -->
83+
<module name="FinalClass"/>
84+
85+
<!-- https://checkstyle.org/config_coding.html#FinalLocalVariable -->
86+
<module name="FinalLocalVariable">
87+
<property name="tokens" value="PARAMETER_DEF, VARIABLE_DEF"/> <!-- add PARAMETER_DEF -->
88+
<property name="validateEnhancedForLoopVariable" value="true"/>
89+
</module>
90+
91+
<!-- https://checkstyle.org/config_whitespace.html#GenericWhitespace -->
92+
<module name="GenericWhitespace"/>
93+
94+
<!-- https://checkstyle.org/config_design.html#HideUtilityClassConstructor -->
95+
<module name="HideUtilityClassConstructor"/>
96+
97+
<!-- https://checkstyle.org/config_imports.html#IllegalImport -->
98+
<module name="IllegalImport">
99+
<property name="illegalPkgs" value="sun, jdk, com.sun"/>
100+
</module>
101+
102+
<!-- https://checkstyle.org/config_coding.html#IllegalTokenText -->
103+
<module name="IllegalTokenText">
104+
<property name="format" value="($|[^\\])\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
105+
<property name="message" value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
106+
<property name="tokens" value="CHAR_LITERAL, STRING_LITERAL"/>
107+
</module>
108+
109+
<!-- https://checkstyle.org/config_misc.html#Indentation -->
110+
<module name="Indentation">
111+
<property name="arrayInitIndent" value="2"/>
112+
<property name="basicOffset" value="2"/>
113+
<property name="braceAdjustment" value="0"/>
114+
<property name="caseIndent" value="2"/>
115+
<property name="lineWrappingIndentation" value="0"/>
116+
<property name="throwsIndent" value="2"/>
117+
</module>
118+
119+
<!-- https://checkstyle.org/config_javadoc.html#InvalidJavadocPosition -->
120+
<module name="InvalidJavadocPosition"/>
121+
122+
<!-- https://checkstyle.org/config_javadoc.html#JavadocContentLocation -->
123+
<module name="JavadocContentLocation"/>
124+
125+
<!-- https://checkstyle.org/config_javadoc.html#JavadocMethod -->
126+
<module name="JavadocMethod" />
127+
128+
<!-- https://checkstyle.org/config_javadoc.html#JavadocMissingWhitespaceAfterAsterisk -->
129+
<module name="JavadocMissingWhitespaceAfterAsterisk"/>
130+
131+
<!-- https://checkstyle.org/config_javadoc.html#JavadocParagraph -->
132+
<module name="JavadocParagraph"/>
133+
134+
<!-- https://checkstyle.org/config_javadoc.html#JavadocMissingWhitespaceAfterAsterisk -->
135+
<module name="JavadocTagContinuationIndentation"/>
136+
137+
<!-- https://checkstyle.org/config_javadoc.html#JavadocType -->
138+
<module name="JavadocType">
139+
<property name="allowUnknownTags" value="true" /> <!-- @sinceMinecraft is not supported -->
140+
</module>
141+
142+
<!-- https://checkstyle.org/config_blocks.html#LeftCurly -->
143+
<module name="LeftCurly"/>
144+
145+
<!-- https://checkstyle.org/config_naming.html#MethodName -->
146+
<module name="MethodName">
147+
<property name="format" value="^(?:(?:.{1,3})|(?:[gs]et[^A-Z].*)|(?:(?:[^gsA-Z]..|.[^e].|..[^t]).+))$"/>
148+
</module>
149+
150+
<!-- https://checkstyle.org/config_whitespace.html#MethodParamPad -->
151+
<module name="MethodParamPad"/>
152+
153+
<!-- &lt;!&ndash; https://checkstyle.org/config_javadoc.html#MissingJavadocMethod &ndash;&gt;-->
154+
<!-- <module name="MissingJavadocMethod"/>-->
155+
156+
<!-- &lt;!&ndash; https://checkstyle.org/config_javadoc.html#MissingJavadocPackage &ndash;&gt;-->
157+
<!-- <module name="MissingJavadocPackage"/>-->
158+
159+
<!-- &lt;!&ndash; https://checkstyle.org/config_javadoc.html#MissingJavadocType &ndash;&gt;-->
160+
<!-- <module name="MissingJavadocType"/>-->
161+
162+
<!-- https://checkstyle.org/config_coding.html#MultipleVariableDeclarations -->
163+
<module name="MultipleVariableDeclarations"/>
164+
165+
<!-- https://checkstyle.org/config_coding.html#NoFinalizer -->
166+
<module name="NoFinalizer"/>
167+
168+
<!-- https://checkstyle.org/config_whitespace.html#NoLineWrap -->
169+
<module name="NoLineWrap"/>
170+
171+
<!-- https://checkstyle.org/config_javadoc.html#NonEmptyAtclauseDescription -->
172+
<module name="NonEmptyAtclauseDescription"/>
173+
174+
<!-- https://checkstyle.org/config_whitespace.html#NoWhitespaceAfter -->
175+
<module name="NoWhitespaceAfter">
176+
<property name="allowLineBreaks" value="false"/>
177+
</module>
178+
179+
<!-- https://checkstyle.org/config_whitespace.html#NoWhitespaceBefore -->
180+
<module name="NoWhitespaceBefore">
181+
<property name="allowLineBreaks" value="true"/>
182+
<property name="tokens" value="COMMA, DOT, LABELED_STAT, METHOD_REF, POST_DEC, POST_INC, SEMI"/> <!-- remove ELLIPSIS -->
183+
</module>
184+
185+
<!-- https://checkstyle.org/config_coding.html#OneStatementPerLine -->
186+
<module name="OneStatementPerLine"/>
187+
188+
<!-- https://checkstyle.org/config_misc.html#OuterTypeFilename -->
189+
<module name="OuterTypeFilename"/>
190+
191+
<!-- https://checkstyle.org/config_imports.html#RedundantImport -->
192+
<module name="RedundantImport"/>
193+
194+
<!-- https://checkstyle.org/config_modifier.html#RedundantModifier -->
195+
<module name="RedundantModifier">
196+
<property name="tokens" value="ANNOTATION_FIELD_DEF, CLASS_DEF, CTOR_DEF, ENUM_DEF, INTERFACE_DEF, VARIABLE_DEF"/> <!-- remove METHOD_DEF and RESOURCE -->
197+
</module>
198+
199+
<!-- https://checkstyle.org/config_javadoc.html#RequireEmptyLineBeforeBlockTagGroup -->
200+
<module name="RequireEmptyLineBeforeBlockTagGroup"/>
201+
202+
<!-- https://checkstyle.org/config_coding.html#RequireThis -->
203+
<module name="RequireThis">
204+
<property name="validateOnlyOverlapping" value="false"/>
205+
</module>
206+
207+
<!-- https://checkstyle.org/config_blocks.html#RightCurly -->
208+
<module name="RightCurly">
209+
<property name="id" value="RightCurlyAlone"/>
210+
<property name="option" value="alone"/>
211+
<property name="tokens" value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_DEF, INSTANCE_INIT, LITERAL_FOR, LITERAL_WHILE, METHOD_DEF, STATIC_INIT"/>
212+
</module>
213+
<module name="RightCurly">
214+
<property name="id" value="RightCurlySame"/>
215+
<property name="option" value="same"/>
216+
<property name="tokens" value="LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF, LITERAL_TRY"/> <!-- add LITERAL_DO -->
217+
</module>
218+
219+
<!-- https://checkstyle.org/config_whitespace.html#SeparatorWrap -->
220+
<module name="SeparatorWrap">
221+
<property name="id" value="SeparatorWrapEol"/>
222+
<property name="option" value="eol"/>
223+
<property name="tokens" value="COMMA, SEMI, ELLIPSIS, RBRACK, ARRAY_DECLARATOR, METHOD_REF"/>
224+
</module>
225+
<module name="SeparatorWrap">
226+
<property name="id" value="SeparatorWrapNl"/>
227+
<property name="option" value="nl"/>
228+
<property name="tokens" value="DOT, AT"/>
229+
</module>
230+
231+
<!-- https://checkstyle.org/config_coding.html#SimplifyBooleanExpression -->
232+
<module name="SimplifyBooleanExpression"/>
233+
234+
<!-- https://checkstyle.org/config_coding.html#SimplifyBooleanReturn -->
235+
<module name="SimplifyBooleanReturn"/>
236+
237+
<!-- https://checkstyle.org/config_whitespace.html#SingleSpaceSeparator -->
238+
<module name="SingleSpaceSeparator">
239+
<property name="validateComments" value="true"/>
240+
</module>
241+
242+
<!-- &lt;!&ndash; https://checkstyle.org/config_javadoc.html#SummaryJavadoc &ndash;&gt;-->
243+
<!-- <module name="SummaryJavadoc"/>-->
244+
245+
<!-- https://checkstyle.org/config_annotation.html#SuppressWarningsHolder -->
246+
<module name="SuppressWarningsHolder"/>
247+
248+
<!-- https://checkstyle.org/config_whitespace.html#TypecastParenPad -->
249+
<module name="TypecastParenPad"/>
250+
251+
<!-- https://checkstyle.org/config_imports.html#UnusedImports -->
252+
<module name="UnusedImports"/>
253+
254+
<!-- https://checkstyle.org/config_whitespace.html#WhitespaceAfter -->
255+
<module name="WhitespaceAfter"/>
256+
257+
<!-- https://checkstyle.org/config_whitespace.html#WhitespaceAround -->
258+
<module name="WhitespaceAround">
259+
<property name="ignoreEnhancedForColon" value="false"/>
260+
<property name="allowEmptyTypes" value="true"/>
261+
<property name="allowEmptyLambdas" value="true"/>
262+
<property name="tokens" value="ASSIGN, COLON, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LCURLY, LE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN, LITERAL_ASSERT, TYPE_EXTENSION_AND"/>
263+
</module>
264+
265+
<!--
266+
#####################
267+
#### third-party ####
268+
#####################
269+
-->
270+
271+
<!-- https://gitlab.com/stellardrift/stylecheck/-/blob/trunk/src/main/java/ca/stellardrift/stylecheck/AnnotationsCloseToType.java -->
272+
<module name="AnnotationsCloseToType"/>
273+
274+
<!-- &lt;!&ndash; https://checkstyle.org/config_javadoc.html#WriteTag &ndash;&gt;-->
275+
<!-- &lt;!&ndash; https://gitlab.com/stellardrift/stylecheck/-/blob/trunk/src/main/java/ca/stellardrift/stylecheck/FilteringWriteTag.java &ndash;&gt;-->
276+
<!-- <module name="FilteringWriteTag">-->
277+
<!-- <property name="tag" value="@since\s"/>-->
278+
<!-- <property name="tagFormat" value="\d\.\d+\.\d+"/>-->
279+
<!-- <property name="tagSeverity" value="ignore"/>-->
280+
<!-- <property name="minimumScope" value="public"/>-->
281+
<!-- <property name="tokens" value="INTERFACE_DEF, CLASS_DEF, ENUM_DEF, ANNOTATION_DEF, RECORD_DEF, METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, RECORD_DEF, COMPACT_CTOR_DEF"/>-->
282+
<!-- </module>-->
283+
</module>
284+
</module>

.editorconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
indent_size = 2
6+
indent_style = space
7+
max_line_length = 200
8+
9+
ij_continuation_indent_size = 4
10+
ij_java_class_count_to_use_import_on_demand = 999999
11+
ij_java_insert_inner_class_imports = false
12+
ij_java_names_count_to_use_import_on_demand = 999999
13+
ij_java_generate_final_locals = true
14+
ij_java_generate_final_parameters = true

.gitattributes

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#
2+
# https://help.github.com/articles/dealing-with-line-endings/
3+
#
4+
# Linux start script should use lf
5+
/gradlew text eol=lf
6+
7+
# These are Windows script files and should use crlf
8+
*.bat text eol=crlf
9+

.github/workflows/build.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: build
2+
on:
3+
push:
4+
# Execute this job if the action is a 'push' onto current branch
5+
branches:
6+
- main
7+
pull_request:
8+
# Execute this job if the action is a 'pull_request'.
9+
branches:
10+
- main
11+
jobs:
12+
build:
13+
# We want to run this job on latest ubuntu release.
14+
runs-on: ubuntu-latest
15+
strategy:
16+
matrix:
17+
java_version: [ 17 ]
18+
19+
# Steps to fire on this job.
20+
steps:
21+
- name: checkout-repo
22+
uses: actions/checkout@v3
23+
24+
- name: java-setup
25+
uses: actions/setup-java@v3
26+
with:
27+
# Use the release set on the matrix.
28+
java-version: ${{ matrix.java_version }}
29+
30+
# Use the Azul-Zulu JDK distribution.
31+
distribution: zulu
32+
33+
- name: compile
34+
run: |
35+
chmod +x gradlew
36+
./gradlew build

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Ignore Gradle project-specific cache directory
2+
.gradle
3+
4+
# Ignore Gradle build output directory
5+
build
6+
7+
# Ignore IDE project settings directory.
8+
.idea

api/build.gradle.kts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
plugins {
2+
`maven-publish`
3+
}
4+
5+
publishing {
6+
publications {
7+
create<MavenPublication>("maven") {
8+
from(components["java"])
9+
}
10+
}
11+
}
12+
13+
dependencies {
14+
compileOnly("org.jetbrains:annotations:24.0.1")
15+
compileOnly(libs.minimessage)
16+
compileOnly(libs.configurate)
17+
}

0 commit comments

Comments
 (0)