Skip to content

Commit 3252747

Browse files
Jakubk15Copilot
andauthored
GH-137 Refactor project
* begin refactor * extract interfaces * Update SentParcelsGui.java * Rename UserService back to UserManager * add new lines * Change config library from CDN to Okaeri configs, remove Sentry * Remove debug mode * Finish general refactor * update gradle config * continue refactoring * ItemBuilder -> PaperItemBuilder * ItemBuilder -> PaperItemBuilder * Refactor * Refactor GUI buttons * Continue refactor * Refactor GUI dependencies * continue refactoring services, isolate repositories * more refactoring... * change persister type class * Simplify ReceiverGui * fix gui issues * Beautify GUI classes * Beautify configs, delete unnecessary tests * find -> fetch, fix improper item type set in config * fix gui stuff and immutable list supplying * shifting items fix attempt * shifting works but only in a certain order. atomic counter still does not work * Fix shifting and refreshing * Simplify PlaceholderUtil and CollectionGui through CompletableFutures * Use CompletableFutures from spotify where applicable, clarify some comments * Simplify .gitignore and .gitattributes * change annotations, use expiring cache * remove unused InventoryUtil#shiftItems method * delete unnecessary comment * better empty PageResult handling * Update src/main/java/com/eternalcode/parcellockers/parcel/util/PlaceholderUtil.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/main/java/com/eternalcode/parcellockers/user/repository/UserRepositoryOrmLite.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix potential CME * fix build * fix build * move cache initialization to constructor * Add Validation classes and architecture (suggestion from @noyzys) * Implement validation * Use CompletableFuture in Service/Manager-like classes * Cache object after the cache is initialized * ParcelStatus.PENDING -> IN_PROGRESS * Add static import for AdventureUtil.resetItalic * Delete unused transformers, change command route * Add ItemStorage gui preview * Add validation for users, more nullchecks in SendingGui and SendingGuiState, add comment to LoadUserController, improve CollectionGui empty result handling * adjust to AI requested changes --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 7ce8a2d commit 3252747

File tree

118 files changed

+4235
-3908
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+4235
-3908
lines changed

.gitattributes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
* text=auto
2+
23
*.sh text eol=lf
34
gradlew text eol=lf
45
*.bat text eol=crlf
5-
*.java text eol=lf
66

77
*.jar binary

.github/workflows/gradle.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,13 @@ on:
88

99
jobs:
1010
build:
11-
1211
runs-on: ubuntu-latest
13-
1412
steps:
1513
- uses: actions/checkout@v5
1614
- name: Set up JDK 17
1715
uses: actions/setup-java@v5
1816
with:
19-
java-version: '17'
17+
java-version: '21'
2018
distribution: 'temurin'
2119
cache: gradle
2220
- uses: actions/cache@v4
@@ -30,9 +28,9 @@ jobs:
3028
- name: Grant execute permission for gradlew
3129
run: chmod +x gradlew
3230
- name: Build with Gradle
33-
run: ./gradlew clean shadowJar
31+
run: ./gradlew shadowJar
3432
- name: Upload a Build Artifact
3533
uses: actions/upload-artifact@v4.6.2
3634
with:
37-
name: 'ParcelLockers (MC 1.8.8 - 1.20.x)'
35+
name: 'ParcelLockers'
3836
path: build/libs/ParcelLockers*

.gitignore

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,14 @@
1-
.idea/
21
*.iml
32
*.ipr
43
*.iws
4+
.idea/
5+
.gradle/
6+
.kotlin/
7+
run/
58
out/
6-
*.class
7-
*.log
8-
*.ctxt
9-
*.jar
10-
*.war
11-
*.nar
12-
*.ear
13-
*.zip
14-
*.tar.gz
15-
*.rar
16-
hs_err_pid*
17-
*~
18-
.fuse_hidden*
19-
.directory
20-
.Trash-*
21-
.nfs*
22-
.DS_Store
23-
.AppleDouble
24-
.LSOverride
25-
Icon
26-
._*
27-
.DocumentRevisions-V100
28-
.fseventsd
29-
.Spotlight-V100
30-
.TemporaryItems
31-
.Trashes
32-
.VolumeIcon.icns
33-
.com.apple.timemachine.donotpresent
34-
*.stackdump
35-
.gradle
369
build/
37-
gradle-app.setting
38-
.gradletasknamecache
39-
**/build/
40-
run/
41-
!gradle-wrapper.jar
10+
11+
.DS_Store
12+
[Dd]esktop.ini
13+
14+
!gradle/wrapper/gradle-wrapper.jar

build.gradle.kts

Lines changed: 43 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,77 @@
11
plugins {
22
`java-library`
3-
id("net.minecrell.plugin-yml.bukkit") version "0.6.0"
3+
id("de.eldoria.plugin-yml.paper") version "0.7.1"
44
id("xyz.jpenilla.run-paper") version "3.0.0"
55
id("com.gradleup.shadow") version "9.1.0"
66
}
77

