Skip to content

Commit 44101ad

Browse files
committed
Fixes to event priority and jar-in-jar shading
1 parent 256f470 commit 44101ad

File tree

6 files changed

+141
-24
lines changed

6 files changed

+141
-24
lines changed

common/build.gradle

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
plugins {
22
id "java"
33
id "java-library"
4+
id "maven-publish"
5+
}
6+
7+
compileJava {
8+
options.compilerArgs += "-g"
49
}
510

611
dependencies {
@@ -34,3 +39,15 @@ shadowJar {
3439

3540
minimize()
3641
}
42+
43+
publishing {
44+
publications {
45+
maven(MavenPublication) {
46+
groupId = 'com.cssbham'
47+
artifactId = 'common'
48+
version = '1.0.0'
49+
50+
from components.java
51+
}
52+
}
53+
}

common/src/main/java/com/cssbham/cssminecraft/common/command/handler/MakeGreenCommandHandler.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,20 @@ public void handle(CommandSender sender, CommandContext context) {
4545
if (discordClientService.getDiscordClient().isMember(arg)) {
4646
sender.sendMessage(Component.text("Making you green...").color(NamedTextColor.GRAY));
4747
try {
48-
permissionPluginService.grantMemberRole(sender.getUuid()).get();
49-
} catch (InterruptedException | ExecutionException e) {
48+
permissionPluginService.grantMemberRole(sender.getUuid()).whenComplete((v, err) -> {
49+
if (err != null) {
50+
sender.sendMessage(Component.text("There was a problem making you green. Try again later.")
51+
.color(NamedTextColor.RED));
52+
throw new RuntimeException(err);
53+
}
54+
55+
sender.sendMessage(Component.text("Congratulations, you are now green!").color(NamedTextColor.GREEN));
56+
});
57+
} catch (Exception e) {
5058
sender.sendMessage(Component.text("There was a problem making you green. Try again later.")
5159
.color(NamedTextColor.RED));
5260
throw new RuntimeException(e);
5361
}
54-
sender.sendMessage(Component.text("Congratulations, you are now green!").color(NamedTextColor.GREEN));
5562
} else {
5663
sender.sendMessage(Component.text("You don't appear to be a ").color(NamedTextColor.RED).append(
5764
Component.text("Member").color(NamedTextColor.GREEN)

common/src/main/java/com/cssbham/cssminecraft/common/permission/LuckPermsPermissionPluginService.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,14 @@ public CompletableFuture<Void> grantMemberRole(UUID player) {
2020
user.data().add(Node.builder("group.member").build());
2121
user.data().remove(Node.builder("group.guest").build());
2222
}
23-
);
23+
).whenCompleteAsync((v, err) -> {
24+
if (err != null) {
25+
err.printStackTrace();
26+
return;
27+
}
28+
29+
System.out.println("Success");
30+
});
2431
}
2532

2633
@Override

neoforge/build.gradle

Lines changed: 98 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ base {
1818

1919
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
2020

21+
jarJar.enabled = true
22+
2123
neoForge {
2224
// Specify the version of NeoForge to use.
2325
version = project.neo_version
@@ -87,13 +89,17 @@ neoForge {
8789
// but multi mod projects should define one per mod
8890
"${mod_id}" {
8991
sourceSet(sourceSets.main)
92+
sourceSet(project(":common").sourceSets.main)
9093
}
9194
}
9295
}
9396

9497
// Include resources generated by data generators.
9598
sourceSets.main.resources { srcDir 'src/generated/resources' }
9699

100+
compileJava {
101+
options.compilerArgs += "-g"
102+
}
97103

98104
dependencies {
99105
// Example mod dependency with JEI
@@ -119,30 +125,60 @@ dependencies {
119125

120126
// implementation "net.neoforged:neoforge:${neo_version}"
121127

122-
implementation(jarJar("net.kyori:adventure-api:4.17.0")) {
128+
/* compileOnly(jarJar("net.kyori:adventure-api:4.17.0")) {
123129
exclude(module: "adventure-bom")
124130
exclude(module: "annotations")
125131
}
126-
implementation(jarJar("net.kyori:adventure-text-serializer-gson:4.17.0")) {
132+
compileOnly(jarJar("net.kyori:adventure-text-serializer-gson:4.17.0")) {
127133
exclude(module: "adventure-bom")
128134
exclude(module: "adventure-api")
129135
exclude(module: "annotations")
130136
exclude(module: "auto-service-annotations")
131137
exclude(module: "gson")
132-
}
133-
134-
implementation(jarJar("net.kyori:adventure-platform-neoforge:6.0.0"))
138+
} */
135139

136-
implementation(jarJar(project(path: ":common", configuration: "shadow")))
137-
138-
139-
140-
// additionalRuntimeClasspath("com.cssbham:common:.*")
141-
additionalRuntimeClasspath("net.kyori:adventure-api:4.17.0")
142-
additionalRuntimeClasspath("net.kyori:adventure-text-serializer-gson:4.17.0")
140+
jarJar(implementation(group: "net.kyori", name: "adventure-platform-neoforge", version: "6.0.0") {
141+
exclude(module: "annotations")
142+
exclude(module: "auto-service-annotations")
143+
exclude(module: "gson")
144+
})
145+
jarJar(implementation ("net.dv8tion:JDA:5.0.2") {
146+
exclude(module: "opus-java")
147+
exclude(module: "annotations")
148+
exclude(module: "slf4j-api")
149+
})
150+
jarJar(implementation ("club.minnced:discord-webhooks:0.8.4") {
151+
exclude(module: "slf4j-api")
152+
})
153+
jarJar(implementation("org.yaml:snakeyaml:2.2"))
154+
jarJar(implementation("com.neovisionaries:nv-websocket-client:2.14"))
155+
jarJar(implementation("com.squareup.okhttp3:okhttp:4.12.0"))
156+
jarJar(implementation("org.apache.commons:commons-collections4:4.4"))
157+
jarJar(implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10"))
158+
jarJar(implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10"))
159+
jarJar(implementation("org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10"))
160+
jarJar(implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.10"))
161+
jarJar(implementation("com.squareup.okio:okio:3.6.0"))
162+
jarJar(implementation("net.sf.trove4j:core:3.1.0"))
163+
jarJar(implementation("com.fasterxml.jackson.core:jackson-core:2.17.2"))
164+
jarJar(implementation("com.fasterxml.jackson:jackson-bom:2.17.2"))
165+
jarJar(implementation("com.fasterxml.jackson.core:jackson-annotations:2.17.2"))
166+
jarJar(implementation("com.fasterxml.jackson.core:jackson-databind:2.17.2"))
167+
jarJar(implementation("org.json:json:20230618"))
168+
169+
shadow(compileOnly(project(path: ":common"))) {
170+
transitive(false)
171+
}
172+
// additionalRuntimeClasspath("org.yaml:snakeyaml:2.2")
173+
// additionalRuntimeClasspath("net.dv8tion:JDA:5.0.2")
174+
// additionalRuntimeClasspath("club.minnced:discord-webhooks:0.8.4")
175+
// additionalRuntimeClasspath("com.cssbham:common:1.0.0")
176+
// additionalRuntimeClasspath("net.kyori:adventure-api:4.17.0")
177+
// additionalRuntimeClasspath("net.kyori:adventure-platform-neoforge:6.0.0")
178+
// additionalRuntimeClasspath("net.kyori:adventure-text-serializer-gson:4.17.0")
143179
}
144180

145-
tasks.shadowJar.enabled = false
181+
// tasks.shadowJar.enabled = false
146182

147183
// This block of code expands all declared replace properties in the specified resource targets.
148184
// A missing property will result in an error. Properties are expanded using ${} Groovy notation.
@@ -179,3 +215,52 @@ idea {
179215
downloadJavadoc = true
180216
}
181217
}
218+
/*
219+
tasks.shadowJar {
220+
configurations = [project.configurations.shadow]
221+
222+
dependencies {
223+
exclude(dependency("net.kyori:adventure-platform-neoforge:6.0.0"))
224+
}
225+
226+
doLast {
227+
copy {
228+
from("build/generated/jarjar/META-INF/jarjar")
229+
into("META-INF/jarjar")
230+
}
231+
}
232+
233+
// exclude("net/**")
234+
// exclude("META-INF/services/*")
235+
// minimize()
236+
237+
archiveFileName = "cssminecraft-neoforge-${project.version}.jar"
238+
}
239+
240+
*/
241+
242+
tasks.shadowJar.enabled = false
243+
/*
244+
tasks.register("shadeCommon") {
245+
copy {
246+
from("../common/build/classes/main/com/cssbham/cssminecraft/common")
247+
into("build/classes/")
248+
}
249+
} */
250+
251+
tasks.jar {
252+
from("../common/build/classes/java/main/com/cssbham/cssminecraft/common") {
253+
into("com/cssbham/cssminecraft/common")
254+
}
255+
}
256+
/*
257+
tasks.register("copyJarJar") {
258+
copy {
259+
from ("build/generated/jarjar/META-INF/jarjar")
260+
into("META-INF/jarjar")
261+
}
262+
}
263+
264+
tasks.copyJarJar.dependsOn(jarJar)
265+
*/
266+

neoforge/src/main/java/com/cssbham/cssminecraft/neoforge/listener/ForgeEventAdapter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import net.minecraft.server.MinecraftServer;
1111
import net.minecraft.server.level.ServerPlayer;
1212
import net.minecraft.world.entity.player.Player;
13+
import net.neoforged.bus.api.EventPriority;
1314
import net.neoforged.bus.api.SubscribeEvent;
1415
import net.neoforged.neoforge.common.NeoForge;
1516
import net.neoforged.neoforge.event.ServerChatEvent;
@@ -42,7 +43,7 @@ private void dispatchEvent(Event event) {
4243
executor.doAsync(() -> eventBus.dispatch(event));
4344
}
4445

45-
@SubscribeEvent
46+
@SubscribeEvent(priority = EventPriority.HIGH)
4647
public void onChat(ServerChatEvent event) {
4748
ServerPlayer player = event.getPlayer();
4849
String name = event.getUsername();

neoforge/src/main/templates/META-INF/neoforge.mods.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ loaderVersion="${loader_version_range}" #mandatory
44
license="${mod_license}"
55

66
[[mods]] #mandatory
7-
modId="${mod_id}"
7+
modId="cssminecraft"
88
version="${mod_version}"
99
displayName="${mod_name}"
1010
logoFile="logo.png"
@@ -13,23 +13,23 @@ description='''
1313
CSS' Minecraft plugin
1414
'''
1515

16-
[[dependencies."${mod_id}"]]
16+
[[dependencies.cssminecraft]]
1717
modId="neoforge"
1818
type="required"
1919
versionRange="${neo_version_range}"
2020
ordering="NONE"
2121
side="BOTH"
2222

23-
[[dependencies."${mod_id}"]]
23+
[[dependencies.cssminecraft]]
2424
modId="minecraft"
2525
type="required"
2626
versionRange="${minecraft_version_range}"
2727
ordering="NONE"
2828
side="BOTH"
2929

30-
[[dependencies."${mod_id}"]]
30+
[[dependencies.cssminecraft]]
3131
modId="luckperms"
32-
type="optional"
32+
type="required"
3333
versionRange="*"
34-
ordering="AFTER"
34+
ordering="BEFORE"
3535
side="SERVER"

0 commit comments

Comments
 (0)