From 4300f0b7ab5b08fb7c02c87d9ce60a12f2f39a45 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Fri, 10 Jun 2016 01:14:06 -0500 Subject: [PATCH 1/9] Update for 1.10 - make workaround for Spigot API permanent --- .../dynmap/bukkit/BukkitVersionHelperCB.java | 30 +++++++++++++++---- .../bukkit/BukkitVersionHelperGeneric.java | 1 + 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperCB.java b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperCB.java index 89a3d07c..d6f0b498 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperCB.java +++ b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperCB.java @@ -5,6 +5,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Map; +import java.util.Set; import org.bukkit.Bukkit; import org.bukkit.Chunk; @@ -12,6 +13,7 @@ import org.bukkit.Server; import org.bukkit.World; import org.dynmap.Log; import org.dynmap.common.BiomeMap; +import org.dynmap.hdmap.HDBlockModels; import org.dynmap.utils.Polygon; /** @@ -36,7 +38,16 @@ public class BukkitVersionHelperCB extends BukkitVersionHelperGeneric { private boolean isBadUnload = false; BukkitVersionHelperCB() { - isBadUnload = Bukkit.getServer().getBukkitVersion().contains("1.9"); + String bukkitver = DynmapPlugin.plugin.getServer().getVersion(); + String mcver = "1.0.0"; + int idx = bukkitver.indexOf("(MC: "); + if(idx > 0) { + mcver = bukkitver.substring(idx+5); + idx = mcver.indexOf(")"); + if(idx > 0) mcver = mcver.substring(0, idx); + } + isBadUnload = HDBlockModels.checkVersionRange(mcver, "1.9-"); + Log.verboseinfo("MCVER=" + mcver + ", isBadUnload=" + isBadUnload); } @Override protected String getNMSPackage() { @@ -94,18 +105,27 @@ public class BukkitVersionHelperCB extends BukkitVersionHelperGeneric { lhs_containskey = getMethod(longhashset, new String[] { "contains" }, new Class[] { int.class, int.class }); } else { - longhashset = getOBCClass("org.bukkit.craftbukkit.util.LongHashset"); - lhs_containskey = getMethod(longhashset, new String[] { "containsKey" }, new Class[] { int.class, int.class }); + longhashset = getOBCClassNoFail("org.bukkit.craftbukkit.util.LongHashset"); + if (longhashset != null) { + lhs_containskey = getMethod(longhashset, new String[] { "containsKey" }, new Class[] { int.class, int.class }); + } } - cps_unloadqueue = getFieldNoFail(chunkprovserver, new String[] { "unloadQueue" }, longhashset); + cps_unloadqueue_isSet = false; + if (longhashset != null) { + cps_unloadqueue = getFieldNoFail(chunkprovserver, new String[] { "unloadQueue" }, longhashset); + } + if(cps_unloadqueue == null) { + cps_unloadqueue = getFieldNoFail(chunkprovserver, new String[] { "unloadQueue" }, Set.class); + cps_unloadqueue_isSet = true; + } if(cps_unloadqueue == null) { Log.info("Unload queue not found - default to unload all chunks"); } /** n.m.s.Chunk */ nmschunk = getNMSClass("net.minecraft.server.Chunk"); nmsc_tileentities = getField(nmschunk, new String[] { "tileEntities" }, Map.class); - nmsc_inhabitedticks = getPrivateFieldNoFail(nmschunk, new String[] { "s", "q", "u", "v" }, long.class); + nmsc_inhabitedticks = getPrivateFieldNoFail(nmschunk, new String[] { "s", "q", "u", "v", "w" }, long.class); if (nmsc_inhabitedticks == null) { Log.info("inhabitedTicks field not found - inhabited shader not functional"); } diff --git a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java index 2a4309ce..0d9173aa 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java +++ b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java @@ -51,6 +51,7 @@ public abstract class BukkitVersionHelperGeneric extends BukkitVersionHelper { protected Class longhashset; protected Field nmsw_chunkproviderserver; protected Field cps_unloadqueue; + protected boolean cps_unloadqueue_isSet; protected Method lhs_containskey; /** n.m.s.Chunk */ protected Class nmschunk; From c4a59d2d292e0347b0f5569e1f08d2c29d95a092 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sat, 11 Jun 2016 21:38:50 -0500 Subject: [PATCH 2/9] Add handling for v1.10 unloadQueue --- .../java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java index 0d9173aa..c7bda45d 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java +++ b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java @@ -7,6 +7,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Map; +import java.util.Set; import org.bukkit.Bukkit; import org.bukkit.Chunk; @@ -328,6 +329,8 @@ public abstract class BukkitVersionHelperGeneric extends BukkitVersionHelper { /* For testing unload queue for presence of givne chunk */ public boolean isInUnloadQueue(Object unloadqueue, int x, int z) { if(unloadqueue != null) { + if (cps_unloadqueue_isSet) + return ((Set) unloadqueue).contains(Long.valueOf((long)x & 0xFFFFFFFF | ((long)z & 0xFFFFFFFF) << 32)); return (Boolean)callMethod(unloadqueue, lhs_containskey, new Object[] { x, z }, true); } return true; From 1a6ed552ea24c48a69652dcfe060d600288309ec Mon Sep 17 00:00:00 2001 From: Kevin Breslin Date: Mon, 23 May 2016 01:30:40 -0400 Subject: [PATCH 3/9] Remove unused imports and local variable --- src/main/java/org/dynmap/bukkit/BukkitVersionHelper.java | 5 ----- src/main/java/org/dynmap/bukkit/BukkitVersionHelperCB.java | 5 ++--- .../java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java | 2 -- src/main/java/org/dynmap/bukkit/BukkitWorld.java | 1 - 4 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/dynmap/bukkit/BukkitVersionHelper.java b/src/main/java/org/dynmap/bukkit/BukkitVersionHelper.java index 90b1faa8..f0cdb6ad 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitVersionHelper.java +++ b/src/main/java/org/dynmap/bukkit/BukkitVersionHelper.java @@ -1,15 +1,10 @@ package org.dynmap.bukkit; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Collections; import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.ChunkSnapshot; -import org.bukkit.Server; import org.bukkit.World; import org.bukkit.entity.Player; import org.dynmap.Log; diff --git a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperCB.java b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperCB.java index d6f0b498..30c29d8d 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperCB.java +++ b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperCB.java @@ -12,7 +12,6 @@ import org.bukkit.Chunk; import org.bukkit.Server; import org.bukkit.World; import org.dynmap.Log; -import org.dynmap.common.BiomeMap; import org.dynmap.hdmap.HDBlockModels; import org.dynmap.utils.Polygon; @@ -94,8 +93,8 @@ public class BukkitVersionHelperCB extends BukkitVersionHelperGeneric { chunkprovserver = getNMSClass("net.minecraft.server.ChunkProviderServer"); nmsw_chunkproviderserver = getPrivateFieldNoFail(nmsworld, new String[] { "chunkProviderServer" }, chunkprovserver); if (nmsw_chunkproviderserver == null) { - Class nmsworldbase = getNMSClass("net.minecraft.server.World"); - Class nmsichunkprovider = getNMSClass("net.minecraft.server.IChunkProvider"); + Class nmsworldbase = getNMSClass("net.minecraft.server.World"); + Class nmsichunkprovider = getNMSClass("net.minecraft.server.IChunkProvider"); nmsw_chunkproviderserver = getPrivateField(nmsworldbase, new String[] { "chunkProvider" }, nmsichunkprovider); } getworldborder = getMethodNoFail(nmsworld, new String[] { "af" }, nulltypes); diff --git a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java index c7bda45d..0b5cb184 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java +++ b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java @@ -3,7 +3,6 @@ package org.dynmap.bukkit; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Map; @@ -99,7 +98,6 @@ public abstract class BukkitVersionHelperGeneric extends BukkitVersionHelper { BukkitVersionHelperGeneric() { failed = false; - Server srv = Bukkit.getServer(); /* Look up base classname for bukkit server - tells us OBC package */ obc_package = Bukkit.getServer().getClass().getPackage().getName(); /* Get NMS package */ diff --git a/src/main/java/org/dynmap/bukkit/BukkitWorld.java b/src/main/java/org/dynmap/bukkit/BukkitWorld.java index 41b096e1..e608f392 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitWorld.java +++ b/src/main/java/org/dynmap/bukkit/BukkitWorld.java @@ -11,7 +11,6 @@ import java.util.List; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.World; -import org.bukkit.block.Block; import org.bukkit.permissions.Permission; import org.bukkit.permissions.PermissionDefault; import org.dynmap.DynmapChunk; From 2fef8eac1e134780efdde592b992cf5b0d81e28a Mon Sep 17 00:00:00 2001 From: Kevin Breslin Date: Mon, 23 May 2016 01:35:58 -0400 Subject: [PATCH 4/9] Add wildcard types for generics to suppress warnings --- .../java/org/dynmap/bukkit/BukkitVersionHelper.java | 2 +- .../dynmap/bukkit/BukkitVersionHelperGeneric.java | 12 ++++++------ .../dynmap/bukkit/BukkitVersionHelperGlowstone.java | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/dynmap/bukkit/BukkitVersionHelper.java b/src/main/java/org/dynmap/bukkit/BukkitVersionHelper.java index f0cdb6ad..3c65ffc9 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitVersionHelper.java +++ b/src/main/java/org/dynmap/bukkit/BukkitVersionHelper.java @@ -90,7 +90,7 @@ public abstract class BukkitVersionHelper { /** * Get tile entities map from chunk */ - public abstract Map getTileEntitiesForChunk(Chunk c); + public abstract Map getTileEntitiesForChunk(Chunk c); /** * Get X coordinate of tile entity */ diff --git a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java index 0b5cb184..54d98c3b 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java +++ b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGeneric.java @@ -24,8 +24,8 @@ public abstract class BukkitVersionHelperGeneric extends BukkitVersionHelper { protected String nms_package; // Package used for net.minecraft.server private boolean failed; protected static final Object[] nullargs = new Object[0]; - protected static final Class[] nulltypes = new Class[0]; - private static final Map nullmap = Collections.emptyMap(); + protected static final Class[] nulltypes = new Class[0]; + private static final Map nullmap = Collections.emptyMap(); /** CraftChunkSnapshot */ private Class craftchunksnapshot; @@ -249,7 +249,7 @@ public abstract class BukkitVersionHelperGeneric extends BukkitVersionHelper { /** * Get method */ - protected Method getMethod(Class cls, String[] ids, Class[] args) { + protected Method getMethod(Class cls, String[] ids, Class[] args) { if(cls == null) return null; for(String id : ids) { try { @@ -262,7 +262,7 @@ public abstract class BukkitVersionHelperGeneric extends BukkitVersionHelper { failed = true; return null; } - protected Method getMethodNoFail(Class cls, String[] ids, Class[] args) { + protected Method getMethodNoFail(Class cls, String[] ids, Class[] args) { if(cls == null) return null; for(String id : ids) { try { @@ -360,10 +360,10 @@ public abstract class BukkitVersionHelperGeneric extends BukkitVersionHelper { } /** Get tile entities map from chunk */ - public Map getTileEntitiesForChunk(Chunk c) { + public Map getTileEntitiesForChunk(Chunk c) { Object omsc = callMethod(c, cc_gethandle, nullargs, null); if(omsc != null) { - return (Map)getFieldValue(omsc, nmsc_tileentities, nullmap); + return (Map)getFieldValue(omsc, nmsc_tileentities, nullmap); } return nullmap; } diff --git a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGlowstone.java b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGlowstone.java index d15574a7..a25e4fe9 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGlowstone.java +++ b/src/main/java/org/dynmap/bukkit/BukkitVersionHelperGlowstone.java @@ -98,7 +98,7 @@ public class BukkitVersionHelperGlowstone extends BukkitVersionHelper { } @Override - public Map getTileEntitiesForChunk(Chunk c) { + public Map getTileEntitiesForChunk(Chunk c) { // TODO Auto-generated method stub return Collections.emptyMap(); } From c4cc6dcca52d368c9d9071cdbdc1e55c0d524bd4 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sun, 12 Jun 2016 10:14:28 -0500 Subject: [PATCH 5/9] Prep for v2.3 GA --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index be0c3e3a..a3ee8dbe 100644 --- a/pom.xml +++ b/pom.xml @@ -40,8 +40,8 @@ maven-compiler-plugin 2.0.2 - 1.6 - 1.6 + 1.7 + 1.7 @@ -141,5 +141,5 @@ 2.10.1 - 2.3-SNAPSHOT + 2.3 From 3f0a8424149cf276a2bd9ec8a6869a11e12c01b1 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sun, 12 Jun 2016 12:15:40 -0500 Subject: [PATCH 6/9] Bump to v2.4-SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a3ee8dbe..8f35c42f 100644 --- a/pom.xml +++ b/pom.xml @@ -141,5 +141,5 @@ 2.10.1 - 2.3 + 2.4-SNAPSHOT From 9f835b497808e81afc456487a83039524d1620e4 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Tue, 21 Jun 2016 22:58:40 -0500 Subject: [PATCH 7/9] Remove old Spout library --- pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pom.xml b/pom.xml index 8f35c42f..3d347c83 100644 --- a/pom.xml +++ b/pom.xml @@ -114,12 +114,6 @@ DynmapCore ${project.version} - - org.getspout - spoutpluginapi - dev-SNAPSHOT - compile - ru.tehkode PermissionsEx From d36e3caf048465afe7689cdb7b402617ba97d8d0 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sat, 11 Feb 2017 17:12:27 -0600 Subject: [PATCH 8/9] Prep for release --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3d347c83..051a450a 100644 --- a/pom.xml +++ b/pom.xml @@ -135,5 +135,5 @@ 2.10.1 - 2.4-SNAPSHOT + 2.4 From fc717ae7207270056908c0b40024f2f726afc4e4 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sun, 12 Feb 2017 00:54:19 -0600 Subject: [PATCH 9/9] Bump to 2.5-SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 051a450a..006822fe 100644 --- a/pom.xml +++ b/pom.xml @@ -135,5 +135,5 @@ 2.10.1 - 2.4 + 2.5-SNAPSHOT