Skip to content

Commit 71fa7ca

Browse files
authored
feat: support minecraft 1.21.3 (#1546)
### Motivation Minecraft 1.21.3 was released and we should support it. ### Modification Adds support for 1.21.3 on bukkit based systems as well as fabric and limbo. ### Result 1.21.3 supported on bukkit, fabric and limbo
1 parent d4ae7ff commit 71fa7ca

File tree

4 files changed

+56
-27
lines changed

4 files changed

+56
-27
lines changed

gradle/libs.versions.toml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,15 @@ limboloohp = "0.7.9-ALPHA"
7171
vault = "1.7.1"
7272
adventure = "4.17.0"
7373
modlauncher = "8.1.3"
74-
npcLib = "3.0.0-beta9"
74+
npcLib = "3.0.0-beta10"
75+
packetEvents = "2.6.0"
7576
placeholderApi = "2.11.6"
7677
adventure-serializer-bungee = "4.3.4"
7778
luckPermsApi = "5.4"
7879

7980
# fabric platform special dependencies
80-
minecraft = "1.21.1"
81-
fabricLoader = "0.16.7"
81+
minecraft = "1.21.3"
82+
fabricLoader = "0.16.9"
8283

8384

8485
[libraries]
@@ -167,7 +168,7 @@ spigot = { group = "org.spigotmc", name = "spigot-api", version.ref = "spigot" }
167168
sponge = { group = "org.spongepowered", name = "spongeapi", version.ref = "sponge" }
168169
bungeecord = { group = "net.md-5", name = "bungeecord-api", version.ref = "bungeecord" }
169170
minestom = { group = "net.minestom", name = "minestom-snapshots", version.ref = "minestom" }
170-
minestomExtensions = { group = "dev.hollowcube", name = "minestom-ce-extensions", version.ref = "minestomExtensions"}
171+
minestomExtensions = { group = "dev.hollowcube", name = "minestom-ce-extensions", version.ref = "minestomExtensions" }
171172
velocity = { group = "com.velocitypowered", name = "velocity-api", version.ref = "velocity" }
172173
waterdogpe = { group = "dev.waterdog.waterdogpe", name = "waterdog", version.ref = "waterdogpe" }
173174
limboloohp = { group = "com.loohp", name = "Limbo", version.ref = "limboloohp" }
@@ -185,6 +186,7 @@ bungeecordChat = { group = "net.md-5", name = "bungeecord-chat", version.ref = "
185186
placeholderApi = { group = "me.clip", name = "placeholderapi", version.ref = "placeholderApi" }
186187

187188
npcLib = { group = "io.github.juliarn", name = "npc-lib-bukkit", version.ref = "npcLib" }
189+
packetEvents = { group = "com.github.retrooper", name = "packetevents-spigot", version.ref = "packetEvents" }
188190
npcLibLabymod = { group = "io.github.juliarn", name = "npc-lib-labymod", version.ref = "npcLib" }
189191
luckPermsApi = { group = "net.luckperms", name = "api", version.ref = "luckPermsApi" }
190192

modules/npcs/build.gradle.kts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,11 @@ repositories {
5757
dependencies {
5858
"compileOnly"(projects.wrapperJvm)
5959
"compileOnly"(projects.modules.bridge)
60-
"implementation"(projects.ext.bukkitCommand)
61-
6260
"compileOnly"(libs.bundles.serverPlatform)
6361

62+
"implementation"(libs.packetEvents)
63+
"implementation"(projects.ext.bukkitCommand)
64+
6465
"api"(libs.bundles.npcLib)
6566
}
6667

modules/npcs/src/main/java/eu/cloudnetservice/modules/npc/platform/bukkit/BukkitPlatformNPCManagement.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import com.github.juliarn.npclib.bukkit.BukkitWorldAccessor;
2424
import com.github.juliarn.npclib.bukkit.protocol.BukkitProtocolAdapter;
2525
import com.github.juliarn.npclib.ext.labymod.LabyModExtension;
26+
import com.github.retrooper.packetevents.manager.server.ServerVersion;
27+
import com.github.retrooper.packetevents.util.PEVersion;
2628
import com.google.common.base.Preconditions;
2729
import eu.cloudnetservice.driver.ComponentInfo;
2830
import eu.cloudnetservice.driver.event.EventManager;
@@ -279,17 +281,15 @@ protected void startEmoteTask(boolean force) {
279281
}
280282

281283
protected @NonNull PlatformPacketAdapter<World, Player, ItemStack, Plugin> resolvePacketAdapter() {
282-
var protocolLibAdapter = BukkitProtocolAdapter.protocolLib();
283-
try {
284-
//noinspection DataFlowIssue
285-
protocolLibAdapter.createCustomPayloadPacket("minecraft:test", new byte[0]).schedule((Player) null, null);
286-
return protocolLibAdapter;
287-
} catch (NullPointerException _) {
288-
// the above test code will always throw an NPE if the test passes. We need to handle this as success.
289-
return protocolLibAdapter;
290-
} catch (Throwable _) {
291-
// protocollib is not working, fallback to packet events
292-
return BukkitProtocolAdapter.packetEvents();
284+
var bukkitVersion = this.server.getBukkitVersion();
285+
var parsedVersion = PEVersion.fromString(bukkitVersion.substring(0, bukkitVersion.indexOf("-")));
286+
var latestPEVersion = PEVersion.fromString(ServerVersion.getLatest().getReleaseName());
287+
if (parsedVersion.isNewerThan(latestPEVersion)) {
288+
this.plugin.getLogger().info("NPCs using ProtocolLib for version " + bukkitVersion);
289+
return BukkitProtocolAdapter.protocolLib();
293290
}
291+
292+
this.plugin.getLogger().info("NPCs using PacketEvents for version " + bukkitVersion);
293+
return BukkitProtocolAdapter.packetEvents();
294294
}
295295
}

node/src/main/resources/files/versions.json

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,7 @@
8989
"website": "https://papermc.io",
9090
"versions": [
9191
{
92-
"name": "latest",
93-
"cacheFiles": false,
92+
"name": "1.21.3",
9493
"properties": {
9594
"copy": {
9695
"cache/.*": "/",
@@ -101,7 +100,7 @@
101100
"-Dpaperclip.patchonly=true"
102101
],
103102
"fetchOverPaperApi": true,
104-
"versionGroup": "1.21.1"
103+
"versionGroup": "1.21.3"
105104
}
106105
},
107106
{
@@ -317,7 +316,7 @@
317316
"versions": [
318317
{
319318
"name": "latest",
320-
"url": "https://api.purpurmc.org/v2/purpur/1.21.1/latest/download",
319+
"url": "https://api.purpurmc.org/v2/purpur/1.21.3/latest/download",
321320
"cacheFiles": false,
322321
"properties": {
323322
"copy": {
@@ -330,6 +329,20 @@
330329
]
331330
}
332331
},
332+
{
333+
"name": "1.21.3",
334+
"url": "https://api.purpurmc.org/v2/purpur/1.21.3/latest/download",
335+
"properties": {
336+
"copy": {
337+
"cache/.*": "/",
338+
"versions/.*": "/",
339+
"purpur\\.jar": "paper.jar"
340+
},
341+
"jvmOptions": [
342+
"-Dpaperclip.patchonly=true"
343+
]
344+
}
345+
},
333346
{
334347
"name": "1.21.1",
335348
"url": "https://api.purpurmc.org/v2/purpur/1.21.1/latest/download",
@@ -514,7 +527,7 @@
514527
"website": "https://fabricmc.net",
515528
"versions": [
516529
{
517-
"name": "1.21.1",
530+
"name": "1.21.3",
518531
"cacheFiles": false,
519532
"properties": {
520533
"copy": {
@@ -557,7 +570,21 @@
557570
},
558571
"fetchOverSpongeApi": true,
559572
"artifact": "spongevanilla",
560-
"mcVersion": "1.21.1"
573+
"mcVersion": "1.21.3"
574+
},
575+
"minJavaVersion": 21
576+
},
577+
{
578+
"name": "1.21.3",
579+
"properties": {
580+
"copy": {
581+
"libraries/.*": "/",
582+
"launcher\\.conf": "/",
583+
"spongevanilla\\.jar": "/"
584+
},
585+
"fetchOverSpongeApi": true,
586+
"artifact": "spongevanilla",
587+
"mcVersion": "1.21.3"
561588
},
562589
"minJavaVersion": 21
563590
},
@@ -674,7 +701,7 @@
674701
"cacheFiles": false,
675702
"properties": {
676703
"fetchOverPaperApi": true,
677-
"versionGroup": "3.3.0-SNAPSHOT"
704+
"versionGroup": "3.4.0-SNAPSHOT"
678705
}
679706
}
680707
]
@@ -703,9 +730,8 @@
703730
],
704731
"versions": [
705732
{
706-
"name": "latest",
707-
"url": "https://ci.loohpjames.com/job/Limbo/46/artifact/target/Limbo-0.7.10-ALPHA-1.21.1.jar",
708-
"cacheFiles": false
733+
"name": "1.21.3",
734+
"url": "https://ci.loohpjames.com/job/Limbo/47/artifact/target/Limbo-0.7.11-ALPHA-1.21.3.jar"
709735
},
710736
{
711737
"name": "1.21.1",

0 commit comments

Comments
 (0)