From 7c9dc87fcbebe39cbf176ec00f1aecd2971fb760 Mon Sep 17 00:00:00 2001 From: NEZNAMY Date: Tue, 9 Aug 2022 14:12:14 +0200 Subject: [PATCH] NameTags - Make canSeeFriendlyInvisibles flag configurable --- bukkit/src/main/resources/bukkitconfig.yml | 1 + bungeecord/src/main/resources/proxyconfig.yml | 1 + .../tab/shared/features/NickCompatibility.java | 2 +- .../neznamy/tab/shared/features/nametags/NameTag.java | 11 ++++++++--- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/bukkit/src/main/resources/bukkitconfig.yml b/bukkit/src/main/resources/bukkitconfig.yml index 080e43b19..f10dbf669 100644 --- a/bukkit/src/main/resources/bukkitconfig.yml +++ b/bukkit/src/main/resources/bukkitconfig.yml @@ -48,6 +48,7 @@ scoreboard-teams: - "GROUPS:owner,admin,mod,helper,builder,vip,default" - "PLACEHOLDER_A_TO_Z:%player%" case-sensitive-sorting: true + can-see-friendly-invisibles: false disable-in-worlds: - disabledworld # https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Unlimited-nametag-mode diff --git a/bungeecord/src/main/resources/proxyconfig.yml b/bungeecord/src/main/resources/proxyconfig.yml index 2d47880e5..ee5493b5a 100644 --- a/bungeecord/src/main/resources/proxyconfig.yml +++ b/bungeecord/src/main/resources/proxyconfig.yml @@ -52,6 +52,7 @@ scoreboard-teams: - "GROUPS:owner,admin,mod,helper,builder,vip,default" - "PLACEHOLDER_A_TO_Z:%player%" case-sensitive-sorting: true + can-see-friendly-invisibles: false disable-in-worlds: - disabledworld disable-in-servers: diff --git a/shared/src/main/java/me/neznamy/tab/shared/features/NickCompatibility.java b/shared/src/main/java/me/neznamy/tab/shared/features/NickCompatibility.java index 00ffdb07f..224429ca2 100644 --- a/shared/src/main/java/me/neznamy/tab/shared/features/NickCompatibility.java +++ b/shared/src/main/java/me/neznamy/tab/shared/features/NickCompatibility.java @@ -67,7 +67,7 @@ public class NickCompatibility extends TabFeature { String replacedPrefix = player.getProperty(TabConstants.Property.TAGPREFIX).getFormat(viewer); String replacedSuffix = player.getProperty(TabConstants.Property.TAGSUFFIX).getFormat(viewer); viewer.sendCustomPacket(new PacketPlayOutScoreboardTeam(player.getTeamName(), replacedPrefix, replacedSuffix, nameTags.translate(nameTags.getTeamVisibility(player, viewer)), - nameTags.translate(nameTags.getCollisionManager().getCollision(player)), Collections.singletonList(player.getNickname()), 2), this); + nameTags.translate(nameTags.getCollisionManager().getCollision(player)), Collections.singletonList(player.getNickname()), nameTags.getTeamOptions()), this); } } if (belowname != null) { diff --git a/shared/src/main/java/me/neznamy/tab/shared/features/nametags/NameTag.java b/shared/src/main/java/me/neznamy/tab/shared/features/nametags/NameTag.java index 089a56a35..4f07eb5e7 100644 --- a/shared/src/main/java/me/neznamy/tab/shared/features/nametags/NameTag.java +++ b/shared/src/main/java/me/neznamy/tab/shared/features/nametags/NameTag.java @@ -21,6 +21,7 @@ public class NameTag extends TabFeature implements TeamManager { private final boolean invisibleNameTags = TAB.getInstance().getConfiguration().getConfig().getBoolean("scoreboard-teams.invisible-nametags", false); private final boolean collisionRule = TAB.getInstance().getConfiguration().getConfig().getBoolean("scoreboard-teams.enable-collision", true); + private final boolean canSeeFriendlyInvisibles = TAB.getInstance().getConfig().getBoolean("scoreboard-teams.can-see-friendly-invisibles", false); private final Sorting sorting = new Sorting(this); private final CollisionManager collisionManager = new CollisionManager(this, collisionRule); @@ -245,7 +246,7 @@ public class NameTag extends TabFeature implements TeamManager { String currentPrefix = tagPrefix.getFormat(viewer); String currentSuffix = tagSuffix.getFormat(viewer); boolean visible = getTeamVisibility(p, viewer); - viewer.sendCustomPacket(new PacketPlayOutScoreboardTeam(p.getTeamName(), currentPrefix, currentSuffix, translate(visible), translate(collisionManager.getCollision(p)), 2), TabConstants.PacketCategory.NAMETAGS_TEAM_UPDATE); + viewer.sendCustomPacket(new PacketPlayOutScoreboardTeam(p.getTeamName(), currentPrefix, currentSuffix, translate(visible), translate(collisionManager.getCollision(p)), getTeamOptions()), TabConstants.PacketCategory.NAMETAGS_TEAM_UPDATE); } RedisSupport redis = (RedisSupport) TAB.getInstance().getFeatureManager().getFeature(TabConstants.Feature.REDIS_BUNGEE); if (redis != null) redis.updateNameTag(p, p.getProperty(TabConstants.Property.TAGPREFIX).get(), p.getProperty(TabConstants.Property.TAGSUFFIX).get()); @@ -255,7 +256,7 @@ public class NameTag extends TabFeature implements TeamManager { boolean visible = getTeamVisibility(p, viewer); String currentPrefix = p.getProperty(TabConstants.Property.TAGPREFIX).getFormat(viewer); String currentSuffix = p.getProperty(TabConstants.Property.TAGSUFFIX).getFormat(viewer); - viewer.sendCustomPacket(new PacketPlayOutScoreboardTeam(p.getTeamName(), currentPrefix, currentSuffix, translate(visible), translate(collisionManager.getCollision(p)), 2), TabConstants.PacketCategory.NAMETAGS_TEAM_UPDATE); + viewer.sendCustomPacket(new PacketPlayOutScoreboardTeam(p.getTeamName(), currentPrefix, currentSuffix, translate(visible), translate(collisionManager.getCollision(p)), getTeamOptions()), TabConstants.PacketCategory.NAMETAGS_TEAM_UPDATE); } public void unregisterTeam(TabPlayer p) { @@ -276,7 +277,7 @@ public class NameTag extends TabFeature implements TeamManager { String replacedPrefix = p.getProperty(TabConstants.Property.TAGPREFIX).getFormat(viewer); String replacedSuffix = p.getProperty(TabConstants.Property.TAGSUFFIX).getFormat(viewer); viewer.sendCustomPacket(new PacketPlayOutScoreboardTeam(p.getTeamName(), replacedPrefix, replacedSuffix, translate(getTeamVisibility(p, viewer)), - translate(collisionManager.getCollision(p)), Collections.singletonList(p.getNickname()), 2), TabConstants.PacketCategory.NAMETAGS_TEAM_REGISTER); + translate(collisionManager.getCollision(p)), Collections.singletonList(p.getNickname()), getTeamOptions()), TabConstants.PacketCategory.NAMETAGS_TEAM_REGISTER); } private void updateTeam(TabPlayer p) { @@ -318,6 +319,10 @@ public class NameTag extends TabFeature implements TeamManager { return collisionManager; } + public int getTeamOptions() { + return canSeeFriendlyInvisibles ? 2 : 0; + } + @Override public void setPrefix(TabPlayer player, String prefix) { Preconditions.checkLoaded(player);