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 8ded1129..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 @@ -191,12 +191,18 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { - if (player != null) { + if(player != null) { 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.14.4/src/main/resources/configuration.txt b/fabric-1.14.4/src/main/resources/configuration.txt index 20eade27..e1900926 100644 --- a/fabric-1.14.4/src/main/resources/configuration.txt +++ b/fabric-1.14.4/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 a1f18092..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 @@ -191,12 +191,18 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { - if (player != null) { + if(player != null) { 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/resources/configuration.txt b/fabric-1.15.2/src/main/resources/configuration.txt index 20eade27..e1900926 100644 --- a/fabric-1.15.2/src/main/resources/configuration.txt +++ b/fabric-1.15.2/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 16dd4f66..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 @@ -191,12 +191,18 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { - if (player != null) { + if(player != null) { 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/resources/configuration.txt b/fabric-1.16.4/src/main/resources/configuration.txt index 794b1291..b1eb2ccc 100644 --- a/fabric-1.16.4/src/main/resources/configuration.txt +++ b/fabric-1.16.4/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 18ef187b..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 @@ -194,12 +194,18 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { - if (player != null) { + if(player != null) { 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/resources/configuration.txt b/fabric-1.17.1/src/main/resources/configuration.txt index 794b1291..b1eb2ccc 100644 --- a/fabric-1.17.1/src/main/resources/configuration.txt +++ b/fabric-1.17.1/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 8655569c..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 @@ -194,12 +194,18 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { - if (player != null) { + if(player != null) { 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/resources/configuration.txt b/fabric-1.18.2/src/main/resources/configuration.txt index 0d47a67f..1f800bd3 100644 --- a/fabric-1.18.2/src/main/resources/configuration.txt +++ b/fabric-1.18.2/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 2fc42eb1..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 @@ -194,12 +194,18 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { - if (player != null) { + if(player != null) { 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/resources/configuration.txt b/fabric-1.19.1/src/main/resources/configuration.txt index 51067ee9..17c05f3f 100644 --- a/fabric-1.19.1/src/main/resources/configuration.txt +++ b/fabric-1.19.1/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 ab71e4b8..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 @@ -194,12 +194,18 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { - if (player != null) { + if(player != null) { 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/resources/configuration.txt b/fabric-1.19.3/src/main/resources/configuration.txt index 51067ee9..17c05f3f 100644 --- a/fabric-1.19.3/src/main/resources/configuration.txt +++ b/fabric-1.19.3/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 819661f2..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 @@ -194,12 +194,18 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { - if (player != null) { + if(player != null) { 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/resources/configuration.txt b/fabric-1.19.4/src/main/resources/configuration.txt index 51067ee9..17c05f3f 100644 --- a/fabric-1.19.4/src/main/resources/configuration.txt +++ b/fabric-1.19.4/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 83bdf97b..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 @@ -194,12 +194,18 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { - if (player != null) { + if(player != null) { 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/resources/configuration.txt b/fabric-1.19/src/main/resources/configuration.txt index 51067ee9..17c05f3f 100644 --- a/fabric-1.19/src/main/resources/configuration.txt +++ b/fabric-1.19/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active diff --git a/fabric-1.20.2/src/main/java/org/dynmap/fabric_1_20_2/FabricPlayer.java b/fabric-1.20.2/src/main/java/org/dynmap/fabric_1_20_2/FabricPlayer.java index 27666c5a..81bdaaf3 100644 --- a/fabric-1.20.2/src/main/java/org/dynmap/fabric_1_20_2/FabricPlayer.java +++ b/fabric-1.20.2/src/main/java/org/dynmap/fabric_1_20_2/FabricPlayer.java @@ -201,6 +201,13 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { } return false; } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; + } @Override public int getSortWeight() { diff --git a/fabric-1.20.2/src/main/resources/configuration.txt b/fabric-1.20.2/src/main/resources/configuration.txt index 51067ee9..17c05f3f 100644 --- a/fabric-1.20.2/src/main/resources/configuration.txt +++ b/fabric-1.20.2/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 9532648f..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 @@ -196,12 +196,18 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer { @Override public boolean isInvisible() { - if (player != null) { + if(player != null) { 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/resources/configuration.txt b/fabric-1.20/src/main/resources/configuration.txt index 51067ee9..17c05f3f 100644 --- a/fabric-1.20/src/main/resources/configuration.txt +++ b/fabric-1.20/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 f02c9579..9ca75fd1 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 @@ -1327,10 +1327,17 @@ public class DynmapPlugin } @Override public boolean isInvisible() { - if(player != null) { - return player.isInvisible(); - } - return false; + if(player != null) { + return player.isInvisible() + } + return false; + } + @override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator() + } + return false; } @Override public int getSortWeight() { diff --git a/forge-1.12.2/src/main/resources/configuration.txt b/forge-1.12.2/src/main/resources/configuration.txt index 3860f7c5..77eda7b6 100644 --- a/forge-1.12.2/src/main/resources/configuration.txt +++ b/forge-1.12.2/src/main/resources/configuration.txt @@ -68,6 +68,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 b770de74..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 @@ -1286,10 +1286,17 @@ public class DynmapPlugin } @Override public boolean isInvisible() { - if(player != null) { - return player.isInvisible(); - } - return false; + if(player != null) { + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; } @Override public int getSortWeight() { diff --git a/forge-1.14.4/src/main/resources/configuration.txt b/forge-1.14.4/src/main/resources/configuration.txt index 3b1d0c66..1f0f2f1b 100644 --- a/forge-1.14.4/src/main/resources/configuration.txt +++ b/forge-1.14.4/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 7b0301a3..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 @@ -1295,10 +1295,17 @@ public class DynmapPlugin } @Override public boolean isInvisible() { - if(player != null) { - return player.isInvisible(); - } - return false; + if(player != null) { + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; } @Override public int getSortWeight() { diff --git a/forge-1.15.2/src/main/resources/configuration.txt b/forge-1.15.2/src/main/resources/configuration.txt index 3b1d0c66..1f0f2f1b 100644 --- a/forge-1.15.2/src/main/resources/configuration.txt +++ b/forge-1.15.2/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 728504e3..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 @@ -1313,10 +1313,17 @@ public class DynmapPlugin } @Override public boolean isInvisible() { - if(player != null) { - return player.isInvisible(); - } - return false; + if(player != null) { + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; } @Override public int getSortWeight() { diff --git a/forge-1.16.5/src/main/resources/configuration.txt b/forge-1.16.5/src/main/resources/configuration.txt index 300412ab..dfac9fcf 100644 --- a/forge-1.16.5/src/main/resources/configuration.txt +++ b/forge-1.16.5/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 9479e425..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 @@ -1293,10 +1293,17 @@ public class DynmapPlugin } @Override public boolean isInvisible() { - if(player != null) { - return player.isInvisible(); - } - return false; + if(player != null) { + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; } @Override public int getSortWeight() { diff --git a/forge-1.17.1/src/main/resources/configuration.txt b/forge-1.17.1/src/main/resources/configuration.txt index 06aed6d7..5a3f77ff 100644 --- a/forge-1.17.1/src/main/resources/configuration.txt +++ b/forge-1.17.1/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 dde09075..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 @@ -1300,10 +1300,17 @@ public class DynmapPlugin } @Override public boolean isInvisible() { - if(player != null) { - return player.isInvisible(); - } - return false; + if(player != null) { + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; } @Override public int getSortWeight() { diff --git a/forge-1.18.2/src/main/resources/configuration.txt b/forge-1.18.2/src/main/resources/configuration.txt index 300412ab..dfac9fcf 100644 --- a/forge-1.18.2/src/main/resources/configuration.txt +++ b/forge-1.18.2/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 a4ab024d..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 @@ -1300,10 +1300,17 @@ public class DynmapPlugin } @Override public boolean isInvisible() { - if(player != null) { - return player.isInvisible(); - } - return false; + if(player != null) { + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; } @Override public int getSortWeight() { diff --git a/forge-1.19.2/src/main/resources/configuration.txt b/forge-1.19.2/src/main/resources/configuration.txt index 300412ab..dfac9fcf 100644 --- a/forge-1.19.2/src/main/resources/configuration.txt +++ b/forge-1.19.2/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 c314aa76..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 @@ -1302,10 +1302,17 @@ public class DynmapPlugin } @Override public boolean isInvisible() { - if(player != null) { - return player.isInvisible(); - } - return false; + if(player != null) { + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; } @Override public int getSortWeight() { diff --git a/forge-1.19.3/src/main/resources/configuration.txt b/forge-1.19.3/src/main/resources/configuration.txt index 300412ab..dfac9fcf 100644 --- a/forge-1.19.3/src/main/resources/configuration.txt +++ b/forge-1.19.3/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 950ab55d..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 @@ -1300,10 +1300,17 @@ public class DynmapPlugin } @Override public boolean isInvisible() { - if(player != null) { - return player.isInvisible(); - } - return false; + if(player != null) { + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; } @Override public int getSortWeight() { diff --git a/forge-1.19/src/main/resources/configuration.txt b/forge-1.19/src/main/resources/configuration.txt index 300412ab..dfac9fcf 100644 --- a/forge-1.19/src/main/resources/configuration.txt +++ b/forge-1.19/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active diff --git a/forge-1.20.2/src/main/java/org/dynmap/forge_1_20_2/DynmapPlugin.java b/forge-1.20.2/src/main/java/org/dynmap/forge_1_20_2/DynmapPlugin.java index 538d6fbd..3ecfd3de 100644 --- a/forge-1.20.2/src/main/java/org/dynmap/forge_1_20_2/DynmapPlugin.java +++ b/forge-1.20.2/src/main/java/org/dynmap/forge_1_20_2/DynmapPlugin.java @@ -1308,6 +1308,13 @@ public class DynmapPlugin return false; } @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; + } + @Override public int getSortWeight() { Integer wt = sortWeights.get(getName()); if (wt != null) diff --git a/forge-1.20.2/src/main/resources/configuration.txt b/forge-1.20.2/src/main/resources/configuration.txt index 300412ab..dfac9fcf 100644 --- a/forge-1.20.2/src/main/resources/configuration.txt +++ b/forge-1.20.2/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active 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 893535a8..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 @@ -1302,10 +1302,17 @@ public class DynmapPlugin } @Override public boolean isInvisible() { - if(player != null) { - return player.isInvisible(); - } - return false; + if(player != null) { + return player.isInvisible(); + } + return false; + } + @Override + public boolean isSpectator() { + if(player != null) { + return player.isSpectator(); + } + return false; } @Override public int getSortWeight() { diff --git a/forge-1.20/src/main/resources/configuration.txt b/forge-1.20/src/main/resources/configuration.txt index 300412ab..dfac9fcf 100644 --- a/forge-1.20/src/main/resources/configuration.txt +++ b/forge-1.20/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active diff --git a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java index d54154fc..56662ee9 100644 --- a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java +++ b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java @@ -22,14 +22,7 @@ import org.bstats.bukkit.Metrics; import org.bstats.charts.CustomChart; import org.bstats.json.JsonObjectBuilder; import org.bstats.json.JsonObjectBuilder.JsonObject; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Chunk; -import org.bukkit.ChunkSnapshot; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.OfflinePlayer; -import org.bukkit.World; +import org.bukkit.*; import org.bukkit.attribute.Attribute; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -109,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; @@ -768,6 +760,13 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI { 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) diff --git a/spigot/src/main/resources/configuration.txt b/spigot/src/main/resources/configuration.txt index 73529b49..129e0877 100644 --- a/spigot/src/main/resources/configuration.txt +++ b/spigot/src/main/resources/configuration.txt @@ -80,6 +80,8 @@ components: # hideifundercover: 14 # # (Optional) if true, players that are crouching/sneaking will be hidden hideifsneaking: false + # optional, if true, players that are in spectator mode will be hidden + hideifspectator: false # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) protected-player-info: false # If true, hide players with invisibility potion effects active