diff --git a/DynmapCore/src/main/java/org/dynmap/common/DynmapServerInterface.java b/DynmapCore/src/main/java/org/dynmap/common/DynmapServerInterface.java index 7fd4f584..7aebfe98 100644 --- a/DynmapCore/src/main/java/org/dynmap/common/DynmapServerInterface.java +++ b/DynmapCore/src/main/java/org/dynmap/common/DynmapServerInterface.java @@ -178,7 +178,6 @@ public abstract class DynmapServerInterface { * @return block ID, or -1 if chunk at given coordinate isn't loaded */ public abstract int getBlockIDAt(String wname, int x, int y, int z); - /** * Checks if a sign is at a given coordinate in a given world (if chunk is loaded) * @param wname - world name @@ -187,8 +186,7 @@ public abstract class DynmapServerInterface { * @param z - Z coordinate * @return 1 if a sign is at the location, 0 if it's not, -1 if the chunk isn't loaded */ - public abstract int isSignAt(String wname, int x, int y, int z); - + public abstract int isSignAt(String wname, int x, int y, int z); /** * Get current TPS for server (20.0 is nominal) * @return ticks per second diff --git a/DynmapCore/src/main/java/org/dynmap/markers/impl/MarkerSignManager.java b/DynmapCore/src/main/java/org/dynmap/markers/impl/MarkerSignManager.java index 48274b6e..f19d916e 100644 --- a/DynmapCore/src/main/java/org/dynmap/markers/impl/MarkerSignManager.java +++ b/DynmapCore/src/main/java/org/dynmap/markers/impl/MarkerSignManager.java @@ -19,7 +19,7 @@ public class MarkerSignManager { private static MarkerSignManager mgr = null; private static DynmapCore plugin = null; private static String defSignSet = null; - + private static class SignRec { String wname; int x, y, z; @@ -147,7 +147,7 @@ public class MarkerSignManager { iter.remove(); } else { - if(plugin.getServer().isSignAt(r.wname, r.x, r.y, r.z) == 0) { + if(plugin.getServer().isSignAt(r.wname, r.x, r.y, r.z) == 0) { r.m.deleteMarker(); iter.remove(); } diff --git a/forge-1.10.2/src/main/java/org/dynmap/forge_1_10_2/DynmapPlugin.java b/forge-1.10.2/src/main/java/org/dynmap/forge_1_10_2/DynmapPlugin.java index 22464dad..7d6cc6ad 100644 --- a/forge-1.10.2/src/main/java/org/dynmap/forge_1_10_2/DynmapPlugin.java +++ b/forge-1.10.2/src/main/java/org/dynmap/forge_1_10_2/DynmapPlugin.java @@ -149,6 +149,9 @@ public class DynmapPlugin private static final int SIGNPOST_ID = 63; private static final int WALLSIGN_ID = 68; + private static final int SIGNPOST_ID = 63; + private static final int WALLSIGN_ID = 68; + private static final String[] TRIGGER_DEFAULTS = { "blockupdate", "chunkpopulate", "chunkgenerate" }; private static final Pattern patternControlCode = Pattern.compile("(?i)\\u00A7[0-9A-FK-OR]"); @@ -527,6 +530,20 @@ public class DynmapPlugin } } + @Override + public int isSignAt(String wname, int x, int y, int z) { + int blkid = this.getBlockIDAt(wname, x, y, z); + + if (blkid == -1) + return -1; + + if((blkid == WALLSIGN_ID) || (blkid == SIGNPOST_ID)) { + return 1; + } else { + return 0; + } + } + @Override public void scheduleServerTask(Runnable run, long delay) { diff --git a/forge-1.11.2/src/main/java/org/dynmap/forge_1_11_2/DynmapPlugin.java b/forge-1.11.2/src/main/java/org/dynmap/forge_1_11_2/DynmapPlugin.java index affba5f4..6f6ed7bd 100644 --- a/forge-1.11.2/src/main/java/org/dynmap/forge_1_11_2/DynmapPlugin.java +++ b/forge-1.11.2/src/main/java/org/dynmap/forge_1_11_2/DynmapPlugin.java @@ -535,6 +535,20 @@ public class DynmapPlugin } } + @Override + public int isSignAt(String wname, int x, int y, int z) { + int blkid = this.getBlockIDAt(wname, x, y, z); + + if (blkid == -1) + return -1; + + if((blkid == WALLSIGN_ID) || (blkid == SIGNPOST_ID)) { + return 1; + } else { + return 0; + } + } + @Override public void scheduleServerTask(Runnable run, long delay) { diff --git a/forge-1.12.2/src/main/java/org/dynmap/forge_1_12_2/DynmapPlugin.java b/forge-1.12.2/src/main/java/org/dynmap/forge_1_12_2/DynmapPlugin.java index e1b20341..7b037719 100644 --- a/forge-1.12.2/src/main/java/org/dynmap/forge_1_12_2/DynmapPlugin.java +++ b/forge-1.12.2/src/main/java/org/dynmap/forge_1_12_2/DynmapPlugin.java @@ -149,6 +149,9 @@ public class DynmapPlugin private static final int SIGNPOST_ID = 63; private static final int WALLSIGN_ID = 68; + private static final int SIGNPOST_ID = 63; + private static final int WALLSIGN_ID = 68; + private static final String[] TRIGGER_DEFAULTS = { "blockupdate", "chunkpopulate", "chunkgenerate" }; private static final Pattern patternControlCode = Pattern.compile("(?i)\\u00A7[0-9A-FK-OR]"); @@ -540,6 +543,20 @@ public class DynmapPlugin } } + @Override + public int isSignAt(String wname, int x, int y, int z) { + int blkid = this.getBlockIDAt(wname, x, y, z); + + if (blkid == -1) + return -1; + + if((blkid == WALLSIGN_ID) || (blkid == SIGNPOST_ID)) { + return 1; + } else { + return 0; + } + } + @Override public void scheduleServerTask(Runnable run, long delay) { diff --git a/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java b/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java index 01c83663..6d66b926 100644 --- a/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java +++ b/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java @@ -160,6 +160,9 @@ public class DynmapPlugin private static final int SIGNPOST_ID = 63; private static final int WALLSIGN_ID = 68; + private static final int SIGNPOST_ID = 63; + private static final int WALLSIGN_ID = 68; + private static final String[] TRIGGER_DEFAULTS = { "blockupdate", "chunkpopulate", "chunkgenerate" }; private static final Pattern patternControlCode = Pattern.compile("(?i)\\u00A7[0-9A-FK-OR]"); @@ -522,6 +525,11 @@ public class DynmapPlugin return -1; } + @Override + public int isSignAt(String wname, int x, int y, int z) { + return -1; + } + @Override public void scheduleServerTask(Runnable run, long delay) { diff --git a/forge-1.8.9/src/main/java/org/dynmap/forge_1_8_9/DynmapPlugin.java b/forge-1.8.9/src/main/java/org/dynmap/forge_1_8_9/DynmapPlugin.java index 91024fd0..1f6eb8ae 100644 --- a/forge-1.8.9/src/main/java/org/dynmap/forge_1_8_9/DynmapPlugin.java +++ b/forge-1.8.9/src/main/java/org/dynmap/forge_1_8_9/DynmapPlugin.java @@ -144,6 +144,9 @@ public class DynmapPlugin private static final int SIGNPOST_ID = 63; private static final int WALLSIGN_ID = 68; + private static final int SIGNPOST_ID = 63; + private static final int WALLSIGN_ID = 68; + private static final String[] TRIGGER_DEFAULTS = { "blockupdate", "chunkpopulate", "chunkgenerate" }; private static final Pattern patternControlCode = Pattern.compile("(?i)\\u00A7[0-9A-FK-OR]"); @@ -511,6 +514,20 @@ public class DynmapPlugin } } + @Override + public int isSignAt(String wname, int x, int y, int z) { + int blkid = this.getBlockIDAt(wname, x, y, z); + + if (blkid == -1) + return -1; + + if((blkid == WALLSIGN_ID) || (blkid == SIGNPOST_ID)) { + return 1; + } else { + return 0; + } + } + @Override public void scheduleServerTask(Runnable run, long delay) { diff --git a/forge-1.9.4/src/main/java/org/dynmap/forge_1_9_4/DynmapPlugin.java b/forge-1.9.4/src/main/java/org/dynmap/forge_1_9_4/DynmapPlugin.java index 1f408598..0785333e 100644 --- a/forge-1.9.4/src/main/java/org/dynmap/forge_1_9_4/DynmapPlugin.java +++ b/forge-1.9.4/src/main/java/org/dynmap/forge_1_9_4/DynmapPlugin.java @@ -142,6 +142,9 @@ public class DynmapPlugin private static final int SIGNPOST_ID = 63; private static final int WALLSIGN_ID = 68; + private static final int SIGNPOST_ID = 63; + private static final int WALLSIGN_ID = 68; + private static final String[] TRIGGER_DEFAULTS = { "blockupdate", "chunkpopulate", "chunkgenerate" }; private static final Pattern patternControlCode = Pattern.compile("(?i)\\u00A7[0-9A-FK-OR]"); @@ -514,6 +517,20 @@ public class DynmapPlugin } } + @Override + public int isSignAt(String wname, int x, int y, int z) { + int blkid = this.getBlockIDAt(wname, x, y, z); + + if (blkid == -1) + return -1; + + if((blkid == WALLSIGN_ID) || (blkid == SIGNPOST_ID)) { + return 1; + } else { + return 0; + } + } + @Override public void scheduleServerTask(Runnable run, long delay) { diff --git a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java index b01428cf..94121029 100644 --- a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java +++ b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java @@ -230,6 +230,22 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI { return -1; } + @Override + public int isSignAt(String wname, int x, int y, int z) { + World w = getServer().getWorld(wname); + if((w != null) && w.isChunkLoaded(x >> 4, z >> 4)) { + Block b = w.getBlockAt(x, y, z); + BlockState s = b.getState(); + + if (s instanceof Sign) { + return 1; + } else { + return 0; + } + } + return -1; + } + @Override public void scheduleServerTask(Runnable run, long delay) { getServer().getScheduler().scheduleSyncDelayedTask(DynmapPlugin.this, run, delay);