88
group = "com.eternalcode"
99
version = "0.0.2-SNAPSHOT"
10-
description = "Plugin that provides functionality of parcel lockers in Minecraft, allowing players to send and receive parcels safely."
1110

1211
repositories {
1312
gradlePluginPortal()
14-
mavenCentral()
13+
maven { url = uri("https://maven-central.storage-download.googleapis.com/maven2/")}
1514

16-
maven { url = uri("https://repo.panda-lang.org/releases") }
17-
maven { url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") }
18-
maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots") }
19-
maven { url = uri("https://oss.sonatype.org/content/repositories/central") }
15+
maven { url = uri("https://repo.triumphteam.dev/snapshots/")}
2016
maven { url = uri("https://repo.papermc.io/repository/maven-public/") }
2117
maven { url = uri("https://repo.eternalcode.pl/releases") }
18+
maven { url = uri("https://storehouse.okaeri.eu/repository/maven-public/") }
2219
}
2320

2421
dependencies {
2522
// minecraft development api
26-
compileOnly("org.spigotmc:spigot-api:1.21.5-R0.1-SNAPSHOT")
27-
implementation("net.kyori:adventure-platform-bukkit:4.4.1")
28-
implementation("net.kyori:adventure-text-minimessage:4.24.0")
29-
implementation("dev.rollczi:litecommands-bukkit:3.10.5")
30-
implementation("dev.rollczi:litecommands-adventure:3.10.5")
23+
compileOnly("io.papermc.paper:paper-api:1.21.8-R0.1-SNAPSHOT")
24+
paperLibrary("dev.rollczi:litecommands-bukkit:3.10.5")
25+
paperLibrary("dev.rollczi:litecommands-adventure:3.10.5")
3126

3227
// skull api
33-
implementation("dev.rollczi:liteskullapi:2.0.0")
28+
paperLibrary("dev.rollczi:liteskullapi:2.0.0")
3429

3530
// gui
36-
implementation("dev.triumphteam:triumph-gui:3.1.12")
37-
implementation("de.rapha149.signgui:signgui:2.5.4")
31+
paperLibrary("dev.triumphteam:triumph-gui-paper:3.1.13-SNAPSHOT")
32+
paperLibrary("de.rapha149.signgui:signgui:2.5.4")
3833

39-
// CDN
40-
implementation("net.dzikoysk:cdn:1.14.9")
41-
42-
// expressible
43-
implementation("org.panda-lang:expressible:1.3.6")
34+
// configs
35+
paperLibrary("eu.okaeri:okaeri-configs-serdes-commons:5.0.9")
36+
paperLibrary("eu.okaeri:okaeri-configs-serdes-bukkit:5.0.9")
37+
paperLibrary("eu.okaeri:okaeri-configs-yaml-bukkit:5.0.9")
4438

4539
// gitcheck
46-
implementation("com.eternalcode:gitcheck:1.0.0")
40+
paperLibrary("com.eternalcode:gitcheck:1.0.0")
4741

4842
// metrics and sentry
4943
implementation("org.bstats:bstats-bukkit:3.1.0")
50-
implementation("io.sentry:sentry:8.21.1")
5144

5245
// database
53-
implementation("com.zaxxer:HikariCP:7.0.2")
54-
implementation("com.j256.ormlite:ormlite-jdbc:6.1")
55-
implementation("com.h2database:h2:2.3.232")
56-
implementation("org.postgresql:postgresql:42.7.7")
46+
paperLibrary("com.zaxxer:HikariCP:7.0.2")
47+
paperLibrary("com.j256.ormlite:ormlite-jdbc:6.1")
48+
paperLibrary("com.h2database:h2:2.3.232")
49+
paperLibrary("org.postgresql:postgresql:42.7.7")
5750

5851
// lombok
5952
compileOnly("org.projectlombok:lombok:1.18.40")
6053
annotationProcessor("org.projectlombok:lombok:1.18.40")
6154

6255
// jetbrains annotations
63-
api("org.jetbrains:annotations:26.0.2-1")
64-
65-
// paperlib
66-
implementation("io.papermc:paperlib:1.0.8")
67-
68-
// panda-utilities
69-
implementation("org.panda-lang:panda-utilities:0.5.2-alpha")
56+
compileOnly("org.jetbrains:annotations:26.0.2")
7057

7158
// jackson-bukkit
72-
implementation("de.eldoria.jacksonbukkit:paper:1.2.0")
59+
paperLibrary("de.eldoria.jacksonbukkit:paper:1.2.0")
7360

7461
// completable-futures
75-
implementation("com.spotify:completable-futures:0.3.6")
62+
paperLibrary("com.spotify:completable-futures:0.3.6")
63+
64+
// eternalcode commons
65+
paperLibrary("com.eternalcode:eternalcode-commons-adventure:1.3.1")
66+
paperLibrary("com.eternalcode:eternalcode-commons-bukkit:1.3.1")
67+
paperLibrary("com.eternalcode:eternalcode-commons-shared:1.3.1")
7668

77-
// eternalcode-commons
78-
implementation("com.eternalcode:eternalcode-commons-adventure:1.3.1")
79-
implementation("com.eternalcode:eternalcode-commons-bukkit:1.3.1")
69+
// multification
70+
paperLibrary("com.eternalcode:multification-bukkit:1.2.2")
71+
paperLibrary("com.eternalcode:multification-okaeri:1.2.2")
8072

8173
// caffeine
82-
implementation("com.github.ben-manes.caffeine:caffeine:3.2.2")
74+
paperLibrary("com.github.ben-manes.caffeine:caffeine:3.2.2")
8375

8476
testImplementation("org.junit.jupiter:junit-jupiter-api:5.13.4")
8577
testImplementation("org.junit.jupiter:junit-jupiter-params:5.13.4")
@@ -89,21 +81,23 @@ dependencies {
8981
testImplementation("org.testcontainers:junit-jupiter:1.21.3")
9082
testImplementation("org.testcontainers:mysql:1.21.3")
9183
testImplementation("mysql:mysql-connector-java:8.0.33")
84+
testImplementation("com.eternalcode:eternalcode-commons-shared:1.3.1")
9285
}
9386

9487
java {
9588
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
9689
}
9790

98-
bukkit {
91+
paper {
92+
name = "ParcelLockers"
9993
main = "com.eternalcode.parcellockers.ParcelLockers"
100-
apiVersion = "1.13"
101-
prefix = "ParcelLockers"
94+
version = project.version.toString()
95+
apiVersion = "1.21"
10296
author = "EternalCodeTeam"
103-
name = "ParcelLockers"
104-
description = project.description
10597
website = "https://github.com/EternalCodeTeam/ParcelLockers"
106-
version = project.version.toString()
98+
loader = "com.eternalcode.parcellockers.ParcelLockersLibraryLoader"
99+
generateLibrariesJson = true
100+
foliaSupported = false
107101
}
108102

109103
tasks.withType<JavaCompile> {
@@ -115,14 +109,8 @@ tasks.withType<JavaCompile> {
115109

116110
tasks {
117111
runServer {
118-
minecraftVersion("1.21.5")
119-
}
120-
121-
clean {
122-
doLast {
123-
project.file("run/plugins").deleteRecursively()
124-
project.file("run/logs").deleteRecursively()
125-
}
112+
minecraftVersion("1.21.8")
113+
downloadPlugins.modrinth("luckperms", "v5.5.0-bukkit")
126114
}
127115

128116
test {
@@ -135,40 +123,14 @@ tasks {
135123
exclude(
136124
"org/intellij/lang/annotations/**",
137125
"org/jetbrains/annotations/**",
138-
"META-INF/**",
139-
"javax/**",
140-
"javassist/**",
141-
"org/h2/util/**"
126+
"META-INF/**"
142127
)
143128

144129
mergeServiceFiles()
145-
minimize {
146-
exclude(dependency("de\\.rapha149\\.signgui:signgui:.*")) // https://github.com/Rapha149/SignGUI/issues/15
147-
}
148130

149131
val relocationPrefix = "com.eternalcode.parcellockers.libs"
150132
listOf(
151-
"panda",
152-
"org.bstats",
153-
"org.json",
154-
"org.postgresql",
155-
"net.dzikoysk",
156-
"net.kyori",
157-
"io.papermc",
158-
"io.sentry",
159-
"dev.rollczi",
160-
"de.eldoria",
161-
"com.eternalcode",
162-
"com.fasterxml",
163-
"com.j256",
164-
"com.spotify",
165-
"com.zaxxer",
166-
"de.rapha149",
167-
"dev.triumphteam",
168-
"com.github.benmanes.caffeine"
133+
"org.bstats"
169134
).forEach { relocate(it, "$relocationPrefix.$it") }
170135
}
171136
}
172-
173-
174-

deletePluginConfigs.bat

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
del run\plugins\ParcelLockers\config.yml
2+
del run\plugins\ParcelLockers\messages.yml

gradle.properties

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
org.gradle.daemon=true
2-
org.gradle.jvmargs=-Xmx4096M -XX:MaxMetaspaceSize=2048m
31
org.gradle.parallel=true
4-
org.gradle.workers.max=8
52
org.gradle.caching=true
6-
#org.gradle.configuration-cache=true
7-
org.gradle.vfs.watch=true
3+
org.gradle.configuration-cache=true
4+
org.gradle.configuration-cache.parallel=true

0 commit comments

Comments
 (0)