From 0de8d22e62ccef4aaff27becf6c8c1d5a4f0294b Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Sat, 9 Aug 2014 00:06:44 -0500 Subject: [PATCH] Changed invis in hub to only be on server npc shops Fixed /a for senior mods and developers. --- .../src/mineplex/core/common/util/F.java | 2 ++ .../hub/modules/VisibilityManager.java | 33 ++++++++++++++---- .../mineplex/hub/server/ServerManager.java | 5 +++ .../mineplex/hub/server/ui/ServerNpcShop.java | 10 ++++++ Website/LOCWebsite.suo | Bin 474624 -> 474624 bytes 5 files changed, 43 insertions(+), 7 deletions(-) diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/F.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/F.java index 13a85fbbd..cb6d3d23e 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/F.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/F.java @@ -106,6 +106,8 @@ public class F { if (rank == Rank.OWNER) return C.rOwner + "Owner"; else if (rank == Rank.ADMIN) return C.rAdmin + "Admin"; + else if (rank == Rank.DEVELOPER) return C.rAdmin + "Developer"; + else if (rank == Rank.SNR_MODERATOR) return C.rMod + "Senior Mod"; else if (rank == Rank.MODERATOR) return C.rMod + "Mod"; else if (rank == Rank.HELPER) return C.rHelp + "Helper"; else return C.rAll + "Player"; diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java index fe53e4134..f0235870d 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java @@ -1,12 +1,15 @@ package mineplex.hub.modules; import java.util.HashMap; +import java.util.HashSet; + import org.bukkit.Material; import org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerQuitEvent; import mineplex.core.MiniPlugin; import mineplex.core.common.util.UtilEvent; @@ -18,13 +21,15 @@ import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.core.common.util.UtilServer; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; - import mineplex.hub.HubManager; public class VisibilityManager extends MiniPlugin { public HubManager Manager; + private HashMap _particle = new HashMap(); + private HashSet _hiddenPlayers = new HashSet(); + public VisibilityManager(HubManager manager) { super("Visibility Manager", manager.GetPlugin()); @@ -32,6 +37,23 @@ public class VisibilityManager extends MiniPlugin Manager = manager; } + public void addHiddenPlayer(Player player) + { + _hiddenPlayers.add(player); + + } + + public void removeHiddenPlayer(Player player) + { + _hiddenPlayers.remove(player); + } + + @EventHandler + public void removeHiddenPlayerOnQuit(PlayerQuitEvent event) + { + _hiddenPlayers.remove(event.getPlayer()); + } + @EventHandler public void UpdateVisibility(UpdateEvent event) { @@ -40,7 +62,7 @@ public class VisibilityManager extends MiniPlugin for (Player player : UtilServer.getPlayers()) { - boolean hideMe = Manager.getPreferences().Get(player).Invisibility; + boolean hideMe = Manager.getPreferences().Get(player).Invisibility || _hiddenPlayers.contains(player); for (Player other : UtilServer.getPlayers()) { @@ -48,8 +70,7 @@ public class VisibilityManager extends MiniPlugin continue; if (hideMe || !Manager.getPreferences().Get(other).ShowPlayers || UtilMath.offset2d(player.getLocation(), Manager.GetSpawn()) == 0 || - Manager.GetTutorial().InTutorial(other) || Manager.GetTutorial().InTutorial(player) || - (player.getOpenInventory().getType() != InventoryType.CRAFTING && player.getOpenInventory().getType() != InventoryType.CREATIVE)) + Manager.GetTutorial().InTutorial(other) || Manager.GetTutorial().InTutorial(player)) { ((CraftPlayer)other).hidePlayer(player, true, false); } @@ -59,9 +80,7 @@ public class VisibilityManager extends MiniPlugin } } } - } - - public HashMap _particle = new HashMap(); + } @EventHandler public void ParticleSwap(PlayerInteractEvent event) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java index 5a9e69501..d24082d65 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java @@ -757,4 +757,9 @@ public class ServerManager extends MiniPlugin { return _serverNpcShopMap.get("Castle Siege"); } + + public HubManager getHubManager() + { + return _hubManager; + } } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcShop.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcShop.java index a9db623a5..f30d3af6f 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcShop.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcShop.java @@ -55,4 +55,14 @@ public class ServerNpcShop extends ShopBase } } } + + protected void OpenShopForPlayer(Player player) + { + Plugin.getHubManager().GetVisibility().addHiddenPlayer(player); + } + + protected void CloseShopForPlayer(Player player) + { + Plugin.getHubManager().GetVisibility().removeHiddenPlayer(player); + } } diff --git a/Website/LOCWebsite.suo b/Website/LOCWebsite.suo index 17c33e71f53fbac230a776f35563b07e3bde6dc2..ed2074901fa85d80cd0449841ec2a31510e5d13d 100644 GIT binary patch delta 13807 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 delta 13527 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 DeNr4Q