diff --git a/DynmapCore/src/main/java/org/dynmap/ClientUpdateComponent.java b/DynmapCore/src/main/java/org/dynmap/ClientUpdateComponent.java index 2ce32343..d45f0694 100644 --- a/DynmapCore/src/main/java/org/dynmap/ClientUpdateComponent.java +++ b/DynmapCore/src/main/java/org/dynmap/ClientUpdateComponent.java @@ -12,6 +12,7 @@ public class ClientUpdateComponent extends Component { private int hideifshadow; private int hideifunder; private boolean hideifsneaking; + private boolean hideifspectator; private boolean hideifinvisiblepotion; private boolean is_protected; public static boolean usePlayerColors; @@ -24,6 +25,7 @@ public class ClientUpdateComponent extends Component { hideifshadow = configuration.getInteger("hideifshadow", 15); hideifunder = configuration.getInteger("hideifundercover", 15); hideifsneaking = configuration.getBoolean("hideifsneaking", false); + hideifspectator = configuration.getBoolean("hideifspectator", false); hideifinvisiblepotion = configuration.getBoolean("hide-if-invisiblity-potion", true); is_protected = configuration.getBoolean("protected-player-info", false); usePlayerColors = configuration.getBoolean("use-name-colors", false); @@ -100,6 +102,9 @@ public class ClientUpdateComponent extends Component { if((!hide) && hideifsneaking && p.isSneaking()) { hide = true; } + if((!hide) && hideifspectator && p.isSpectator()) { + hide = true; + } if((!hide) && is_protected && (!see_all)) { if(e.user != null) { hide = !core.testIfPlayerVisibleToPlayer(e.user, p.getName()); diff --git a/DynmapCore/src/main/java/org/dynmap/common/DynmapPlayer.java b/DynmapCore/src/main/java/org/dynmap/common/DynmapPlayer.java index 685920c0..16d873a2 100644 --- a/DynmapCore/src/main/java/org/dynmap/common/DynmapPlayer.java +++ b/DynmapCore/src/main/java/org/dynmap/common/DynmapPlayer.java @@ -44,6 +44,12 @@ public interface DynmapPlayer extends DynmapCommandSender { * @return true if sneaking */ public boolean isSneaking(); + + /** + * get spectator gamemode + * @return true if gamemode spectator + */ + public boolean isSpectator(); /** * Get health * @return health points diff --git a/fabric-1.14.4/src/main/java/org/dynmap/fabric_1_14_4/FabricPlayer.java b/fabric-1.14.4/src/main/java/org/dynmap/fabric_1_14_4/FabricPlayer.java index b5d4a26f..c6bd3c93 100644 --- a/fabric-1.14.4/src/main/java/org/dynmap/fabric_1_14_4/FabricPlayer.java +++ b/fabric-1.14.4/src/main/java/org/dynmap/fabric_1_14_4/FabricPlayer.java @@ -192,13 +192,17 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } - @Override public int getSortWeight() { return plugin.getSortWeight(getName()); diff --git a/fabric-1.15.2/src/main/java/org/dynmap/fabric_1_15_2/FabricPlayer.java b/fabric-1.15.2/src/main/java/org/dynmap/fabric_1_15_2/FabricPlayer.java index 3c717567..0bca8a72 100644 --- a/fabric-1.15.2/src/main/java/org/dynmap/fabric_1_15_2/FabricPlayer.java +++ b/fabric-1.15.2/src/main/java/org/dynmap/fabric_1_15_2/FabricPlayer.java @@ -192,13 +192,17 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } - @Override public int getSortWeight() { return plugin.getSortWeight(getName()); diff --git a/fabric-1.16.4/src/main/java/org/dynmap/fabric_1_16_4/FabricPlayer.java b/fabric-1.16.4/src/main/java/org/dynmap/fabric_1_16_4/FabricPlayer.java index 362db43a..81084c86 100644 --- a/fabric-1.16.4/src/main/java/org/dynmap/fabric_1_16_4/FabricPlayer.java +++ b/fabric-1.16.4/src/main/java/org/dynmap/fabric_1_16_4/FabricPlayer.java @@ -192,13 +192,17 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } - @Override public int getSortWeight() { return plugin.getSortWeight(getName()); diff --git a/fabric-1.17.1/src/main/java/org/dynmap/fabric_1_17_1/FabricPlayer.java b/fabric-1.17.1/src/main/java/org/dynmap/fabric_1_17_1/FabricPlayer.java index 0dac5c55..acb3a74b 100644 --- a/fabric-1.17.1/src/main/java/org/dynmap/fabric_1_17_1/FabricPlayer.java +++ b/fabric-1.17.1/src/main/java/org/dynmap/fabric_1_17_1/FabricPlayer.java @@ -195,13 +195,17 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } - @Override public int getSortWeight() { return plugin.getSortWeight(getName()); diff --git a/fabric-1.18.2/src/main/java/org/dynmap/fabric_1_18_2/FabricPlayer.java b/fabric-1.18.2/src/main/java/org/dynmap/fabric_1_18_2/FabricPlayer.java index 878eca3a..5844f660 100644 --- a/fabric-1.18.2/src/main/java/org/dynmap/fabric_1_18_2/FabricPlayer.java +++ b/fabric-1.18.2/src/main/java/org/dynmap/fabric_1_18_2/FabricPlayer.java @@ -195,13 +195,17 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } - @Override public int getSortWeight() { return plugin.getSortWeight(getName()); diff --git a/fabric-1.19.1/src/main/java/org/dynmap/fabric_1_19_1/FabricPlayer.java b/fabric-1.19.1/src/main/java/org/dynmap/fabric_1_19_1/FabricPlayer.java index b98ab021..66c94674 100644 --- a/fabric-1.19.1/src/main/java/org/dynmap/fabric_1_19_1/FabricPlayer.java +++ b/fabric-1.19.1/src/main/java/org/dynmap/fabric_1_19_1/FabricPlayer.java @@ -195,13 +195,17 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } - @Override public int getSortWeight() { return plugin.getSortWeight(getName()); diff --git a/fabric-1.19.3/src/main/java/org/dynmap/fabric_1_19_3/FabricPlayer.java b/fabric-1.19.3/src/main/java/org/dynmap/fabric_1_19_3/FabricPlayer.java index 8b25a6f1..4c9ef740 100644 --- a/fabric-1.19.3/src/main/java/org/dynmap/fabric_1_19_3/FabricPlayer.java +++ b/fabric-1.19.3/src/main/java/org/dynmap/fabric_1_19_3/FabricPlayer.java @@ -195,13 +195,17 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } - @Override public int getSortWeight() { return plugin.getSortWeight(getName()); diff --git a/fabric-1.19.4/src/main/java/org/dynmap/fabric_1_19_4/FabricPlayer.java b/fabric-1.19.4/src/main/java/org/dynmap/fabric_1_19_4/FabricPlayer.java index 3bc4913c..cdee64f0 100644 --- a/fabric-1.19.4/src/main/java/org/dynmap/fabric_1_19_4/FabricPlayer.java +++ b/fabric-1.19.4/src/main/java/org/dynmap/fabric_1_19_4/FabricPlayer.java @@ -195,13 +195,17 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } - @Override public int getSortWeight() { return plugin.getSortWeight(getName()); diff --git a/fabric-1.19/src/main/java/org/dynmap/fabric_1_19/FabricPlayer.java b/fabric-1.19/src/main/java/org/dynmap/fabric_1_19/FabricPlayer.java index 21ec5625..d652df0f 100644 --- a/fabric-1.19/src/main/java/org/dynmap/fabric_1_19/FabricPlayer.java +++ b/fabric-1.19/src/main/java/org/dynmap/fabric_1_19/FabricPlayer.java @@ -195,13 +195,17 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } - @Override public int getSortWeight() { return plugin.getSortWeight(getName()); diff --git a/fabric-1.20/src/main/java/org/dynmap/fabric_1_20/FabricPlayer.java b/fabric-1.20/src/main/java/org/dynmap/fabric_1_20/FabricPlayer.java index aa3d5169..9d4405d1 100644 --- a/fabric-1.20/src/main/java/org/dynmap/fabric_1_20/FabricPlayer.java +++ b/fabric-1.20/src/main/java/org/dynmap/fabric_1_20/FabricPlayer.java @@ -197,13 +197,17 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } - @Override public int getSortWeight() { return plugin.getSortWeight(getName()); 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 e564e710..53c86f35 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 @@ -1328,12 +1328,16 @@ public class DynmapPlugin @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible() } return false; } + + public boolean isSpectator() { + if(player != null) {return player.isSpectator()} + return false; + } + @Override public int getSortWeight() { Integer wt = sortWeights.get(getName()); diff --git a/forge-1.14.4/src/main/java/org/dynmap/forge_1_14_4/DynmapPlugin.java b/forge-1.14.4/src/main/java/org/dynmap/forge_1_14_4/DynmapPlugin.java index 198c15a6..1e94f273 100644 --- a/forge-1.14.4/src/main/java/org/dynmap/forge_1_14_4/DynmapPlugin.java +++ b/forge-1.14.4/src/main/java/org/dynmap/forge_1_14_4/DynmapPlugin.java @@ -1287,9 +1287,14 @@ public class DynmapPlugin @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } diff --git a/forge-1.15.2/src/main/java/org/dynmap/forge_1_15_2/DynmapPlugin.java b/forge-1.15.2/src/main/java/org/dynmap/forge_1_15_2/DynmapPlugin.java index b0184705..37f1c2d8 100644 --- a/forge-1.15.2/src/main/java/org/dynmap/forge_1_15_2/DynmapPlugin.java +++ b/forge-1.15.2/src/main/java/org/dynmap/forge_1_15_2/DynmapPlugin.java @@ -1296,9 +1296,14 @@ public class DynmapPlugin @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } diff --git a/forge-1.16.5/src/main/java/org/dynmap/forge_1_16_5/DynmapPlugin.java b/forge-1.16.5/src/main/java/org/dynmap/forge_1_16_5/DynmapPlugin.java index 0909143b..d021ace4 100644 --- a/forge-1.16.5/src/main/java/org/dynmap/forge_1_16_5/DynmapPlugin.java +++ b/forge-1.16.5/src/main/java/org/dynmap/forge_1_16_5/DynmapPlugin.java @@ -1314,9 +1314,14 @@ public class DynmapPlugin @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } diff --git a/forge-1.17.1/src/main/java/org/dynmap/forge_1_17_1/DynmapPlugin.java b/forge-1.17.1/src/main/java/org/dynmap/forge_1_17_1/DynmapPlugin.java index 96c3f625..443b0225 100644 --- a/forge-1.17.1/src/main/java/org/dynmap/forge_1_17_1/DynmapPlugin.java +++ b/forge-1.17.1/src/main/java/org/dynmap/forge_1_17_1/DynmapPlugin.java @@ -1294,9 +1294,14 @@ public class DynmapPlugin @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } diff --git a/forge-1.18.2/src/main/java/org/dynmap/forge_1_18_2/DynmapPlugin.java b/forge-1.18.2/src/main/java/org/dynmap/forge_1_18_2/DynmapPlugin.java index 061b0ab0..09143407 100644 --- a/forge-1.18.2/src/main/java/org/dynmap/forge_1_18_2/DynmapPlugin.java +++ b/forge-1.18.2/src/main/java/org/dynmap/forge_1_18_2/DynmapPlugin.java @@ -1301,9 +1301,14 @@ public class DynmapPlugin @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } diff --git a/forge-1.19.2/src/main/java/org/dynmap/forge_1_19_2/DynmapPlugin.java b/forge-1.19.2/src/main/java/org/dynmap/forge_1_19_2/DynmapPlugin.java index 9dc4aab1..55edc7dc 100644 --- a/forge-1.19.2/src/main/java/org/dynmap/forge_1_19_2/DynmapPlugin.java +++ b/forge-1.19.2/src/main/java/org/dynmap/forge_1_19_2/DynmapPlugin.java @@ -1301,9 +1301,14 @@ public class DynmapPlugin @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } diff --git a/forge-1.19.3/src/main/java/org/dynmap/forge_1_19_3/DynmapPlugin.java b/forge-1.19.3/src/main/java/org/dynmap/forge_1_19_3/DynmapPlugin.java index 5ffc40fe..2e07ee27 100644 --- a/forge-1.19.3/src/main/java/org/dynmap/forge_1_19_3/DynmapPlugin.java +++ b/forge-1.19.3/src/main/java/org/dynmap/forge_1_19_3/DynmapPlugin.java @@ -1303,9 +1303,14 @@ public class DynmapPlugin @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } diff --git a/forge-1.19/src/main/java/org/dynmap/forge_1_19/DynmapPlugin.java b/forge-1.19/src/main/java/org/dynmap/forge_1_19/DynmapPlugin.java index 6d32668d..3b3605b0 100644 --- a/forge-1.19/src/main/java/org/dynmap/forge_1_19/DynmapPlugin.java +++ b/forge-1.19/src/main/java/org/dynmap/forge_1_19/DynmapPlugin.java @@ -1301,9 +1301,14 @@ public class DynmapPlugin @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } diff --git a/forge-1.20/src/main/java/org/dynmap/forge_1_20/DynmapPlugin.java b/forge-1.20/src/main/java/org/dynmap/forge_1_20/DynmapPlugin.java index 0cb7ab40..a05c1797 100644 --- a/forge-1.20/src/main/java/org/dynmap/forge_1_20/DynmapPlugin.java +++ b/forge-1.20/src/main/java/org/dynmap/forge_1_20/DynmapPlugin.java @@ -1303,9 +1303,14 @@ public class DynmapPlugin @Override public boolean isInvisible() { if(player != null) { - if (player.isSpectator()) - return true; - else return player.isInvisible(); + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); } return false; } diff --git a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java index db73a423..56662ee9 100644 --- a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java +++ b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java @@ -102,7 +102,6 @@ import org.dynmap.common.chunk.GenericMapChunkCache; import org.dynmap.hdmap.HDMap; import org.dynmap.markers.MarkerAPI; import org.dynmap.modsupport.ModSupportImpl; -import org.dynmap.renderer.DynmapBlockState; import org.dynmap.utils.MapChunkCache; import org.dynmap.utils.Polygon; import org.dynmap.utils.VisibilityLimit; @@ -756,13 +755,18 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI { @Override public boolean isInvisible() { if(player != null) { - if (player.getGameMode() == GameMode.SPECTATOR) - return true; - else return player.hasPotionEffect(PotionEffectType.INVISIBILITY); + return player.hasPotionEffect(PotionEffectType.INVISIBILITY); } return false; } @Override + public boolean isSpectator() { + if(player != null) { + return player.getGameMode() == GameMode.SPECTATOR; + } + return false; + } + @Override public int getSortWeight() { Integer wt = sortWeights.get(getName()); if (wt != null)