--- dynmap-orig/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java	2019-06-05 00:35:48.000000000 +0200
+++ dynmap/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java	2019-06-05 00:26:32.000000000 +0200
@@ -28,6 +28,8 @@
 import org.bukkit.block.Block;
 import org.bukkit.block.BlockFace;
 import org.bukkit.block.BlockState;
+import org.bukkit.block.data.type.Sign;
+import org.bukkit.block.data.type.WallSign;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
@@ -208,12 +210,29 @@
         public int getBlockIDAt(String wname, int x, int y, int z) {
             World w = getServer().getWorld(wname);
             if((w != null) && w.isChunkLoaded(x >> 4, z >> 4)) {
-                return w.getBlockTypeIdAt(x,  y,  z);
+                return w.getBlockAt(x,y,z).getBlockData().getMaterial().getId();
             }
             return -1;
         }
 
         @Override
+        public boolean isSignAt(String worldName, int x, int y, int z) {
+
+            World world = getServer().getWorld(worldName);
+
+            if ((world != null) && world.isChunkLoaded(x >> 4, z >> 4)) {
+
+                Location loc = new Location(world, x, y, z);
+                Block blk = world.getBlockAt(loc);
+
+                return (blk.getBlockData() instanceof Sign || blk.getBlockData() instanceof WallSign);
+
+            } else {
+                return false;
+            }
+        }
+
+        @Override
         public void scheduleServerTask(Runnable run, long delay) {
             getServer().getScheduler().scheduleSyncDelayedTask(DynmapPlugin.this, run, delay);
         }
@@ -253,9 +272,10 @@
         @Override
         public String getServerName() {
         	try {
-        		return getServer().getServerName();
+        	    return getServer().getName();
         	} catch (NoSuchMethodError x) {	// Missing in 1.14 spigot - no idea why removed...
-        		return getServer().getName();
+        	    return "Spigot/1.14.2-eidacz-dev";
+        		//return getServer().getName();
         	}
         }
         @Override
@@ -799,7 +819,7 @@
 
         /* Get MC version */
         String bukkitver = getServer().getVersion();
-        String mcver = "1.0.0";
+        String mcver = "1.14.2";
         int idx = bukkitver.indexOf("(MC: ");
         if(idx > 0) {
             mcver = bukkitver.substring(idx+5);
@@ -1117,7 +1137,7 @@
                 World w = loc.getWorld();
                 if(!w.isChunkLoaded(loc.getBlockX()>>4, loc.getBlockZ()>>4))
                     continue;
-                int bt = w.getBlockTypeIdAt(loc);
+                int bt = w.getBlockAt(loc).getBlockData().getMaterial().getId();
                 /* Avoid stationary and moving water churn */
                 if(bt == 9) bt = 8;
                 if(btt.typeid == 9) btt.typeid = 8;
@@ -1144,7 +1164,8 @@
     private void checkBlock(Block b, String trigger) {
         BlockToCheck btt = new BlockToCheck();
         btt.loc = b.getLocation();
-        btt.typeid = b.getTypeId();
+        //btt.typeid = b.getTypeId();
+        btt.typeid = b.getBlockData().getMaterial().getId();
         btt.data = b.getData();
         btt.trigger = trigger;
         blocks_to_check_accum.add(btt); /* Add to accumulator */
@@ -1251,9 +1272,9 @@
                     Material m = b.getType();
                     if(m == null) return;
                     switch(m) {
-                        case STATIONARY_WATER:
+                        //case LEGACY_STATIONARY_WATER:
                         case WATER:
-                        case STATIONARY_LAVA:
+                        //case LEGACY_STATIONARY_LAVA:
                         case LAVA:
                         case GRAVEL:
                         case SAND:
@@ -1273,11 +1294,11 @@
                 public void onBlockFromTo(BlockFromToEvent event) {
                     Block b = event.getBlock();
                     Material m = b.getType();
-                    if((m != Material.WOOD_PLATE) && (m != Material.STONE_PLATE) && (m != null)) 
+                    if((m != Material.LEGACY_WOOD_PLATE) && (m != Material.LEGACY_STONE_PLATE) && (m != null))
                         checkBlock(b, "blockfromto");
                     b = event.getToBlock();
                     m = b.getType();
-                    if((m != Material.WOOD_PLATE) && (m != Material.STONE_PLATE) && (m != null)) 
+                    if((m != Material.LEGACY_WOOD_PLATE) && (m != Material.LEGACY_STONE_PLATE) && (m != null))
                         checkBlock(b, "blockfromto");
                 }
             };
