diff --git a/bukkit-helper-114/bin/.gitignore b/bukkit-helper-114/bin/.gitignore new file mode 100644 index 00000000..ddf9c656 --- /dev/null +++ b/bukkit-helper-114/bin/.gitignore @@ -0,0 +1 @@ +/main/ diff --git a/bukkit-helper-114/src/main/java/org/dynmap/bukkit/helper/v114/BukkitVersionHelperSpigot114.java b/bukkit-helper-114/src/main/java/org/dynmap/bukkit/helper/v114/BukkitVersionHelperSpigot114.java index bbf9b377..2948b914 100644 --- a/bukkit-helper-114/src/main/java/org/dynmap/bukkit/helper/v114/BukkitVersionHelperSpigot114.java +++ b/bukkit-helper-114/src/main/java/org/dynmap/bukkit/helper/v114/BukkitVersionHelperSpigot114.java @@ -53,6 +53,11 @@ public class BukkitVersionHelperSpigot114 extends BukkitVersionHelperCB { protected boolean isBlockIdNeeded() { return false; } + + @Override + protected boolean isBiomeBaseListNeeded() { + return false; + } public BukkitVersionHelperSpigot114() { datapalettearray = getNMSClass("[Lnet.minecraft.server.DataPaletteBlock;"); @@ -94,6 +99,21 @@ public class BukkitVersionHelperSpigot114 extends BukkitVersionHelperCB { } return names; } + + /** + * Get list of defined biomebase objects + */ + @Override + public Object[] getBiomeBaseList() { + if (biomelist == null) { + biomelist = new Object[1024]; + for (int i = 0; i < 1024; i++) { + biomelist[i] = IRegistry.BIOME.fromId(i); + } + } + return biomelist; + } + /** Get ID from biomebase */ @Override public int getBiomeBaseID(Object bb) { diff --git a/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelper.java b/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelper.java index ec0d6a6f..1fd7b923 100644 --- a/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelper.java +++ b/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelper.java @@ -25,6 +25,9 @@ public abstract class BukkitVersionHelper { protected boolean isBlockIdNeeded() { return true; } + protected boolean isBiomeBaseListNeeded() { + return true; + } protected BukkitVersionHelper() { diff --git a/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelperCB.java b/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelperCB.java index b0bf2218..1bbce289 100644 --- a/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelperCB.java +++ b/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelperCB.java @@ -90,7 +90,7 @@ public class BukkitVersionHelperCB extends BukkitVersionHelperGeneric { biomebase = getNMSClass("net.minecraft.server.BiomeBase"); biomebasearray = getNMSClass("[Lnet.minecraft.server.BiomeBase;"); biomebaselist = getPrivateFieldNoFail(biomebase, new String[] { "biomes" }, biomebasearray); - if (biomebaselist == null) { + if ((biomebaselist == null) && isBiomeBaseListNeeded()) { getbiomefunc = getMethodNoFail(biomebase, new String[] { "getBiome" }, new Class[] { int.class, biomebase }); if (getbiomefunc == null) { getbiomebyid = getMethod(biomebase, new String[] { "a" }, new Class[] { int.class} ); @@ -110,7 +110,7 @@ public class BukkitVersionHelperCB extends BukkitVersionHelperGeneric { else { biomebasehumifunc = getMethod(biomebase, new String[] { "getHumidity" }, nulltypes); } - biomebaseidstring = getPrivateField(biomebase, new String[] { "y", "af", "ah", "z", "aS", "aR" }, String.class); + biomebaseidstring = getPrivateField(biomebase, new String[] { "y", "af", "ah", "z", "aS", "aR", "f" }, String.class); biomebaseid = getFieldNoFail(biomebase, new String[] { "id" }, int.class); if (biomebaseid == null) { getidbybiome = getMethod(biomebase, new String[] { "a" }, new Class[] { biomebase } ); @@ -165,10 +165,18 @@ public class BukkitVersionHelperCB extends BukkitVersionHelperGeneric { /** n.m.s.WorldBorder */ nmsworldborder = getNMSClassNoFail("net.minecraft.server.WorldBorder"); if (nmsworldborder != null) { - worldborderminx = getMethod(nmsworldborder, new String[] { "b" }, nulltypes); - worldborderminz = getMethod(nmsworldborder, new String[] { "c" }, nulltypes); - worldbordermaxx = getMethod(nmsworldborder, new String[] { "d" }, nulltypes); - worldbordermaxz = getMethod(nmsworldborder, new String[] { "e" }, nulltypes); + worldbordermaxz = getMethodNoFail(nmsworldborder, new String[] { "f" }, nulltypes); + if (worldbordermaxz == null) { + worldborderminx = getMethod(nmsworldborder, new String[] { "b" }, nulltypes); + worldborderminz = getMethod(nmsworldborder, new String[] { "c" }, nulltypes); + worldbordermaxx = getMethod(nmsworldborder, new String[] { "d" }, nulltypes); + worldbordermaxz = getMethod(nmsworldborder, new String[] { "e" }, nulltypes); + } + else { + worldborderminx = getMethod(nmsworldborder, new String[] { "c" }, nulltypes); + worldborderminz = getMethod(nmsworldborder, new String[] { "d" }, nulltypes); + worldbordermaxx = getMethod(nmsworldborder, new String[] { "e" }, nulltypes); + } } /** nbt classes */ @@ -334,7 +342,7 @@ public class BukkitVersionHelperCB extends BukkitVersionHelperGeneric { } return p; } - private Object[] biomelist = null; + protected Object[] biomelist = null; /** * Get list of defined biomebase objects */ diff --git a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java index 5f854975..76557765 100644 --- a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java +++ b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java @@ -252,7 +252,11 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI { } @Override public String getServerName() { - return getServer().getServerName(); + try { + return getServer().getServerName(); + } catch (NoSuchMethodError x) { // Missing in 1.14 spigot - no idea why removed... + return getServer().getName(); + } } @Override public boolean isPlayerBanned(String pid) {