Skip to content

Commit 9f766b0

Browse files
authored
Merge pull request #535 from PolyhedralDev/dev/1.21.10
Cleaned up Bukkit NMS bindings and marked 1.21.10 as supported
2 parents c3d2652 + c282e55 commit 9f766b0

29 files changed

Lines changed: 94 additions & 101 deletions

buildSrc/src/main/kotlin/Versions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ object Versions {
6262
object Bukkit {
6363
const val minecraft = "1.21.10"
6464
const val nms = "$minecraft-R0.1"
65-
const val paperBuild = "$nms-20251007.183616-3"
65+
const val paperBuild = "$nms-20251012.013929-7"
6666
const val paper = paperBuild
6767
const val paperLib = "1.0.8"
6868
const val reflectionRemapper = "0.1.3"

platforms/bukkit/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ dependencies {
88
paperweight.paperDevBundle(Versions.Bukkit.paperDevBundle)
99

1010
shaded(project(":platforms:bukkit:common"))
11-
shaded(project(":platforms:bukkit:nms:v1_21_9"))
11+
shaded(project(":platforms:bukkit:nms"))
1212
shaded("xyz.jpenilla", "reflection-remapper", Versions.Bukkit.reflectionRemapper)
1313
}
1414

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.dfsek.terra.bukkit;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
6+
import com.dfsek.terra.bukkit.util.VersionUtil;
7+
8+
import java.util.List;
9+
10+
11+
public interface NMSInitializer {
12+
List<String> SUPPORTED_VERSIONS = List.of("v1.21.9", "v1.21.10");
13+
String MINECRAFT_VERSION = VersionUtil.getMinecraftVersionInfo().toString();
14+
String TERRA_PACKAGE = NMSInitializer.class.getPackageName();
15+
16+
static PlatformImpl init(TerraBukkitPlugin plugin) {
17+
Logger logger = LoggerFactory.getLogger(NMSInitializer.class);
18+
19+
if (!SUPPORTED_VERSIONS.contains(MINECRAFT_VERSION)) {
20+
logger.error("You are running your server on Minecraft version {} which is not supported by this version of Terra.", MINECRAFT_VERSION);
21+
22+
String bypassKey = "IKnowThereAreNoNMSBindingsFor" + MINECRAFT_VERSION.replace(".", "_") + "ButIWillProceedAnyway";
23+
if(System.getProperty(bypassKey) == null) {
24+
logger.error("Because of this **TERRA HAS BEEN DISABLED**.");
25+
logger.error("Do not come ask us why it is not working.");
26+
logger.error("If you wish to proceed anyways, you can add the JVM System Property \"{}\" to enable the plugin.", bypassKey);
27+
return null;
28+
} else {
29+
logger.error("");
30+
logger.error("");
31+
for(int i = 0; i < 20; i++) {
32+
logger.error("PROCEEDING WITH AN EXISTING TERRA WORLD WILL RESULT IN CORRUPTION!!!");
33+
}
34+
logger.error("");
35+
logger.error("");
36+
logger.error("We will not give you any support for issues that may arise.");
37+
logger.error("Since you enabled the \"{}\" flag, we won't disable Terra. But be warned.", bypassKey);
38+
}
39+
}
40+
41+
return constructPlatform(plugin);
42+
}
43+
44+
private static PlatformImpl constructPlatform(TerraBukkitPlugin plugin) {
45+
try {
46+
Class<?> platformClass = Class.forName(TERRA_PACKAGE + ".nms.NMSPlatform");
47+
return (PlatformImpl) platformClass
48+
.getConstructor(TerraBukkitPlugin.class)
49+
.newInstance(plugin);
50+
} catch(ReflectiveOperationException e) {
51+
throw new RuntimeException("Error initializing NMS bindings. Report this to Terra.", e);
52+
}
53+
}
54+
}

platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent;
4141
import com.dfsek.terra.bukkit.generator.BukkitChunkGeneratorWrapper;
4242
import com.dfsek.terra.bukkit.listeners.CommonListener;
43-
import com.dfsek.terra.bukkit.nms.Initializer;
4443
import com.dfsek.terra.bukkit.util.PaperUtil;
4544
import com.dfsek.terra.bukkit.util.VersionUtil;
4645
import com.dfsek.terra.bukkit.world.BukkitAdapter;
@@ -60,7 +59,7 @@ public void onEnable() {
6059
return;
6160
}
6261

63-
platform = Initializer.init(this);
62+
platform = NMSInitializer.init(this);
6463
if(platform == null) {
6564
Bukkit.getPluginManager().disablePlugin(this);
6665
return;

platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/nms/Initializer.java

Lines changed: 0 additions & 60 deletions
This file was deleted.
File renamed without changes.

platforms/bukkit/nms/v1_21_9/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_9/AwfulBukkitHacks.java renamed to platforms/bukkit/nms/src/main/java/com/dfsek/terra/bukkit/nms/AwfulBukkitHacks.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.dfsek.terra.bukkit.nms.v1_21_9;
1+
package com.dfsek.terra.bukkit.nms;
22

33
import net.minecraft.core.Holder;
44
import net.minecraft.core.Holder.Reference;
@@ -25,7 +25,7 @@
2525
import java.util.Set;
2626
import java.util.stream.Collectors;
2727

28-
import com.dfsek.terra.bukkit.nms.v1_21_9.config.VanillaBiomeProperties;
28+
import com.dfsek.terra.bukkit.nms.config.VanillaBiomeProperties;
2929
import com.dfsek.terra.bukkit.world.BukkitBiomeInfo;
3030
import com.dfsek.terra.bukkit.world.BukkitPlatformBiome;
3131
import com.dfsek.terra.registry.master.ConfigRegistry;

platforms/bukkit/nms/v1_21_9/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_9/NMSAddon.java renamed to platforms/bukkit/nms/src/main/java/com/dfsek/terra/bukkit/nms/NMSAddon.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
package com.dfsek.terra.bukkit.nms.v1_21_9;
1+
package com.dfsek.terra.bukkit.nms;
22

33
import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent;
44
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
55
import com.dfsek.terra.api.world.biome.Biome;
66
import com.dfsek.terra.bukkit.BukkitAddon;
77
import com.dfsek.terra.bukkit.PlatformImpl;
8-
import com.dfsek.terra.bukkit.nms.v1_21_9.config.VanillaBiomeProperties;
8+
import com.dfsek.terra.bukkit.nms.config.VanillaBiomeProperties;
99

1010

1111
public class NMSAddon extends BukkitAddon {

platforms/bukkit/nms/v1_21_9/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_9/NMSBiomeInfo.java renamed to platforms/bukkit/nms/src/main/java/com/dfsek/terra/bukkit/nms/NMSBiomeInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.dfsek.terra.bukkit.nms.v1_21_9;
1+
package com.dfsek.terra.bukkit.nms;
22

33
import net.minecraft.resources.ResourceKey;
44
import net.minecraft.world.level.biome.Biome;

platforms/bukkit/nms/v1_21_9/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_9/NMSBiomeInjector.java renamed to platforms/bukkit/nms/src/main/java/com/dfsek/terra/bukkit/nms/NMSBiomeInjector.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.dfsek.terra.bukkit.nms.v1_21_9;
1+
package com.dfsek.terra.bukkit.nms;
22

33
import net.minecraft.core.Holder;
44
import net.minecraft.core.Registry;
@@ -12,7 +12,7 @@
1212
import java.util.Optional;
1313

1414
import com.dfsek.terra.api.config.ConfigPack;
15-
import com.dfsek.terra.bukkit.nms.v1_21_9.config.VanillaBiomeProperties;
15+
import com.dfsek.terra.bukkit.nms.config.VanillaBiomeProperties;
1616

1717

1818
public class NMSBiomeInjector {

0 commit comments

Comments
 (0)