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 17c33e71f..ed2074901 100644 Binary files a/Website/LOCWebsite.suo and b/Website/LOCWebsite.suo differ