diff --git a/Plugins/Mineplex.Core/src/mineplex/core/MiniClientPlugin.java b/Plugins/Mineplex.Core/src/mineplex/core/MiniClientPlugin.java index e8dacc082..6061b2d61 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/MiniClientPlugin.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/MiniClientPlugin.java @@ -10,6 +10,7 @@ import org.bukkit.plugin.java.JavaPlugin; public abstract class MiniClientPlugin extends MiniPlugin { + private static Object _clientDataLock = new Object(); private NautHashMap _clientData = new NautHashMap(); public MiniClientPlugin(String moduleName, JavaPlugin plugin) @@ -26,15 +27,21 @@ public abstract class MiniClientPlugin extends MiniPlug @EventHandler public void UnloadPlayer(ClientUnloadEvent event) { - _clientData.remove(event.GetName()); + synchronized (_clientDataLock) + { + _clientData.remove(event.GetName()); + } } public DataType Get(String name) { - if (!_clientData.containsKey(name)) - _clientData.put(name, AddPlayer(name)); - - return _clientData.get(name); + synchronized (_clientDataLock) + { + if (!_clientData.containsKey(name)) + _clientData.put(name, AddPlayer(name)); + + return _clientData.get(name); + } } public DataType Get(Player player) @@ -49,7 +56,10 @@ public abstract class MiniClientPlugin extends MiniPlug protected void Set(String name, DataType data) { - _clientData.put(name, data); + synchronized (_clientDataLock) + { + _clientData.put(name, data); + } } protected abstract DataType AddPlayer(String player); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java b/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java index 469a5edbb..a85a90b73 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java @@ -7,6 +7,7 @@ import java.io.InputStreamReader; import java.net.URL; import java.nio.charset.Charset; import java.security.cert.X509Certificate; +import java.util.Iterator; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; @@ -15,15 +16,13 @@ import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; -import mineplex.core.MiniClientPlugin; +import mineplex.core.MiniPlugin; import mineplex.core.preferences.PreferencesManager; import mineplex.core.recharge.Recharge; import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.UpdateType; import mineplex.core.account.CoreClientManager; -import mineplex.core.account.event.RetrieveClientInformationEvent; import mineplex.core.chat.command.BroadcastCommand; -import mineplex.core.chat.command.FilterChatCommand; import mineplex.core.chat.command.SilenceCommand; import mineplex.core.common.Rank; import mineplex.core.common.util.F; @@ -34,7 +33,6 @@ import mineplex.core.common.util.UtilTime; import org.apache.commons.codec.binary.Base64; import org.bukkit.ChatColor; -import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -46,7 +44,7 @@ import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.JSONValue; -public class Chat extends MiniClientPlugin +public class Chat extends MiniPlugin { private CoreClientManager _clientManager; private PreferencesManager _preferences; @@ -83,14 +81,8 @@ public class Chat extends MiniClientPlugin { AddCommand(new SilenceCommand(this)); AddCommand(new BroadcastCommand(this)); - AddCommand(new FilterChatCommand(this)); } - /* - * @EventHandler public void - * retrieveClientInformation(RetrieveClientInformationEvent event) { - * _repository.loadClientInformation(event.getConnection()); } - */ public void Silence(long duration, boolean inform) { // Set Silenced @@ -172,16 +164,23 @@ public class Chat extends MiniClientPlugin return true; } - - @EventHandler(priority = EventPriority.HIGHEST) - public void loadClientInformation(RetrieveClientInformationEvent event) - { - ChatClient chatClient = new ChatClient(); - chatClient.SetFilterChat(_preferences.Get(event.getPlayerName()).FilterChat); - - Set(event.getPlayerName(), chatClient); - } + @EventHandler + public void removeChat(AsyncPlayerChatEvent event) + { + if (event.isCancelled()) + return; + + if (event.isAsynchronous()) + { + for (Iterator playerIterator = event.getRecipients().iterator(); playerIterator.hasNext();) + { + if (!_preferences.Get(playerIterator.next()).ShowChat) + playerIterator.remove(); + } + } + } + @EventHandler(priority = EventPriority.HIGHEST) public void filterChat(AsyncPlayerChatEvent event) { @@ -227,20 +226,7 @@ public class Chat extends MiniClientPlugin for (Player onlinePlayer : event.getRecipients()) { - if (Get(onlinePlayer).GetFilterChat()) - { - onlinePlayer.sendMessage(String.format(event.getFormat(), event.getPlayer().getDisplayName(), filteredMessage)); - - if (onlinePlayer == event.getPlayer()) - { - onlinePlayer.playSound(onlinePlayer.getLocation(), Sound.NOTE_PIANO, 2f, 2f); - onlinePlayer.sendMessage(F.main("Chat", "You have chat filtering turned on, type /filter to turn it off.")); - } - } - else - { - onlinePlayer.sendMessage(String.format(event.getFormat(), event.getPlayer().getDisplayName(), event.getMessage())); - } + onlinePlayer.sendMessage(String.format(event.getFormat(), event.getPlayer().getDisplayName(), filteredMessage)); } event.setCancelled(true); @@ -301,6 +287,7 @@ public class Chat extends MiniClientPlugin return hasharray; } + @SuppressWarnings("unchecked") private JSONObject buildJsonChatObject(String filtertype, String name, String player, String msg, String server, int rule) { JSONObject message = new JSONObject(); @@ -482,25 +469,4 @@ public class Chat extends MiniClientPlugin { _playerLastMessage.remove(event.getPlayer().getName()); } - - @Override - protected ChatClient AddPlayer(String player) - { - return new ChatClient(); - } - - public void toggleFilterChat(Player caller) - { - _preferences.Get(caller).FilterChat = !_preferences.Get(caller).FilterChat; - _preferences.savePreferences(caller); - - Get(caller).SetFilterChat(!Get(caller).GetFilterChat()); - - if (Get(caller).GetFilterChat()) - caller.playSound(caller.getLocation(), Sound.NOTE_PIANO, 2f, 2f); - else - caller.playSound(caller.getLocation(), Sound.NOTE_PIANO, 1f, 1f); - - caller.sendMessage(F.main("Chat", "You have turned chat filtering " + ChatColor.YELLOW + (Get(caller).GetFilterChat() ? "ON" : "OFF") + ChatColor.GRAY + ".")); - } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/chat/ChatClient.java b/Plugins/Mineplex.Core/src/mineplex/core/chat/ChatClient.java deleted file mode 100644 index cd2a5d9ad..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/chat/ChatClient.java +++ /dev/null @@ -1,16 +0,0 @@ -package mineplex.core.chat; - -public class ChatClient -{ - private boolean _filterChat = false; - - public void SetFilterChat(boolean filterChat) - { - _filterChat = filterChat; - } - - public boolean GetFilterChat() - { - return _filterChat; - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/chat/command/FilterChatCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/chat/command/FilterChatCommand.java deleted file mode 100644 index 35a4c9872..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/chat/command/FilterChatCommand.java +++ /dev/null @@ -1,21 +0,0 @@ -package mineplex.core.chat.command; - -import org.bukkit.entity.Player; - -import mineplex.core.chat.Chat; -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; - -public class FilterChatCommand extends CommandBase -{ - public FilterChatCommand(Chat plugin) - { - super(plugin, Rank.ALL, "filter"); - } - - @Override - public void Execute(Player caller, String[] args) - { - Plugin.toggleFilterChat(caller); - } -} \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/message/MessageManager.java b/Plugins/Mineplex.Core/src/mineplex/core/message/MessageManager.java index b1ad7fda1..ff53acf4e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/message/MessageManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/message/MessageManager.java @@ -17,18 +17,21 @@ import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; import mineplex.core.message.Commands.*; +import mineplex.core.preferences.PreferencesManager; public class MessageManager extends MiniClientPlugin { private LinkedList _randomMessage; private CoreClientManager _clientManager; + private PreferencesManager _preferences; - public MessageManager(JavaPlugin plugin, CoreClientManager clientManager) + public MessageManager(JavaPlugin plugin, CoreClientManager clientManager, PreferencesManager preferences) { super("Message", plugin); _clientManager = clientManager; + _preferences = preferences; } //Module Functions @@ -115,6 +118,12 @@ public class MessageManager extends MiniClientPlugin public void DoMessage(Player from, Player to, String message) { + if (!_preferences.Get(to).PrivateMessaging) + { + UtilPlayer.message(from, C.cPurple + to.getName() + " has private messaging disabled."); + return; + } + //Inform UtilPlayer.message(from, C.cGold + "§l" + from.getName() + " > " + to.getName() + C.cYellow + " §l" + message); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesManager.java b/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesManager.java index ac5791146..3f6ac01d6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesManager.java @@ -2,8 +2,13 @@ package mineplex.core.preferences; import java.util.Map.Entry; +import org.bukkit.ChatColor; +import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.java.JavaPlugin; import mineplex.core.MiniClientPlugin; @@ -11,6 +16,7 @@ import mineplex.core.account.CoreClientManager; import mineplex.core.account.event.RetrieveClientInformationEvent; import mineplex.core.common.util.NautHashMap; import mineplex.core.donation.DonationManager; +import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.preferences.command.PreferencesCommand; import mineplex.core.preferences.ui.PreferencesShop; import mineplex.core.updater.UpdateType; @@ -23,6 +29,8 @@ public class PreferencesManager extends MiniClientPlugin private NautHashMap _saveBuffer = new NautHashMap(); + public boolean GiveItem; + public PreferencesManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager) { super("Preferences", plugin); @@ -83,6 +91,27 @@ public class PreferencesManager extends MiniClientPlugin _repository.saveUserPreferences(bufferCopy); } + + @EventHandler + public void givePlayerItem(PlayerJoinEvent event) + { + if (!GiveItem) + return; + + event.getPlayer().getInventory().setItem(9, ItemStackFactory.Instance.CreateStack(Material.REDSTONE_COMPARATOR.getId(), (byte)0, 1, ChatColor.GREEN + "/prefs")); + } + + @EventHandler(priority = EventPriority.LOWEST) + public void playerInteract(PlayerInteractEvent event) + { + if (!GiveItem) + return; + + if (event.getItem() != null && event.getItem().getType() == Material.REDSTONE_COMPARATOR) + { + _shop.attemptShopOpen(event.getPlayer()); + } + } public void openShop(Player caller) { diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java index 10e5f7f7b..ac3dfc4ec 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java @@ -80,17 +80,17 @@ public class Hub extends JavaPlugin implements INautilusPlugin, IRelation DonationManager donationManager = new DonationManager(this, GetWebServerAddress()); //Other Modules - - Creature creature = new Creature(this); - new MessageManager(this, clientManager); + PreferencesManager preferenceManager = new PreferencesManager(this, clientManager, donationManager); + preferenceManager.GiveItem = true; + new MessageManager(this, clientManager, preferenceManager); + Creature creature = new Creature(this); NpcManager npcManager = new NpcManager(this, creature); new PetManager(this, clientManager, donationManager, creature, GetWebServerAddress()); //Main Modules - PreferencesManager preferenceManager = new PreferencesManager(this, clientManager, donationManager); PacketHandler packetHandler = new PacketHandler(this); PartyManager partyManager = new PartyManager(this, clientManager, preferenceManager); - HubManager hubManager = new HubManager(this, new BlockRestore(this), clientManager, donationManager, new ConditionManager(this), new DisguiseManager(this, packetHandler), new TaskManager(this, GetWebServerAddress()), portal, partyManager); + HubManager hubManager = new HubManager(this, new BlockRestore(this), clientManager, donationManager, new ConditionManager(this), new DisguiseManager(this, packetHandler), new TaskManager(this, GetWebServerAddress()), portal, partyManager, preferenceManager); ServerStatusManager serverStatusManager = new ServerStatusManager(this, new LagMeter(this, clientManager)); QueueManager queueManager = new QueueManager(this, clientManager, donationManager, new EloManager(this), partyManager); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java index 2ccd6f754..a494ad939 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java @@ -1,13 +1,11 @@ package mineplex.hub; import java.util.HashMap; -import java.util.HashSet; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.craftbukkit.v1_7_R3.CraftWorld; import org.bukkit.entity.Egg; @@ -16,15 +14,12 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.block.Action; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.ItemSpawnEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerDropItemEvent; -import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerQuitEvent; @@ -58,15 +53,14 @@ import mineplex.core.disguise.DisguiseManager; import mineplex.core.disguise.disguises.DisguisePlayer; import mineplex.core.disguise.disguises.DisguiseSlime; import mineplex.core.donation.DonationManager; -import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.logger.Logger; import mineplex.core.portal.Portal; +import mineplex.core.preferences.PreferencesManager; import mineplex.core.recharge.Recharge; import mineplex.core.stats.StatsManager; import mineplex.core.task.TaskManager; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import mineplex.hub.commands.ForcefieldToggle; import mineplex.hub.commands.GadgetToggle; import mineplex.hub.gadget.GadgetManager; import mineplex.hub.modules.*; @@ -96,6 +90,7 @@ public class HubManager extends MiniClientPlugin private TutorialManager _tutorialManager; private TextManager _textCreator; private ParkourManager _parkour; + private PreferencesManager _preferences; private Location _spawn; private int _scoreboardTick = 0; @@ -108,14 +103,10 @@ public class HubManager extends MiniClientPlugin private HashMap _portalTime = new HashMap(); - private int _slot = 7; - private HashSet _disabled = new HashSet(); - //Admin private boolean _gadgetsEnabled = true; - private HashSet _forcefield = new HashSet(); - public HubManager(JavaPlugin plugin, BlockRestore blockRestore, CoreClientManager clientManager, DonationManager donationManager, ConditionManager conditionManager, DisguiseManager disguiseManager, TaskManager taskManager, Portal portal, PartyManager partyManager) + public HubManager(JavaPlugin plugin, BlockRestore blockRestore, CoreClientManager clientManager, DonationManager donationManager, ConditionManager conditionManager, DisguiseManager disguiseManager, TaskManager taskManager, Portal portal, PartyManager partyManager, PreferencesManager preferences) { super("Hub Manager", plugin); @@ -141,6 +132,7 @@ public class HubManager extends MiniClientPlugin _gadgetManager = new GadgetManager(this, _mountManager); _partyManager = partyManager; + _preferences = preferences; _tutorialManager = new TutorialManager(this, donationManager, taskManager, _textCreator); _visibilityManager = new VisibilityManager(this); @@ -153,7 +145,6 @@ public class HubManager extends MiniClientPlugin public void AddCommands() { AddCommand(new GadgetToggle(this)); - AddCommand(new ForcefieldToggle(this)); } @EventHandler(priority = EventPriority.HIGHEST) @@ -164,76 +155,18 @@ public class HubManager extends MiniClientPlugin event.setMotd("Restarting soon"); } } - - @EventHandler - public void BumpJoin(PlayerJoinEvent event) - { - event.getPlayer().getInventory().setItem(_slot, ItemStackFactory.Instance.CreateStack(Material.SLIME_BALL, (byte)0, 1, - C.cYellow + "Stacker" + C.cWhite + " - " + C.cGreen + "Enabled")); - } - - @EventHandler - public void BumpQuit(PlayerQuitEvent event) - { - _disabled.remove(event.getPlayer()); - } - + public boolean BumpDisabled(Entity ent) { if (ent == null) return false; - return _disabled.contains(ent); - } - - @EventHandler - public void BumpToggle(PlayerInteractEvent event) - { - if (event.getAction() == Action.PHYSICAL) - return; - - Player player = event.getPlayer(); - - if (player.getInventory().getHeldItemSlot() != _slot) - return; - - event.setCancelled(true); - - if (_disabled.remove(player)) + if (ent instanceof Player) { - UtilPlayer.message(player, F.main("Hub Games", "You are back in the Hub Games!")); - - player.getInventory().setItem(_slot, ItemStackFactory.Instance.CreateStack(Material.SLIME_BALL, (byte)0, 1, - C.cYellow + "Stacker" + C.cWhite + " - " + C.cGreen + "Enabled")); - } - else - { - _disabled.add(player); - UtilPlayer.message(player, F.main("Hub Games", "You are no longer partaking in Hub Games.")); - - player.getInventory().setItem(_slot, ItemStackFactory.Instance.CreateStack(Material.MAGMA_CREAM, (byte)0, 1, - C.cYellow + "Stacker" + C.cWhite + " - " + C.cRed + "Disabled")); - } - } - - @EventHandler - public void orderThatItem(final PlayerDropItemEvent event) - { - if (event.getItemDrop().getItemStack().getType() == Material.REDSTONE_TORCH_OFF || event.getItemDrop().getItemStack().getType() == Material.REDSTONE_TORCH_ON) - { - Bukkit.getScheduler().scheduleSyncDelayedTask(GetPlugin(), new Runnable() - { - public void run() - { - if (event.getPlayer().isOnline()) - { - event.getPlayer().getInventory().remove(event.getItemDrop().getItemStack().getType()); - event.getPlayer().getInventory().setItem(_slot, ItemStackFactory.Instance.CreateStack(event.getItemDrop().getItemStack().getType(), (byte)0, 1, ChatColor.RESET + C.cYellow + "Stacker" + C.cWhite + (_disabled.contains(event.getPlayer()) ? C.cWhite + " - " + C.cRed + "Disabled" : " - " + C.cGreen + "Enabled"))); - event.getPlayer().updateInventory(); - } - } - }); + return !_preferences.Get((Player)ent).HubGames; } + + return true; } @EventHandler @@ -399,48 +332,6 @@ public class HubManager extends MiniClientPlugin throw ex; } } - - /* XXX TOURNEY - @EventHandler(priority = EventPriority.HIGHEST) - public void TournamentWins(PlayerJoinEvent event) - { - for (Player player : Bukkit.getOnlinePlayers()) - { - Scoreboard board = player.getScoreboard(); - if (board == null) - continue; - - Objective obj = board.getObjective(DisplaySlot.BELOW_NAME); - if (obj == null) - { - obj = board.registerNewObjective("SG Tourney Kills", "dummy"); - obj.setDisplaySlot(DisplaySlot.BELOW_NAME); - } - - obj.getScore(event.getPlayer()).setScore(GetStats().getStat(event.getPlayer(), "Pvp", "Kills")); - } - - if (event.getPlayer().getScoreboard() != null) - { - Scoreboard board = event.getPlayer().getScoreboard(); - - Objective obj = board.getObjective(DisplaySlot.BELOW_NAME); - if (obj == null) - { - obj = board.registerNewObjective("SG Tournament Kills", "dummy"); - obj.setDisplaySlot(DisplaySlot.BELOW_NAME); - } - - for (Player player : Bukkit.getOnlinePlayers()) - { - if (player.equals(event.getPlayer())) - continue; - - obj.getScore(player).setScore(GetStats().getStat(player, "Pvp", "Kills")); - } - } - } - */ @EventHandler public void PlayerQuit(PlayerQuitEvent event) @@ -456,7 +347,6 @@ public class HubManager extends MiniClientPlugin _scoreboards.remove(event.getPlayer()); _portalTime.remove(event.getPlayer().getName()); - _forcefield.remove(event.getPlayer()); } @EventHandler @@ -752,6 +642,11 @@ public class HubManager extends MiniClientPlugin return _parkour; } + public PreferencesManager getPreferences() + { + return _preferences; + } + public Location GetSpawn() { return _spawn.clone(); @@ -799,7 +694,7 @@ public class HubManager extends MiniClientPlugin if (BumpDisabled(ent)) return false; - if (GetVisibility().IsHiding(ent)) + if (!getPreferences().Get((Player)ent).ShowPlayers) return false; return true; @@ -855,38 +750,32 @@ public class HubManager extends MiniClientPlugin this._gadgetsEnabled = _enabled; } - public boolean ToggleForcefield(Player caller) - { - if (_forcefield.add(caller)) - return true; - - _forcefield.remove(caller); - return false; - } - @EventHandler public void ForcefieldUpdate(UpdateEvent event) { if (event.getType() != UpdateType.FAST) return; - for (Player player : _forcefield) + for (Player player : UtilServer.getPlayers()) { - for (Player other : UtilServer.getPlayers()) + if (_preferences.Get(player).HubForcefield) { - if (player.equals(other)) - continue; - - if (UtilMath.offset(other, player) > 5) - continue; - - if (GetClients().Get(other).GetRank().Has(Rank.ADMIN)) - continue; - - if (Recharge.Instance.use(other, "Forcefield Bump", 500, false, false)) + for (Player other : UtilServer.getPlayers()) { - UtilAction.velocity(other, UtilAlg.getTrajectory2d(player, other), 1.6, true, 0.8, 0, 10, true); - other.getWorld().playSound(other.getLocation(), Sound.CHICKEN_EGG_POP, 2f, 0.5f); + if (player.equals(other)) + continue; + + if (UtilMath.offset(other, player) > 5) + continue; + + if (GetClients().Get(other).GetRank().Has(Rank.ADMIN)) + continue; + + if (Recharge.Instance.use(other, "Forcefield Bump", 500, false, false)) + { + UtilAction.velocity(other, UtilAlg.getTrajectory2d(player, other), 1.6, true, 0.8, 0, 10, true); + other.getWorld().playSound(other.getLocation(), Sound.CHICKEN_EGG_POP, 2f, 0.5f); + } } } } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/commands/ForcefieldToggle.java b/Plugins/Mineplex.Hub/src/mineplex/hub/commands/ForcefieldToggle.java deleted file mode 100644 index 652351a8a..000000000 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/commands/ForcefieldToggle.java +++ /dev/null @@ -1,24 +0,0 @@ -package mineplex.hub.commands; - -import org.bukkit.entity.Player; - -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; -import mineplex.core.common.util.C; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; -import mineplex.hub.HubManager; - -public class ForcefieldToggle extends CommandBase -{ - public ForcefieldToggle(HubManager plugin) - { - super(plugin, Rank.ADMIN, new String[] {"forcefield", "ff"}); - } - - @Override - public void Execute(Player caller, String[] args) - { - UtilPlayer.message(caller, C.Bold + "Forcefield: " + F.tf(Plugin.ToggleForcefield(caller))); - } -} diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java index 059e2ffbd..2515865c1 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java @@ -1,35 +1,21 @@ package mineplex.hub.modules; import java.util.HashMap; -import java.util.HashSet; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer; -import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.event.block.Action; import org.bukkit.event.inventory.InventoryType; -import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; import mineplex.core.MiniPlugin; -import mineplex.core.common.util.C; -import mineplex.core.common.util.F; import mineplex.core.common.util.UtilEvent; import mineplex.core.common.util.UtilGear; -import mineplex.core.common.util.UtilInv; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilEvent.ActionType; import mineplex.core.common.util.UtilParticle.ParticleType; -import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; -import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; @@ -39,79 +25,12 @@ public class VisibilityManager extends MiniPlugin { public HubManager Manager; - private HashSet _hide = new HashSet(); - - private int _slot = 8; - public VisibilityManager(HubManager manager) { super("Visibility Manager", manager.GetPlugin()); Manager = manager; } - - @EventHandler - public void PlayerJoin(PlayerJoinEvent event) - { - event.getPlayer().getInventory().setItem(_slot, ItemStackFactory.Instance.CreateStack(Material.EYE_OF_ENDER, (byte)0, 1, - C.cYellow + "Show Players" + C.cWhite + " - " + C.cGreen + "Enabled")); - } - - @EventHandler - public void PlayerQuit(PlayerQuitEvent event) - { - _hide.remove(event.getPlayer()); - } - - @EventHandler - public void orderThatItem(final PlayerDropItemEvent event) - { - if (event.getItemDrop().getItemStack().getType() == Material.EYE_OF_ENDER || event.getItemDrop().getItemStack().getType() == Material.ENDER_PEARL) - { - Bukkit.getScheduler().scheduleSyncDelayedTask(GetPlugin(), new Runnable() - { - public void run() - { - if (event.getPlayer().isOnline()) - { - event.getPlayer().getInventory().remove(event.getItemDrop().getItemStack().getType()); - event.getPlayer().getInventory().setItem(_slot, ItemStackFactory.Instance.CreateStack(event.getItemDrop().getItemStack().getType(), (byte)0, 1, ChatColor.RESET + C.cYellow + "Show Players" + C.cWhite + " - " + (_hide.contains(event.getPlayer()) ? C.cRed + "Disabled" : C.cGreen + "Enabled"))); - event.getPlayer().updateInventory(); - } - } - }); - } - } - - @EventHandler - public void ToggleVisibility(PlayerInteractEvent event) - { - if (event.getAction() == Action.PHYSICAL) - return; - - Player player = event.getPlayer(); - - if (player.getInventory().getHeldItemSlot() != _slot) - return; - - event.setCancelled(true); - - if (_hide.remove(player)) - { - UtilPlayer.message(player, F.main("Visibility", "All players are now visible.")); - - player.getInventory().setItem(_slot, ItemStackFactory.Instance.CreateStack(Material.EYE_OF_ENDER, (byte)0, 1, - C.cYellow + "Show Players" + C.cWhite + " - " + C.cGreen + "Enabled")); - } - else - { - _hide.add(player); - UtilPlayer.message(player, F.main("Visibility", "All players are now invisible.")); - - player.getInventory().setItem(_slot, ItemStackFactory.Instance.CreateStack(Material.ENDER_PEARL, (byte)0, 1, - C.cYellow + "Show Players" + C.cWhite + " - " + C.cRed + "Disabled")); - } - } @EventHandler public void UpdateVisibility(UpdateEvent event) @@ -121,12 +40,14 @@ public class VisibilityManager extends MiniPlugin for (Player player : UtilServer.getPlayers()) { + boolean hideMe = Manager.getPreferences().Get(player).Invisibility; + for (Player other : UtilServer.getPlayers()) { if (player.equals(other)) continue; - if (_hide.contains(other) || UtilMath.offset(player.getLocation(), Manager.GetSpawn()) < 4 || + if (hideMe || !Manager.getPreferences().Get(other).ShowPlayers || UtilMath.offset(player.getLocation(), Manager.GetSpawn()) < 4 || Manager.GetTutorial().InTutorial(other) || Manager.GetTutorial().InTutorial(player) || (player.getOpenInventory().getType() != InventoryType.CRAFTING && player.getOpenInventory().getType() != InventoryType.CREATIVE)) { @@ -139,11 +60,6 @@ public class VisibilityManager extends MiniPlugin } } } - - public boolean IsHiding(LivingEntity ent) - { - return _hide.contains(ent); - } public HashMap _particle = new HashMap(); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/party/PartyManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/party/PartyManager.java index 35c2616f7..eeaeed546 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/party/PartyManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/party/PartyManager.java @@ -43,6 +43,11 @@ public class PartyManager extends MiniPlugin { return _clientManager; } + + public PreferencesManager getPreferenceManager() + { + return _preferenceManager; + } public Party CreateParty(Player player) { diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/party/commands/PartyCommand.java b/Plugins/Mineplex.Hub/src/mineplex/hub/party/commands/PartyCommand.java index c242acd33..c9f61da49 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/party/commands/PartyCommand.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/party/commands/PartyCommand.java @@ -90,14 +90,11 @@ public class PartyCommand extends CommandBase return; } - //YouTuber - if (Plugin.GetClients().Get(target).GetRank() == Rank.YOUTUBE) + // Preference check + if (!Plugin.getPreferenceManager().Get(target).PartyRequests) { - if (Plugin.GetClients().Get(caller).GetRank().Has(Rank.YOUTUBE)) - { - UtilPlayer.message(caller, F.main("Stacker", "You may not party with " + F.name(UtilEnt.getName(target)) + "! Leave him/her alone!")); - return; - } + UtilPlayer.message(caller, F.main("Party", "You may not party with " + F.name(UtilEnt.getName(target)) + "! They are not accepting party requests!")); + return; } //Invite or Suggest diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java index 696737858..c2bef992f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java @@ -27,6 +27,7 @@ import mineplex.core.monitor.LagMeter; import mineplex.core.npc.NpcManager; import mineplex.core.packethandler.PacketHandler; import mineplex.core.portal.Portal; +import mineplex.core.preferences.PreferencesManager; import mineplex.core.punish.Punish; import mineplex.core.recharge.Recharge; import mineplex.core.spawn.Spawn; @@ -76,7 +77,8 @@ public class Arcade extends JavaPlugin implements INautilusPlugin _donationManager = new DonationManager(this, GetWebServerAddress()); - new MessageManager(this, _clientManager); + PreferencesManager preferences = new PreferencesManager(this, _clientManager, _donationManager); + new MessageManager(this, _clientManager, preferences); AntiStack antistack = new AntiStack(this); @@ -96,7 +98,7 @@ public class Arcade extends JavaPlugin implements INautilusPlugin AntiHack.Initialize(this, punish, portal); //Arcade Manager - _gameManager = new ArcadeManager(this, serverStatusManager, ReadServerConfig(), _clientManager, _donationManager, _damageManager, disguiseManager, creature, teleport, new Blood(this), antistack, portal, packetHandler, GetWebServerAddress()); + _gameManager = new ArcadeManager(this, serverStatusManager, ReadServerConfig(), _clientManager, _donationManager, _damageManager, disguiseManager, creature, teleport, new Blood(this), antistack, portal, packetHandler, preferences, GetWebServerAddress()); new MemoryFix(this); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java index eb27348a0..ad2020c80 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java @@ -121,7 +121,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation //Games private Game _game; - public ArcadeManager(Arcade plugin, ServerStatusManager serverStatusManager, GameServerConfig serverConfig, CoreClientManager clientManager, DonationManager donationManager, DamageManager damageManager, DisguiseManager disguiseManager, Creature creature, Teleport teleport, Blood blood, AntiStack antistack, Portal portal, PacketHandler packetHandler, String webAddress) + public ArcadeManager(Arcade plugin, ServerStatusManager serverStatusManager, GameServerConfig serverConfig, CoreClientManager clientManager, DonationManager donationManager, DamageManager damageManager, DisguiseManager disguiseManager, Creature creature, Teleport teleport, Blood blood, AntiStack antistack, Portal portal, PacketHandler packetHandler, PreferencesManager preferences, String webAddress) { super("Game Manager", plugin); @@ -152,7 +152,6 @@ public class ArcadeManager extends MiniPlugin implements IRelation _clientManager = clientManager; - PreferencesManager preferences = new PreferencesManager(plugin, clientManager, donationManager); _chat = new Chat(plugin, _clientManager, preferences, serverStatusManager.getCurrentServerName()); _creature = creature;