From e596814669d4c83dba2ec004e00d5ccf14fbb513 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Tue, 15 Sep 2020 00:19:36 +0200 Subject: [PATCH] Crash fix, world time fix, Java 8 support Skip dimensions that are already registered (#1) Fix world time setting (#2) Use Jabel to support Java 8 I'm not giving my vars up --- pom.xml | 46 +++++++++++++++++-- .../customdimensions/CustomDimensions.java | 14 +++++- 2 files changed, 55 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index ecb9bda..86eb3ba 100644 --- a/pom.xml +++ b/pom.xml @@ -6,15 +6,21 @@ com.github.TBMCPlugins CustomDimensions - 1.1 + 1.2 org.apache.maven.plugins maven-compiler-plugin + 3.8.1 - 10 - 10 + + 8 + 14 + 14 + + -Xplugin:jabel + @@ -25,6 +31,10 @@ spigot-repo https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + jitpack.io + https://jitpack.io/ + @@ -34,6 +44,36 @@ 1.16.3-R0.1-SNAPSHOT provided + + com.github.bsideup.jabel + jabel-javac-plugin + 0.3.0 + provided + + + + intellij-idea-only + + + idea.maven.embedder.version + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 14 + + --enable-preview + + + + + + + \ No newline at end of file diff --git a/src/main/java/buttondevteam/customdimensions/CustomDimensions.java b/src/main/java/buttondevteam/customdimensions/CustomDimensions.java index 418493b..b7cdd19 100644 --- a/src/main/java/buttondevteam/customdimensions/CustomDimensions.java +++ b/src/main/java/buttondevteam/customdimensions/CustomDimensions.java @@ -91,8 +91,16 @@ public class CustomDimensions extends JavaPlugin implements Listener { List spawners = ImmutableList.of(new MobSpawnerPhantom(), new MobSpawnerPatrol(), new MobSpawnerCat(), new VillageSiege(), new MobSpawnerTrader(worlddata)); ResourceKey dimManResKey = ResourceKey.a(IRegistry.K, dimKey.a()); + var dimRegistry = ((RegistryMaterials) console.customRegistry.a()); + { + var key = dimRegistry.getKey(dimensionmanager); + if (key != null) { //The loaded manager is the same + getLogger().warning("Dimension manager already loaded with key " + key + "! Skipping"); + continue; + } + } //Replace existing dimension manager, correctly setting the ID up (which is -1 for default worlds...) - ((RegistryMaterials) console.customRegistry.a()).a(OptionalInt.empty(), dimManResKey, dimensionmanager, Lifecycle.stable()); + dimRegistry.a(OptionalInt.empty(), dimManResKey, dimensionmanager, Lifecycle.stable()); var worldloadlistener = console.worldLoadListenerFactory.create(11); @@ -100,7 +108,9 @@ public class CustomDimensions extends JavaPlugin implements Listener { worlddata, worldKey, dimensionmanager, worldloadlistener, chunkgenerator, false, //isDebugWorld BiomeManager.a(worlddata.getGeneratorSettings().getSeed()), //Biome seed - spawners, false, org.bukkit.World.Environment.NORMAL, null); + spawners, + true, //Update world time + org.bukkit.World.Environment.NORMAL, null); if (Bukkit.getWorld(name.toLowerCase(Locale.ENGLISH)) == null) { getLogger().warning("Failed to load custom dimension " + name);