From b6d33010ca5d1e5ae37b8e063bfcf6a0da59204e Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Fri, 27 Sep 2013 12:40:09 -0700 Subject: [PATCH 1/5] - Lava parkour fire ticks are no more - Lava gem rewards on npcs reflect actual value (1000 and 4000) - Can't carry people into parkour areas now Removed unused code with Portal Added portal functionality for server quick join Disabled SG text Updated quick game menu text. --- .../src/mineplex/core/portal/Portal.java | 246 ---------------- .../core/portal/commands/CreateCommand.java | 37 --- .../core/portal/commands/PortalCommand.java | 24 -- .../core/portal/commands/ToggleCommand.java | 21 -- .../core/status/ServerStatusManager.java | 13 +- .../Mineplex.Hub/src/mineplex/hub/Hub.java | 5 +- .../src/mineplex/hub/HubManager.java | 12 +- .../mineplex/hub/modules/ParkourManager.java | 32 +- .../mineplex/hub/modules/StackerManager.java | 3 + .../src/mineplex/hub/modules/TextManager.java | 8 +- .../mineplex/hub/server/ServerManager.java | 277 ++++++++++-------- .../hub/server/command/AddServerCommand.java | 55 ---- .../hub/server/command/ServerNpcCommand.java | 1 - .../hub/server/ui/ServerGameMenu.java | 56 +++- 14 files changed, 266 insertions(+), 524 deletions(-) delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/portal/commands/CreateCommand.java delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/portal/commands/PortalCommand.java delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/portal/commands/ToggleCommand.java delete mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/command/AddServerCommand.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/portal/Portal.java b/Plugins/Mineplex.Core/src/mineplex/core/portal/Portal.java index 4b033077f..fa23d5f50 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/portal/Portal.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/portal/Portal.java @@ -1,43 +1,17 @@ package mineplex.core.portal; -import java.io.BufferedReader; -import java.io.BufferedWriter; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileWriter; import java.io.IOException; -import java.io.InputStreamReader; -import java.util.AbstractMap; import java.util.HashSet; -import java.util.Map.Entry; - import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.Action; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.util.Vector; - import mineplex.core.MiniPlugin; -import mineplex.core.arena.Region; -import mineplex.core.common.Rank; -import mineplex.core.common.util.F; -import mineplex.core.common.util.NautHashMap; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.portal.commands.PortalCommand; public class Portal extends MiniPlugin { - private NautHashMap _portalServerMap = new NautHashMap(); - private NautHashMap> _portalSetupMap = new NautHashMap>(); private HashSet _connectingPlayers = new HashSet(); public Portal(JavaPlugin plugin) @@ -45,51 +19,6 @@ public class Portal extends MiniPlugin super("Portal", plugin); Bukkit.getMessenger().registerOutgoingPluginChannel(GetPlugin(), "BungeeCord"); - - LoadPortals(); - } - - public void AddCommands() - { - AddCommand(new PortalCommand(this)); - } - - @EventHandler - public void OnPlayerMove(PlayerMoveEvent event) - { - for (Region region : _portalServerMap.keySet()) - { - if (region.Contains(event.getTo().toVector())) - { - SendPlayerToServer(event.getPlayer(), _portalServerMap.get(region)); - break; - } - } - } - - @EventHandler - public void OnPlayerInteract(PlayerInteractEvent event) - { - Player player = event.getPlayer(); - - if (player.isOp() && _portalSetupMap.containsKey(player.getName())) - { - if (player.getItemInHand() != null && player.getItemInHand().getType() == Material.BLAZE_ROD) - { - if (event.getAction() == Action.LEFT_CLICK_BLOCK) - { - _portalSetupMap.put(player.getName(), new AbstractMap.SimpleEntry(event.getClickedBlock().getLocation(), null)); - player.sendMessage(F.main(GetName(), "Set first point.")); - } - else if (event.getAction() == Action.RIGHT_CLICK_BLOCK) - { - _portalSetupMap.get(player.getName()).setValue(event.getClickedBlock().getLocation()); - player.sendMessage(F.main(GetName(), "Set second point.")); - } - - event.setCancelled(true); - } - } } public void SendAllPlayers(String serverName) @@ -140,179 +69,4 @@ public class Portal extends MiniPlugin } }, 20L); } - - public void Help(Player caller, String message) - { - UtilPlayer.message(caller, F.main(_moduleName, "Commands List:")); - UtilPlayer.message(caller, F.help("/portal toggle", "Turn off and on Portal mode.", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/portal create ", "Creates portal to name server.", Rank.OWNER)); - - if (message != null) - UtilPlayer.message(caller, F.main(_moduleName, ChatColor.RED + message)); - } - - public void Help(Player caller) - { - Help(caller, null); - } - - public void LoadPortals() - { - FileInputStream fstream = null; - BufferedReader br = null; - - try - { - File portalsFile = new File("portals.dat"); - - if (portalsFile.exists()) - { - fstream = new FileInputStream(portalsFile); - br = new BufferedReader(new InputStreamReader(fstream)); - - String line = br.readLine(); - - while (line != null) - { - Region region = ParseRegion(line); - - _portalServerMap.put(region, region.GetName()); - - line = br.readLine(); - } - } - } - catch (Exception e) - { - System.out.println(F.main(GetName(), "Error parsing portals file.")); - } - finally - { - if (br != null) - { - try - { - br.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - if (fstream != null) - { - try - { - fstream.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - } - } - - public void SavePortals() - { - FileWriter fstream = null; - BufferedWriter out = null; - - try - { - fstream = new FileWriter("portals.dat"); - out = new BufferedWriter(fstream); - - for (Region region : _portalServerMap.keySet()) - { - out.write(region.GetMinimumPoint().getBlockX() + " " + region.GetMinimumPoint().getBlockY() + " " + region.GetMinimumPoint().getBlockZ() + ", " + region.GetMaximumPoint().getBlockX() + " " + region.GetMaximumPoint().getBlockY() + " " + region.GetMaximumPoint().getBlockZ() + ", " + region.GetName()); - out.newLine(); - } - - out.close(); - } - catch (Exception e) - { - System.err.println("Portals Save Error: " + e.getMessage()); - } - finally - { - if (out != null) - { - try - { - out.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - if (fstream != null) - { - try - { - fstream.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - } - } - - private Region ParseRegion(String value) - { - String [] parts = value.split(","); - - Vector pointOne = ParseVector(parts[0].trim()); - Vector pointTwo = ParseVector(parts[1].trim()); - - return new Region(parts.length == 3 ? parts[2].trim() : "Null", pointOne, pointTwo); - } - - private Vector ParseVector(String vectorString) - { - Vector vector = new Vector(); - - String [] parts = vectorString.split(" "); - - vector.setX(Double.parseDouble(parts[0])); - vector.setY(Double.parseDouble(parts[1])); - vector.setZ(Double.parseDouble(parts[2])); - - return vector; - } - - public void ToggleSetupAdmin(Player caller) - { - if (_portalSetupMap.containsKey(caller.getName())) - { - _portalSetupMap.remove(caller.getName()); - caller.sendMessage(F.main(GetName(), "Disabled Portal Setup.")); - } - else - { - _portalSetupMap.put(caller.getName(), new AbstractMap.SimpleEntry(null, null)); - caller.sendMessage(F.main(GetName(), "Enabled Portal Setup.")); - } - } - - public boolean IsAdminPortalValid(Player caller) - { - return _portalSetupMap.containsKey(caller.getName()) && _portalSetupMap.get(caller.getName()).getKey() != null && _portalSetupMap.get(caller.getName()).getValue() != null; - } - - public void CreatePortal(Player caller, String name) - { - Vector first = _portalSetupMap.get(caller.getName()).getKey().toVector(); - Vector second = _portalSetupMap.get(caller.getName()).getValue().toVector(); - - _portalServerMap.put(new Region(name, first, second), name); - caller.sendMessage(F.main(GetName(), "Created '" + name + "' portal at (" + first.toString() + ") and (" + second.toString() + ".")); - SavePortals(); - } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/CreateCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/CreateCommand.java deleted file mode 100644 index 18757786a..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/CreateCommand.java +++ /dev/null @@ -1,37 +0,0 @@ -package mineplex.core.portal.commands; - -import org.bukkit.entity.Player; - -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; -import mineplex.core.portal.Portal; - -public class CreateCommand extends CommandBase -{ - public CreateCommand(Portal plugin) - { - super(plugin, Rank.ADMIN, "create"); - } - - @Override - public void Execute(final Player caller, String[] args) - { - if (args == null) - { - Plugin.Help(caller); - } - else - { - if (!Plugin.IsAdminPortalValid(caller)) - { - Plugin.Help(caller, "You don't have two points set. Use Blaze rod to set them."); - } - else - { - String serverName = args[0]; - - Plugin.CreatePortal(caller, serverName); - } - } - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/PortalCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/PortalCommand.java deleted file mode 100644 index 22864f2f4..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/PortalCommand.java +++ /dev/null @@ -1,24 +0,0 @@ -package mineplex.core.portal.commands; - -import org.bukkit.entity.Player; - -import mineplex.core.command.MultiCommandBase; -import mineplex.core.common.Rank; -import mineplex.core.portal.Portal; - -public class PortalCommand extends MultiCommandBase -{ - public PortalCommand(Portal plugin) - { - super(plugin, Rank.ADMIN, "portal"); - - AddCommand(new CreateCommand(plugin)); - AddCommand(new ToggleCommand(plugin)); - } - - @Override - protected void Help(Player caller, String[] args) - { - Plugin.Help(caller); - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/ToggleCommand.java b/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/ToggleCommand.java deleted file mode 100644 index 0334403ea..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/portal/commands/ToggleCommand.java +++ /dev/null @@ -1,21 +0,0 @@ -package mineplex.core.portal.commands; - -import org.bukkit.entity.Player; - -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; -import mineplex.core.portal.Portal; - -public class ToggleCommand extends CommandBase -{ - public ToggleCommand(Portal plugin) - { - super(plugin, Rank.ADMIN, "toggle"); - } - - @Override - public void Execute(final Player caller, String[] args) - { - Plugin.ToggleSetupAdmin(caller); - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusManager.java b/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusManager.java index 214906043..f1584c9b7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusManager.java @@ -9,8 +9,6 @@ import java.util.Enumeration; import java.util.List; import org.bukkit.Bukkit; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.event.EventHandler; import org.bukkit.event.server.ServerListPingEvent; import org.bukkit.plugin.java.JavaPlugin; @@ -27,6 +25,7 @@ public class ServerStatusManager extends MiniPlugin private LagMeter _lagMeter; private boolean _alternateSeconds; + private boolean _enabled = true; public ServerStatusManager(JavaPlugin plugin, LagMeter lagMeter) { @@ -34,6 +33,9 @@ public class ServerStatusManager extends MiniPlugin _lagMeter = lagMeter; + if (new File("IgnoreUpdates.dat").exists()) + _enabled = false; + ServerListPingEvent event = new ServerListPingEvent(null, plugin.getServer().getMotd(), plugin.getServer().getOnlinePlayers().length, plugin.getServer().getMaxPlayers()); GetPluginManager().callEvent(event); @@ -88,7 +90,9 @@ public class ServerStatusManager extends MiniPlugin plugin.getConfig().getString("serverstatus.group"), address + ":" + _plugin.getServer().getPort(), event.getMaxPlayers() ); - _repository.initialize(); + + if (_enabled) + _repository.initialize(); } catch (Exception ex) { @@ -143,6 +147,9 @@ public class ServerStatusManager extends MiniPlugin if (event.getType() != UpdateType.SEC) return; + if (!_enabled) + return; + _alternateSeconds = !_alternateSeconds; if (!_alternateSeconds) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java index d6e06f473..8d524ab69 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java @@ -26,6 +26,7 @@ import mineplex.core.task.TaskManager; import mineplex.core.teleport.Teleport; import mineplex.core.updater.FileUpdater; import mineplex.core.updater.Updater; +import mineplex.hub.modules.StackerManager; import mineplex.hub.party.PartyManager; import mineplex.hub.server.ServerManager; import mineplex.minecraft.game.classcombat.Class.ClassManager; @@ -79,8 +80,8 @@ public class Hub extends JavaPlugin implements INautilusPlugin, IRelation PacketHandler packetHandler = new PacketHandler(this); Portal portal = new Portal(this); PartyManager partyManager = new PartyManager(this, clientManager); - new HubManager(this, clientManager, donationManager, new DisguiseManager(this, packetHandler), new TaskManager(this, GetWebServerAddress()), portal, partyManager); - new ServerManager(this, clientManager, donationManager, portal, partyManager, new ServerStatusManager(this, new LagMeter(this, clientManager))); + HubManager hubManager = new HubManager(this, clientManager, donationManager, new DisguiseManager(this, packetHandler), new TaskManager(this, GetWebServerAddress()), portal, partyManager); + new ServerManager(this, clientManager, donationManager, portal, partyManager, new ServerStatusManager(this, new LagMeter(this, clientManager)), hubManager, new StackerManager(hubManager)); new Chat(this, clientManager); new MemoryFix(this); new FileUpdater(this, portal); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java index 4e3a8a8c3..bd7d7bbd5 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java @@ -66,7 +66,6 @@ public class HubManager extends MiniClientPlugin private PartyManager _partyManager; private Portal _portal; - private TutorialManager _tutorialManager; private TextManager _textCreator; private ParkourManager _parkour; @@ -102,7 +101,6 @@ public class HubManager extends MiniClientPlugin new MapManager(this); new WorldManager(this); new JumpManager(this); - new StackerManager(this); _partyManager = partyManager; _tutorialManager = new TutorialManager(this, donationManager, taskManager, _textCreator); @@ -212,18 +210,10 @@ public class HubManager extends MiniClientPlugin { if (((LivingEntity)entity).isCustomNameVisible() && ((LivingEntity)entity).getCustomName() != null) { - if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("play minekart plz")) + if (ChatColor.stripColor(((LivingEntity)entity).getCustomName()).equalsIgnoreCase("Minekart")) { _disguiseManager.disguise(new DisguisePlayer(entity, ChatColor.YELLOW + "MineKart")); } - else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("defek7")) - _disguiseManager.disguise(new DisguisePlayer(entity, "defek7")); - else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("chiss")) - _disguiseManager.disguise(new DisguisePlayer(entity, "Chiss")); - else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("Sterling_")) - _disguiseManager.disguise(new DisguisePlayer(entity, "sterling_")); - else if (((LivingEntity)entity).getCustomName().equalsIgnoreCase("Spu_")) - _disguiseManager.disguise(new DisguisePlayer(entity, "Spu_")); } } } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java index a16728243..5b278f455 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java @@ -12,6 +12,7 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.entity.EntityCombustEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.player.PlayerInteractEntityEvent; @@ -99,6 +100,15 @@ public class ParkourManager extends MiniPlugin } } + @EventHandler + public void combustPrevent(EntityCombustEvent event) + { + if (event.getEntity() instanceof Player) + { + event.setCancelled(true); + } + } + @EventHandler public void LavaReturn(EntityDamageEvent event) { @@ -108,7 +118,6 @@ public class ParkourManager extends MiniPlugin event.getEntity().eject(); event.getEntity().leaveVehicle(); event.getEntity().teleport(_lavaParkourReturn); - event.getEntity().setFireTicks(0); } else @@ -117,6 +126,27 @@ public class ParkourManager extends MiniPlugin event.setCancelled(true); } + @EventHandler + public void preventCarriers(UpdateEvent event) + { + if (event.getType() != UpdateType.SEC) + return; + + for (Player player : UtilServer.getPlayers()) + { + if (InParkour(player)) + { + if (player.getVehicle() != null || player.getPassenger() != null) + { + player.eject(); + player.leaveVehicle(); + + UtilPlayer.message(player, F.main("Parkour", "You can't run parkours while stacked!")); + } + } + } + } + @EventHandler public void LavaBlockReturn(UpdateEvent event) { diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java index e02fb28f5..4dd239381 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java @@ -245,6 +245,9 @@ public class StackerManager extends MiniPlugin implements IThrown { if (target == null) return; + + if (target.getCustomName() != null || (target.getPassenger() != null && target.getPassenger() instanceof LivingEntity && ((LivingEntity)target.getPassenger()).getCustomName() != null)) + return; //Velocity UtilAction.velocity(target, UtilAlg.getTrajectory2d(data.GetThrown(), target), 1, true, 0.8, 0, 10, true); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java index 726b13eb2..bbddafa93 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java @@ -51,7 +51,9 @@ public class TextManager extends MiniPlugin "DEATH TAG", "TURF WARS", "DRAGONS", - "RUNNER" + "RUNNER", + "BACON BRAWL", + "SQUID SAUCE" }; CreateText(); @@ -82,10 +84,10 @@ public class TextManager extends MiniPlugin UtilText.MakeText("THE BRIDGES", locSurvival.clone().add(-15, 14, 0), faceSurvival, 159, (byte)4, TextAlign.CENTER); UtilText.MakeText("THE BRIDGES", locSurvival.clone().add(-16, 14, 0), faceSurvival, 159, (byte)15, TextAlign.CENTER); - + /* UtilText.MakeText("SURVIVAL GAMES", locSurvival.clone().add(-15, 21, 0), faceSurvival, 159, (byte)1, TextAlign.CENTER); UtilText.MakeText("SURVIVAL GAMES", locSurvival.clone().add(-16, 21, 0), faceSurvival, 159, (byte)15, TextAlign.CENTER); - + */ //Other UtilText.MakeText("CLASSICS", locClassics, faceOther, 159, (byte)5, TextAlign.CENTER); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java index cd08a5b10..5c5ec2bd3 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java @@ -1,13 +1,13 @@ package mineplex.hub.server; import java.io.BufferedReader; -import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; +import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -17,9 +17,14 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; +import org.bukkit.event.entity.EntityPortalEnterEvent; +import org.bukkit.event.entity.EntityPortalEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerPortalEvent; import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.util.Vector; import mineplex.core.MiniPlugin; import mineplex.core.account.CoreClientManager; @@ -28,16 +33,21 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.Callback; import mineplex.core.common.util.F; import mineplex.core.common.util.NautHashMap; +import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilTime; import mineplex.core.common.util.UtilTime.TimeUnit; import mineplex.core.donation.DonationManager; import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.portal.Portal; +import mineplex.core.recharge.Recharge; import mineplex.core.status.ServerStatusData; import mineplex.core.status.ServerStatusManager; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; +import mineplex.hub.HubManager; +import mineplex.hub.modules.StackerManager; import mineplex.hub.party.Party; import mineplex.hub.party.PartyManager; import mineplex.hub.server.command.ServerNpcCommand; @@ -51,19 +61,22 @@ public class ServerManager extends MiniPlugin private Portal _portal; private PartyManager _partyManager; private ServerStatusManager _statusManager; + private HubManager _hubManager; + private StackerManager _stackerManager; private NautHashMap> _serverNpcMap = new NautHashMap>(); + private NautHashMap _serverNpcTag = new NautHashMap(); private NautHashMap _serverNpcShopMap = new NautHashMap(); private NautHashMap _serverInfoMap = new NautHashMap(); private NautHashMap _serverUpdate = new NautHashMap(); + private NautHashMap _serverPortalLocations = new NautHashMap(); private ServerNpcShop _quickShop; - private boolean _loading = false; private boolean _alternateUpdateFire = false; private boolean _retrieving = false; - public ServerManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, Portal portal, PartyManager partyManager, ServerStatusManager statusManager) + public ServerManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, Portal portal, PartyManager partyManager, ServerStatusManager statusManager, HubManager hubManager, StackerManager stackerManager) { super("Server Manager", plugin); @@ -72,6 +85,8 @@ public class ServerManager extends MiniPlugin _portal = portal; _partyManager = partyManager; _statusManager = statusManager; + _hubManager = hubManager; + _stackerManager = stackerManager; plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "BungeeCord"); @@ -86,6 +101,78 @@ public class ServerManager extends MiniPlugin AddCommand(new ServerNpcCommand(this)); } + @EventHandler(priority = EventPriority.LOW) + public void playerPortalEvent(PlayerPortalEvent event) + { + event.setCancelled(true); + } + + @EventHandler(priority = EventPriority.LOW) + public void entityPortalEvent(EntityPortalEvent event) + { + event.setCancelled(true); + } + + @EventHandler(priority = EventPriority.LOW) + public void playerCheckPortalEvent(EntityPortalEnterEvent event) + { + if (!(event.getEntity() instanceof Player)) + { + UtilAction.velocity(event.getEntity(), UtilAlg.getTrajectory(event.getEntity().getLocation(), _hubManager.GetSpawn()), 1, true, 0.8, 0, 1, true); + return; + } + + Player player = (Player)event.getEntity(); + + if (!_stackerManager.CanPortal(player)) + { + UtilAction.velocity(player, UtilAlg.getTrajectory(player.getLocation(), _hubManager.GetSpawn()), 1, true, 0.8, 0, 1, true); + return; + } + + if (!Recharge.Instance.use(player, "Portal Server", 1000, false)) + return; + + String serverName = _serverPortalLocations.get(player.getLocation().getBlock().getLocation().toVector()); + + if (serverName != null) + { + List serverList = new ArrayList(GetServerList(serverName)); + + int slots = 1; + + if (serverList.size() > 0) + { + slots = GetRequiredSlots(player, serverList.get(0).ServerType); + } + + try + { + Collections.sort(serverList, new ServerSorter(slots)); + + for (ServerInfo serverInfo : serverList) + { + if ((serverInfo.MOTD.contains("Starting") || serverInfo.MOTD.contains("Recruiting") || serverInfo.MOTD.contains("Waiting") || serverInfo.MOTD.contains("Cup")) && (serverInfo.MaxPlayers - serverInfo.CurrentPlayers) >= slots) + { + SelectServer(player, serverInfo); + return; + } + } + } + catch (Exception exception) + { + exception.printStackTrace(); + + for (ServerInfo serverInfo : serverList) + { + System.out.println(F.main("ServerManager", ChatColor.YELLOW + serverInfo.Name + ": " + serverInfo.MOTD + " " + serverInfo.CurrentPlayers + "/" + serverInfo.MaxPlayers)); + } + } + + player.sendMessage(F.main("Server Portal", "There are currently no joinable servers!")); + } + } + @EventHandler(priority = EventPriority.LOW) public void playerJoin(PlayerJoinEvent event) { @@ -101,24 +188,6 @@ public class ServerManager extends MiniPlugin } } - public void AddServer(String serverNpcName, String serverName) - { - ServerInfo serverInfo = new ServerInfo(); - serverInfo.Name = serverName; - - if (_serverInfoMap.containsKey(serverName)) - { - _serverInfoMap.remove(serverName); - _serverUpdate.remove(serverName); - } - - _serverNpcMap.get(serverNpcName).add(serverInfo); - _serverInfoMap.put(serverName, serverInfo); - _serverUpdate.put(serverName, System.currentTimeMillis()); - - SaveServers(); - } - public void RemoveServer(String serverName) { for (String key : _serverNpcMap.keySet()) @@ -220,38 +289,48 @@ public class ServerManager extends MiniPlugin { for (ServerStatusData serverStatus : serverStatusList) { - if (_serverInfoMap.containsKey(serverStatus.Name)) - { - String[] args = serverStatus.Motd.split("\\|"); - - ServerInfo serverInfo = _serverInfoMap.get(serverStatus.Name); - serverInfo.MOTD = args.length > 0 ? args[0] : serverStatus.Motd; - serverInfo.CurrentPlayers = serverStatus.Players; - serverInfo.MaxPlayers = serverStatus.MaxPlayers; - - if (args.length > 1) - serverInfo.ServerType = args[1]; - - if (args.length > 2) - serverInfo.Game = args[2]; - - if (args.length > 3) - serverInfo.Map = args[3]; - - _serverUpdate.put(serverStatus.Name, System.currentTimeMillis()); - } - - for (String name : _serverUpdate.keySet()) + if (!_serverInfoMap.containsKey(serverStatus.Name)) { - if (_serverUpdate.get(name) != -1L && System.currentTimeMillis() - _serverUpdate.get(name) > 5000) - { - ServerInfo serverInfo = _serverInfoMap.get(name); - serverInfo.MOTD = ChatColor.DARK_RED + "OFFLINE"; - serverInfo.CurrentPlayers = 0; - serverInfo.MaxPlayers = 0; - - _serverUpdate.put(name, -1L); - } + ServerInfo newServerInfo = new ServerInfo(); + newServerInfo.Name = serverStatus.Name; + _serverInfoMap.put(serverStatus.Name, newServerInfo); + } + + String[] args = serverStatus.Motd.split("\\|"); + String tag = (serverStatus.Name != null && serverStatus.Name.contains("-")) ? serverStatus.Name.split("-")[0] : "N/A"; + + ServerInfo serverInfo = _serverInfoMap.get(serverStatus.Name); + serverInfo.MOTD = args.length > 0 ? args[0] : serverStatus.Motd; + serverInfo.CurrentPlayers = serverStatus.Players; + serverInfo.MaxPlayers = serverStatus.MaxPlayers; + + if (args.length > 1) + serverInfo.ServerType = args[1]; + + if (args.length > 2) + serverInfo.Game = args[2]; + + if (args.length > 3) + serverInfo.Map = args[3]; + + _serverUpdate.put(serverStatus.Name, System.currentTimeMillis()); + + if (_serverNpcTag.containsKey(tag)) + { + _serverNpcMap.get(_serverNpcTag.get(tag)).add(serverInfo); + } + } + + for (String name : _serverUpdate.keySet()) + { + if (_serverUpdate.get(name) != -1L && System.currentTimeMillis() - _serverUpdate.get(name) > 5000) + { + ServerInfo serverInfo = _serverInfoMap.get(name); + serverInfo.MOTD = ChatColor.DARK_RED + "OFFLINE"; + serverInfo.CurrentPlayers = 0; + serverInfo.MaxPlayers = 0; + + _serverUpdate.put(name, -1L); } } @@ -369,63 +448,6 @@ public class ServerManager extends MiniPlugin } } - public void SaveServers() - { - if (_loading) - return; - - FileWriter fstream = null; - BufferedWriter out = null; - - try - { - fstream = new FileWriter("ServerManager.dat"); - out = new BufferedWriter(fstream); - - for (String key : _serverNpcMap.keySet()) - { - System.out.println("Saving serverinfos for " + key); - for (ServerInfo serverInfo : _serverNpcMap.get(key)) - { - out.write(key + " | " + serverInfo.Name); - out.newLine(); - } - } - - out.close(); - } - catch (Exception e) - { - System.err.println("ServerManager Save Error: " + e.getMessage()); - } - finally - { - if (out != null) - { - try - { - out.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - if (fstream != null) - { - try - { - fstream.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - } - } - public void LoadServers() { _serverInfoMap.clear(); @@ -436,8 +458,8 @@ public class ServerManager extends MiniPlugin _serverNpcMap.get(npcName).clear(); } - _loading = true; - + _serverNpcTag.clear(); + FileInputStream fstream = null; BufferedReader br = null; @@ -457,14 +479,20 @@ public class ServerManager extends MiniPlugin while (line != null) { String serverNpcName = line.substring(0, line.indexOf('|')).trim(); - String server = line.substring(line.indexOf('|') + 1).trim(); + String serverTag = line.substring(line.indexOf('|') + 1, line.indexOf('|', line.indexOf('|') + 1)).trim(); + String[] locations = line.substring(line.indexOf('|', line.indexOf('|') + 1) + 1).trim().split(","); + + for (String location : locations) + { + _serverPortalLocations.put(ParseVector(location), serverNpcName); + } if (!HasServerNpc(serverNpcName)) { AddServerNpc(serverNpcName); } - AddServer(serverNpcName, server); + _serverNpcTag.put(serverTag, serverNpcName); npcNames.add(serverNpcName); line = br.readLine(); @@ -500,8 +528,6 @@ public class ServerManager extends MiniPlugin e.printStackTrace(); } } - - _loading = false; } for (String npcName : npcNames) @@ -549,7 +575,7 @@ public class ServerManager extends MiniPlugin public ServerNpcShop getMixedArcadeShop() { - return _serverNpcShopMap.get("Mixed Arcade Games"); + return _serverNpcShopMap.get("Mixed Arcade"); } public ServerNpcShop getSuperSmashMobsShop() @@ -559,7 +585,7 @@ public class ServerManager extends MiniPlugin public ServerNpcShop getDominateShop() { - return _serverNpcShopMap.get("Dominate Beta"); + return _serverNpcShopMap.get("Dominate"); } public ServerNpcShop getBridgesShop() @@ -569,6 +595,19 @@ public class ServerManager extends MiniPlugin public ServerNpcShop getMinekartShop() { - return _serverNpcShopMap.get("play minekart plz"); + return _serverNpcShopMap.get("Minekart"); + } + + private Vector ParseVector(String vectorString) + { + Vector vector = new Vector(); + + String [] parts = vectorString.trim().split(" "); + + vector.setX(Double.parseDouble(parts[0])); + vector.setY(Double.parseDouble(parts[1])); + vector.setZ(Double.parseDouble(parts[2])); + + return vector; } } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/AddServerCommand.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/AddServerCommand.java deleted file mode 100644 index 60d92bb0a..000000000 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/AddServerCommand.java +++ /dev/null @@ -1,55 +0,0 @@ -package mineplex.hub.server.command; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; -import mineplex.hub.server.ServerManager; - -public class AddServerCommand extends CommandBase -{ - public AddServerCommand(ServerManager plugin) - { - super(plugin, Rank.OWNER, "addserver"); - } - - @Override - public void Execute(Player caller, String[] args) - { - if (args.length < 2) - { - Plugin.Help(caller, "Invalid arguments"); - return; - } - - String argsCombined = args[0]; - String serverNpcName = ""; - String serverName = ""; - - for (int i = 1; i < args.length; i++) - { - argsCombined += " " + args[i]; - } - - if (!argsCombined.contains("|")) - { - Plugin.Help(caller, "Invalid arguments"); - } - - serverNpcName = argsCombined.substring(0, argsCombined.indexOf("|")).trim(); - serverName = argsCombined.substring(argsCombined.indexOf("|") + 1).trim(); - - if (!Plugin.HasServerNpc(serverNpcName)) - { - UtilPlayer.message(caller, F.main(Plugin.GetName(), ChatColor.RED + "That ServerNpc doesn't exist.")); - } - else - { - Plugin.AddServer(serverNpcName, serverName); - UtilPlayer.message(caller, F.main(Plugin.GetName(), "Added '" + serverName + "' to '" + serverNpcName + "' server list.")); - } - } -} \ No newline at end of file diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ServerNpcCommand.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ServerNpcCommand.java index ae69c4d6a..5c498f115 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ServerNpcCommand.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ServerNpcCommand.java @@ -14,7 +14,6 @@ public class ServerNpcCommand extends MultiCommandBase AddCommand(new CreateCommand(plugin)); AddCommand(new DeleteCommand(plugin)); - AddCommand(new AddServerCommand(plugin)); AddCommand(new RemoveServerCommand(plugin)); AddCommand(new ListNpcsCommand(plugin)); AddCommand(new ListServersCommand(plugin)); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java index 602b75dfb..f0167b07f 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java @@ -105,6 +105,8 @@ public class ServerGameMenu extends ShopPageBase ChatColor.RESET + "A Barbarian's Life", ChatColor.RESET + "Turf Forts", ChatColor.RESET + "Death Tag", + ChatColor.RESET + "Bacon Brawl", + ChatColor.RESET + "Squid Sauce" })); _minigameCycle.add(ItemStackFactory.Instance.CreateStack(Material.GOLD_BOOTS.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Arcade " + C.cGray + "Mixed Games", new String [] @@ -121,6 +123,8 @@ public class ServerGameMenu extends ShopPageBase ChatColor.RESET + "A Barbarian's Life", ChatColor.RESET + "Turf Forts", ChatColor.RESET + "Death Tag", + ChatColor.RESET + "Bacon Brawl", + ChatColor.RESET + "Squid Sauce" })); _minigameCycle.add(ItemStackFactory.Instance.CreateStack(122, (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Arcade " + C.cGray + "Mixed Games", new String [] @@ -137,6 +141,8 @@ public class ServerGameMenu extends ShopPageBase ChatColor.RESET + "A Barbarian's Life", ChatColor.RESET + "Turf Forts", ChatColor.RESET + "Death Tag", + ChatColor.RESET + "Bacon Brawl", + ChatColor.RESET + "Squid Sauce" })); _minigameCycle.add(ItemStackFactory.Instance.CreateStack(Material.BOW, (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Arcade " + C.cGray + "Mixed Games", new String [] @@ -153,6 +159,8 @@ public class ServerGameMenu extends ShopPageBase ChatColor.RESET + "A Barbarian's Life", ChatColor.RESET + "Turf Forts", ChatColor.RESET + "Death Tag", + ChatColor.RESET + "Bacon Brawl", + ChatColor.RESET + "Squid Sauce" })); _minigameCycle.add(ItemStackFactory.Instance.CreateStack(Material.LEATHER_BOOTS.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Arcade " + C.cGray + "Mixed Games", new String [] @@ -169,6 +177,8 @@ public class ServerGameMenu extends ShopPageBase ChatColor.RESET + "A Barbarian's Life", ChatColor.RESET + "Turf Forts", ChatColor.RESET + "Death Tag", + ChatColor.RESET + "Bacon Brawl", + ChatColor.RESET + "Squid Sauce" })); _minigameCycle.add(ItemStackFactory.Instance.CreateStack(Material.MILK_BUCKET.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Arcade " + C.cGray + "Mixed Games", new String [] @@ -185,6 +195,8 @@ public class ServerGameMenu extends ShopPageBase ChatColor.RESET + "A Barbarian's Life", ChatColor.RESET + "Turf Forts", ChatColor.RESET + "Death Tag", + ChatColor.RESET + "Bacon Brawl", + ChatColor.RESET + "Squid Sauce" })); _minigameCycle.add(ItemStackFactory.Instance.CreateStack(Material.IRON_AXE.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Arcade " + C.cGray + "Mixed Games", new String [] @@ -201,6 +213,8 @@ public class ServerGameMenu extends ShopPageBase ChatColor.RESET + C.Bold + ChatColor.GREEN + "A Barbarian's Life", ChatColor.RESET + "Turf Forts", ChatColor.RESET + "Death Tag", + ChatColor.RESET + "Bacon Brawl", + ChatColor.RESET + "Squid Sauce" })); _minigameCycle.add(ItemStackFactory.Instance.CreateStack(159, (byte)14, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Arcade " + C.cGray + "Mixed Games", new String [] @@ -217,6 +231,8 @@ public class ServerGameMenu extends ShopPageBase ChatColor.RESET + "A Barbarian's Life", ChatColor.RESET + C.Bold + ChatColor.GREEN + "Turf Forts", ChatColor.RESET + "Death Tag", + ChatColor.RESET + "Bacon Brawl", + ChatColor.RESET + "Squid Sauce" })); _minigameCycle.add(ItemStackFactory.Instance.CreateStack(144, (byte)1, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Arcade " + C.cGray + "Mixed Games", new String [] @@ -231,8 +247,46 @@ public class ServerGameMenu extends ShopPageBase ChatColor.RESET + "Dragon Escape", ChatColor.RESET + "Milk the Cow", ChatColor.RESET + "A Barbarian's Life", - ChatColor.RESET +"Turf Forts", + ChatColor.RESET + "Turf Forts", ChatColor.RESET + C.Bold + ChatColor.GREEN + "Death Tag", + ChatColor.RESET + "Bacon Brawl", + ChatColor.RESET + "Squid Sauce" + })); + + _minigameCycle.add(ItemStackFactory.Instance.CreateStack(144, (byte)1, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Arcade " + C.cGray + "Mixed Games", new String [] + { + ChatColor.RESET + "", + ChatColor.RESET + "Play all of these fun minigames:", + ChatColor.RESET + "", + ChatColor.RESET + "Super Spleef", + ChatColor.RESET + "Runner", + ChatColor.RESET + "Dragons", + ChatColor.RESET + "One in the Quiver", + ChatColor.RESET + "Dragon Escape", + ChatColor.RESET + "Milk the Cow", + ChatColor.RESET + "A Barbarian's Life", + ChatColor.RESET + "Turf Forts", + ChatColor.RESET + "Death Tag", + ChatColor.RESET + C.Bold + ChatColor.GREEN + "Bacon Brawl", + ChatColor.RESET + "Squid Sauce" + })); + + _minigameCycle.add(ItemStackFactory.Instance.CreateStack(144, (byte)1, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Arcade " + C.cGray + "Mixed Games", new String [] + { + ChatColor.RESET + "", + ChatColor.RESET + "Play all of these fun minigames:", + ChatColor.RESET + "", + ChatColor.RESET + "Super Spleef", + ChatColor.RESET + "Runner", + ChatColor.RESET + "Dragons", + ChatColor.RESET + "One in the Quiver", + ChatColor.RESET + "Dragon Escape", + ChatColor.RESET + "Milk the Cow", + ChatColor.RESET + "A Barbarian's Life", + ChatColor.RESET + "Turf Forts", + ChatColor.RESET + "Death Tag", + ChatColor.RESET + "Bacon Brawl", + ChatColor.RESET + C.Bold + ChatColor.GREEN + "Squid Sauce" })); } From f9400a0eb44d6106bbbf566e14410d3d1b2610ea Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Fri, 27 Sep 2013 12:45:24 -0700 Subject: [PATCH 2/5] Fixed multiple finishes for parkours --- .../Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java index 5b278f455..2a93d5bd5 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java @@ -231,7 +231,7 @@ public class ParkourManager extends MiniPlugin { final Player player = event.getPlayer(); - if (Recharge.Instance.use(player, "Finish Parkour", 30000, false)) + if (!Recharge.Instance.use(player, "Finish Parkour", 30000, false)) return; for (ParkourData data : _parkour) From 86199d2795fea28fed42fe528da2c61256551abd Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Fri, 27 Sep 2013 20:05:30 -0700 Subject: [PATCH 3/5] Fix for dominate. --- .../game/classcombat/Class/ClientClass.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClientClass.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClientClass.java index e2096936e..7ec1a8593 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClientClass.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClientClass.java @@ -378,8 +378,23 @@ public class ClientClass public void ClearSkills() { if (_skillMap != null) + { for (ISkill skill : _skillMap.values()) - skill.RemoveUser(_client.GetPlayer()); + { + if (skill == null) + { + System.out.println("Skill is null in ClientClass.ClearSkills()"); + } + else if (_client == null) + { + System.out.println("Client is null in ClientClass.ClearSkills()"); + } + else + { + skill.RemoveUser(_client.GetPlayer()); + } + } + } _skillMap.clear(); } From 44da981cf4e09031907ce0df3936eafc829f9e41 Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Fri, 27 Sep 2013 23:06:53 -0700 Subject: [PATCH 4/5] Fixed dominate bug again. Fixed quick game menu bug. --- .../src/mineplex/hub/server/ServerManager.java | 7 ++++--- .../src/mineplex/hub/server/ui/ServerGameMenu.java | 6 +++--- .../game/dominate/engine/DominateGameEngine.java | 9 ++++++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java index 5c5ec2bd3..77fca6484 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java @@ -51,6 +51,7 @@ import mineplex.hub.modules.StackerManager; import mineplex.hub.party.Party; import mineplex.hub.party.PartyManager; import mineplex.hub.server.command.ServerNpcCommand; +import mineplex.hub.server.ui.QuickShop; import mineplex.hub.server.ui.ServerGameMenu; import mineplex.hub.server.ui.ServerNpcShop; @@ -71,7 +72,7 @@ public class ServerManager extends MiniPlugin private NautHashMap _serverUpdate = new NautHashMap(); private NautHashMap _serverPortalLocations = new NautHashMap(); - private ServerNpcShop _quickShop; + private QuickShop _quickShop; private boolean _alternateUpdateFire = false; private boolean _retrieving = false; @@ -93,7 +94,7 @@ public class ServerManager extends MiniPlugin LoadServers(); new ServerManagerUpdater(this); - _quickShop = new ServerNpcShop(this, clientManager, donationManager, "Quick Menu"); + _quickShop = new QuickShop(this, clientManager, donationManager, "Quick Menu"); } public void AddCommands() @@ -184,7 +185,7 @@ public class ServerManager extends MiniPlugin { if (event.getItem() != null && event.getItem().getType() == Material.COMPASS) { - _quickShop.OpenPageForPlayer(event.getPlayer(), new ServerGameMenu(this, _quickShop, _clientManager, _donationManager, " " + ChatColor.UNDERLINE + "Quick Game Menu", event.getPlayer())); + _quickShop.attemptShopOpen(event.getPlayer()); } } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java index f0167b07f..6429e0dd3 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerGameMenu.java @@ -15,7 +15,7 @@ import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.shop.page.ShopPageBase; import mineplex.hub.server.ServerManager; -public class ServerGameMenu extends ShopPageBase +public class ServerGameMenu extends ShopPageBase { private List _superSmashCycle = new ArrayList(); private List _minigameCycle = new ArrayList(); @@ -25,9 +25,9 @@ public class ServerGameMenu extends ShopPageBase private int _minigameIndex; private int _turfFortsIndex; - public ServerGameMenu(ServerManager plugin, ServerNpcShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player) + public ServerGameMenu(ServerManager plugin, QuickShop quickShop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player) { - super(plugin, shop, clientManager, donationManager, name, player, 9); + super(plugin, quickShop, clientManager, donationManager, name, player, 9); createSuperSmashCycle(); createMinigameCycle(); diff --git a/Plugins/Nautilus.Game.Dominate/src/nautilus/game/dominate/engine/DominateGameEngine.java b/Plugins/Nautilus.Game.Dominate/src/nautilus/game/dominate/engine/DominateGameEngine.java index da0433fc9..13f92ceda 100644 --- a/Plugins/Nautilus.Game.Dominate/src/nautilus/game/dominate/engine/DominateGameEngine.java +++ b/Plugins/Nautilus.Game.Dominate/src/nautilus/game/dominate/engine/DominateGameEngine.java @@ -44,9 +44,12 @@ public class DominateGameEngine extends TeamGameEngine Date: Wed, 2 Oct 2013 22:23:01 -0700 Subject: [PATCH 5/5] Added DisguiseWolf Added lobby menu (disabled autogive for testing) Removed unused commands. --- .../disguises/DisguiseTameableAnimal.java | 52 ++++++++ .../core/disguise/disguises/DisguiseWolf.java | 64 ++++++++++ .../core/status/ServerStatusManager.java | 11 +- .../src/mineplex/hub/server/LobbySorter.java | 14 +++ .../mineplex/hub/server/ServerManager.java | 70 ++++++----- .../hub/server/command/CreateCommand.java | 45 ------- .../hub/server/command/DeleteCommand.java | 38 ------ .../hub/server/command/ListNpcsCommand.java | 27 ---- .../server/command/ListOfflineCommand.java | 27 ---- .../server/command/ListServersCommand.java | 34 ----- .../server/command/RemoveServerCommand.java | 30 ----- .../hub/server/command/ServerNpcCommand.java | 28 ----- .../mineplex/hub/server/ui/IServerPage.java | 10 ++ .../src/mineplex/hub/server/ui/LobbyMenu.java | 116 ++++++++++++++++++ .../src/mineplex/hub/server/ui/LobbyShop.java | 34 +++++ .../src/mineplex/hub/server/ui/QuickShop.java | 34 +++++ .../mineplex/hub/server/ui/ServerNpcPage.java | 2 +- .../server/ui/button/JoinServerButton.java | 5 +- .../arcade/managers/GameLobbyManager.java | 3 + 19 files changed, 381 insertions(+), 263 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseTameableAnimal.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseWolf.java create mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/LobbySorter.java delete mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/command/CreateCommand.java delete mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/command/DeleteCommand.java delete mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListNpcsCommand.java delete mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListOfflineCommand.java delete mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListServersCommand.java delete mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/command/RemoveServerCommand.java delete mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ServerNpcCommand.java create mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/IServerPage.java create mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/LobbyMenu.java create mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/LobbyShop.java create mode 100644 Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/QuickShop.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseTameableAnimal.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseTameableAnimal.java new file mode 100644 index 000000000..97b976210 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseTameableAnimal.java @@ -0,0 +1,52 @@ +package mineplex.core.disguise.disguises; + +public abstract class DisguiseTameableAnimal extends DisguiseAnimal +{ + public DisguiseTameableAnimal(org.bukkit.entity.Entity entity) + { + super(entity); + + DataWatcher.a(16, Byte.valueOf((byte)0)); + DataWatcher.a(17, ""); + } + + public boolean isTamed() + { + return (DataWatcher.getByte(16) & 0x4) != 0; + } + + public void setTamed(boolean tamed) + { + int i = DataWatcher.getByte(16); + + if (tamed) + DataWatcher.watch(16, Byte.valueOf((byte)(i | 0x4))); + else + DataWatcher.watch(16, Byte.valueOf((byte)(i | 0xFFFFFFFB))); + } + + public boolean isSitting() + { + return (DataWatcher.getByte(16) & 0x1) != 0; + } + + public void setSitting(boolean sitting) + { + int i = DataWatcher.getByte(16); + + if (sitting) + DataWatcher.watch(16, Byte.valueOf((byte)(i | 0x1))); + else + DataWatcher.watch(16, Byte.valueOf((byte)(i | 0xFFFFFFFE))); + } + + public void setOwnerName(String name) + { + DataWatcher.watch(17, name); + } + + public String getOwnerName() + { + return DataWatcher.getString(17); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseWolf.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseWolf.java new file mode 100644 index 000000000..dc22a9953 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseWolf.java @@ -0,0 +1,64 @@ +package mineplex.core.disguise.disguises; + +import net.minecraft.server.v1_6_R3.BlockCloth; + +public class DisguiseWolf extends DisguiseTameableAnimal +{ + public DisguiseWolf(org.bukkit.entity.Entity entity) + { + super(entity); + + DataWatcher.a(18, new Float(20F)); + DataWatcher.a(19, new Byte((byte)0)); + DataWatcher.a(20, new Byte((byte)BlockCloth.j_(1))); + } + + public boolean isAngry() + { + return (DataWatcher.getByte(16) & 0x2) != 0; + } + + public void setAngry(boolean angry) + { + byte b0 = DataWatcher.getByte(16); + + if (angry) + DataWatcher.watch(16, Byte.valueOf((byte)(b0 | 0x2))); + else + DataWatcher.watch(16, Byte.valueOf((byte)(b0 & 0xFFFFFFFD))); + } + + public int getCollarColor() + { + return DataWatcher.getByte(20) & 0xF; + } + + public void setCollarColor(int i) + { + DataWatcher.watch(20, Byte.valueOf((byte)(i & 0xF))); + } + + public void m(boolean flag) + { + if (flag) + DataWatcher.watch(19, Byte.valueOf((byte)1)); + else + DataWatcher.watch(19, Byte.valueOf((byte)0)); + } + + public boolean ce() + { + return DataWatcher.getByte(19) == 1; + } + + @Override + protected int GetEntityTypeId() + { + return 95; + } + + protected String getHurtSound() + { + return "mob.wolf.hurt"; + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusManager.java b/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusManager.java index f1584c9b7..6ed665906 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusManager.java @@ -24,6 +24,8 @@ public class ServerStatusManager extends MiniPlugin private ServerStatusRepository _repository; private LagMeter _lagMeter; + private String _name; + private boolean _alternateSeconds; private boolean _enabled = true; @@ -80,13 +82,15 @@ public class ServerStatusManager extends MiniPlugin e.printStackTrace(); } + _name = plugin.getConfig().getString("serverstatus.name"); + try { _repository = new ServerStatusRepository( plugin.getConfig().getString("serverstatus.connectionurl"), plugin.getConfig().getString("serverstatus.username"), plugin.getConfig().getString("serverstatus.password"), - plugin.getConfig().getString("serverstatus.name"), + _name, plugin.getConfig().getString("serverstatus.group"), address + ":" + _plugin.getServer().getPort(), event.getMaxPlayers() ); @@ -167,4 +171,9 @@ public class ServerStatusManager extends MiniPlugin } }); } + + public String getCurrentServerName() + { + return _name; + } } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/LobbySorter.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/LobbySorter.java new file mode 100644 index 000000000..346bc4f35 --- /dev/null +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/LobbySorter.java @@ -0,0 +1,14 @@ +package mineplex.hub.server; + +import java.util.Comparator; + +public class LobbySorter implements Comparator +{ + public int compare(ServerInfo a, ServerInfo b) + { + if (Integer.parseInt(a.Name.split("-")[1]) < Integer.parseInt(b.Name.split("-")[1])) + return -1; + + return 1; + } +} \ No newline at end of file diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java index 77fca6484..b6c015bff 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java @@ -21,7 +21,6 @@ import org.bukkit.event.entity.EntityPortalEnterEvent; import org.bukkit.event.entity.EntityPortalEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerPortalEvent; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.util.Vector; @@ -50,9 +49,8 @@ import mineplex.hub.HubManager; import mineplex.hub.modules.StackerManager; import mineplex.hub.party.Party; import mineplex.hub.party.PartyManager; -import mineplex.hub.server.command.ServerNpcCommand; +import mineplex.hub.server.ui.LobbyShop; import mineplex.hub.server.ui.QuickShop; -import mineplex.hub.server.ui.ServerGameMenu; import mineplex.hub.server.ui.ServerNpcShop; public class ServerManager extends MiniPlugin @@ -65,14 +63,15 @@ public class ServerManager extends MiniPlugin private HubManager _hubManager; private StackerManager _stackerManager; - private NautHashMap> _serverNpcMap = new NautHashMap>(); - private NautHashMap _serverNpcTag = new NautHashMap(); + private NautHashMap> _serverKeyInfoMap = new NautHashMap>(); + private NautHashMap _serverKeyTagMap = new NautHashMap(); private NautHashMap _serverNpcShopMap = new NautHashMap(); private NautHashMap _serverInfoMap = new NautHashMap(); private NautHashMap _serverUpdate = new NautHashMap(); private NautHashMap _serverPortalLocations = new NautHashMap(); private QuickShop _quickShop; + private LobbyShop _lobbyShop; private boolean _alternateUpdateFire = false; private boolean _retrieving = false; @@ -95,11 +94,7 @@ public class ServerManager extends MiniPlugin new ServerManagerUpdater(this); _quickShop = new QuickShop(this, clientManager, donationManager, "Quick Menu"); - } - - public void AddCommands() - { - AddCommand(new ServerNpcCommand(this)); + _lobbyShop = new LobbyShop(this, clientManager, donationManager, "Lobby Menu"); } @EventHandler(priority = EventPriority.LOW) @@ -178,6 +173,7 @@ public class ServerManager extends MiniPlugin public void playerJoin(PlayerJoinEvent event) { event.getPlayer().getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.COMPASS.getId(), (byte)0, 1, ChatColor.GREEN + "Game Menu")); + //event.getPlayer().getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.WATCH.getId(), (byte)0, 1, ChatColor.GREEN + "Lobby Menu")); } @EventHandler(priority = EventPriority.LOWEST) @@ -187,27 +183,37 @@ public class ServerManager extends MiniPlugin { _quickShop.attemptShopOpen(event.getPlayer()); } + else if (event.getItem() != null && event.getItem().getType() == Material.WATCH) + { + _lobbyShop.attemptShopOpen(event.getPlayer()); + } } public void RemoveServer(String serverName) { - for (String key : _serverNpcMap.keySet()) + for (String key : _serverKeyInfoMap.keySet()) { - _serverNpcMap.get(key).remove(serverName); + _serverKeyInfoMap.get(key).remove(serverName); } _serverInfoMap.remove(serverName); } - public void AddServerNpc(String serverNpcName) + public void addServerGroup(String serverKey, String serverTag) { - _serverNpcMap.put(serverNpcName, new HashSet()); + _serverKeyInfoMap.put(serverKey, new HashSet()); + _serverKeyTagMap.put(serverTag, serverKey); + } + + public void AddServerNpc(String serverNpcName, String serverTag) + { + addServerGroup(serverNpcName, serverTag); _serverNpcShopMap.put(serverNpcName, new ServerNpcShop(this, _clientManager, _donationManager, serverNpcName)); } public void RemoveServerNpc(String serverNpcName) { - Set mappedServers = _serverNpcMap.remove(serverNpcName); + Set mappedServers = _serverKeyInfoMap.remove(serverNpcName); _serverNpcShopMap.remove(serverNpcName); if (mappedServers != null) @@ -216,9 +222,9 @@ public class ServerManager extends MiniPlugin { boolean isMappedElseWhere = false; - for (String key : _serverNpcMap.keySet()) + for (String key : _serverKeyInfoMap.keySet()) { - for (ServerInfo value : _serverNpcMap.get(key)) + for (ServerInfo value : _serverKeyInfoMap.get(key)) { if (value.Name.equalsIgnoreCase(mappedServer.Name)) { @@ -239,7 +245,7 @@ public class ServerManager extends MiniPlugin public Collection GetServerList(String serverNpcName) { - return _serverNpcMap.get(serverNpcName); + return _serverKeyInfoMap.get(serverNpcName); } public Set GetAllServers() @@ -254,7 +260,7 @@ public class ServerManager extends MiniPlugin public boolean HasServerNpc(String serverNpcName) { - return _serverNpcMap.containsKey(serverNpcName); + return _serverKeyInfoMap.containsKey(serverNpcName); } @EventHandler @@ -316,9 +322,9 @@ public class ServerManager extends MiniPlugin _serverUpdate.put(serverStatus.Name, System.currentTimeMillis()); - if (_serverNpcTag.containsKey(tag)) + if (_serverKeyTagMap.containsKey(tag)) { - _serverNpcMap.get(_serverNpcTag.get(tag)).add(serverInfo); + _serverKeyInfoMap.get(_serverKeyTagMap.get(tag)).add(serverInfo); } } @@ -420,7 +426,7 @@ public class ServerManager extends MiniPlugin { UtilPlayer.message(caller, F.main(GetName(), "Listing Server Npcs:")); - for (String serverNpc : _serverNpcMap.keySet()) + for (String serverNpc : _serverKeyInfoMap.keySet()) { UtilPlayer.message(caller, F.main(GetName(), C.cYellow + serverNpc)); } @@ -430,7 +436,7 @@ public class ServerManager extends MiniPlugin { UtilPlayer.message(caller, F.main(GetName(), "Listing Servers for '" + serverNpcName + "':")); - for (ServerInfo serverNpc : _serverNpcMap.get(serverNpcName)) + for (ServerInfo serverNpc : _serverKeyInfoMap.get(serverNpcName)) { UtilPlayer.message(caller, F.main(GetName(), C.cYellow + serverNpc.Name + C.cWhite + " - " + serverNpc.MOTD + " " + serverNpc.CurrentPlayers + "/" + serverNpc.MaxPlayers)); } @@ -454,12 +460,12 @@ public class ServerManager extends MiniPlugin _serverInfoMap.clear(); _serverUpdate.clear(); - for (String npcName : _serverNpcMap.keySet()) + for (String npcName : _serverKeyInfoMap.keySet()) { - _serverNpcMap.get(npcName).clear(); + _serverKeyInfoMap.get(npcName).clear(); } - _serverNpcTag.clear(); + _serverKeyTagMap.clear(); FileInputStream fstream = null; BufferedReader br = null; @@ -490,10 +496,9 @@ public class ServerManager extends MiniPlugin if (!HasServerNpc(serverNpcName)) { - AddServerNpc(serverNpcName); + AddServerNpc(serverNpcName, serverTag); } - _serverNpcTag.put(serverTag, serverNpcName); npcNames.add(serverNpcName); line = br.readLine(); @@ -536,8 +541,8 @@ public class ServerManager extends MiniPlugin if (!_serverNpcShopMap.containsKey(npcName)) _serverNpcShopMap.remove(npcName); - if (!_serverNpcMap.containsKey(npcName)) - _serverNpcMap.remove(npcName); + if (!_serverKeyInfoMap.containsKey(npcName)) + _serverKeyInfoMap.remove(npcName); } } @@ -611,4 +616,9 @@ public class ServerManager extends MiniPlugin return vector; } + + public ServerStatusManager getStatusManager() + { + return _statusManager; + } } diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/CreateCommand.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/CreateCommand.java deleted file mode 100644 index 8af27e232..000000000 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/CreateCommand.java +++ /dev/null @@ -1,45 +0,0 @@ -package mineplex.hub.server.command; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; -import mineplex.hub.server.ServerManager; - -public class CreateCommand extends CommandBase -{ - public CreateCommand(ServerManager plugin) - { - super(plugin, Rank.OWNER, "create"); - } - - @Override - public void Execute(Player caller, String[] args) - { - if (args == null || args.length == 0) - { - Plugin.Help(caller, "Invalid name for servernpc"); - return; - } - - String serverNpcName = args[0]; - - for (int i = 1; i < args.length; i++) - { - serverNpcName += " " + args[i]; - } - - if (Plugin.HasServerNpc(serverNpcName)) - { - UtilPlayer.message(caller, F.main(Plugin.GetName(), ChatColor.RED + "That ServerNpc already exists.")); - } - else - { - Plugin.AddServerNpc(serverNpcName); - UtilPlayer.message(caller, F.main(Plugin.GetName(), "Created '" + serverNpcName + "' server npc.")); - } - } -} diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/DeleteCommand.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/DeleteCommand.java deleted file mode 100644 index fd0957df4..000000000 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/DeleteCommand.java +++ /dev/null @@ -1,38 +0,0 @@ -package mineplex.hub.server.command; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; -import mineplex.hub.server.ServerManager; - -public class DeleteCommand extends CommandBase -{ - public DeleteCommand(ServerManager plugin) - { - super(plugin, Rank.OWNER, "delete"); - } - - @Override - public void Execute(Player caller, String[] args) - { - if (args.length != 1) - { - Plugin.Help(caller, "Invalid name for servernpc"); - return; - } - - if (!Plugin.HasServerNpc(args[0])) - { - UtilPlayer.message(caller, F.main(Plugin.GetName(), ChatColor.RED + "That ServerNpc doesn't exist.")); - } - else - { - Plugin.RemoveServerNpc(args[0]); - UtilPlayer.message(caller, F.main(Plugin.GetName(), "Removed '" + args[0] + "' server npc.")); - } - } -} \ No newline at end of file diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListNpcsCommand.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListNpcsCommand.java deleted file mode 100644 index e8771f3ec..000000000 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListNpcsCommand.java +++ /dev/null @@ -1,27 +0,0 @@ -package mineplex.hub.server.command; - -import org.bukkit.entity.Player; - -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; -import mineplex.hub.server.ServerManager; - -public class ListNpcsCommand extends CommandBase -{ - public ListNpcsCommand(ServerManager plugin) - { - super(plugin, Rank.OWNER, "listnpcs"); - } - - @Override - public void Execute(Player caller, String[] args) - { - if (args != null) - { - Plugin.Help(caller, "Invalid arguments"); - return; - } - - Plugin.ListServerNpcs(caller); - } -} \ No newline at end of file diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListOfflineCommand.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListOfflineCommand.java deleted file mode 100644 index 4a6c97bbc..000000000 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListOfflineCommand.java +++ /dev/null @@ -1,27 +0,0 @@ -package mineplex.hub.server.command; - -import org.bukkit.entity.Player; - -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; -import mineplex.hub.server.ServerManager; - -public class ListOfflineCommand extends CommandBase -{ - public ListOfflineCommand(ServerManager plugin) - { - super(plugin, Rank.OWNER, "listoffline"); - } - - @Override - public void Execute(Player caller, String[] args) - { - if (args != null) - { - Plugin.Help(caller, "Invalid arguments"); - return; - } - - Plugin.ListOfflineServers(caller); - } -} \ No newline at end of file diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListServersCommand.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListServersCommand.java deleted file mode 100644 index 38ef65f9b..000000000 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ListServersCommand.java +++ /dev/null @@ -1,34 +0,0 @@ -package mineplex.hub.server.command; - -import org.bukkit.entity.Player; - -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; -import mineplex.hub.server.ServerManager; - -public class ListServersCommand extends CommandBase -{ - public ListServersCommand(ServerManager plugin) - { - super(plugin, Rank.OWNER, "listservers"); - } - - @Override - public void Execute(Player caller, String[] args) - { - if (args == null || args.length < 1) - { - Plugin.Help(caller, "Invalid arguments"); - return; - } - - String serverNpcName = args[0]; - - for (int i = 1; i < args.length; i++) - { - serverNpcName += " " + args[i]; - } - - Plugin.ListServers(caller, serverNpcName); - } -} \ No newline at end of file diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/RemoveServerCommand.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/RemoveServerCommand.java deleted file mode 100644 index 1dda890cc..000000000 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/RemoveServerCommand.java +++ /dev/null @@ -1,30 +0,0 @@ -package mineplex.hub.server.command; - -import org.bukkit.entity.Player; - -import mineplex.core.command.CommandBase; -import mineplex.core.common.Rank; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilPlayer; -import mineplex.hub.server.ServerManager; - -public class RemoveServerCommand extends CommandBase -{ - public RemoveServerCommand(ServerManager plugin) - { - super(plugin, Rank.OWNER, "removeserver"); - } - - @Override - public void Execute(Player caller, String[] args) - { - if (args.length != 1) - { - Plugin.Help(caller, "Invalid arguments"); - return; - } - - Plugin.RemoveServer(args[0]); - UtilPlayer.message(caller, F.main(Plugin.GetName(), "Removed '" + args[0] + "' from server list.")); - } -} \ No newline at end of file diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ServerNpcCommand.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ServerNpcCommand.java deleted file mode 100644 index 5c498f115..000000000 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/command/ServerNpcCommand.java +++ /dev/null @@ -1,28 +0,0 @@ -package mineplex.hub.server.command; - -import org.bukkit.entity.Player; - -import mineplex.core.command.MultiCommandBase; -import mineplex.core.common.Rank; -import mineplex.hub.server.ServerManager; - -public class ServerNpcCommand extends MultiCommandBase -{ - public ServerNpcCommand(ServerManager plugin) - { - super(plugin, Rank.OWNER, "servernpc"); - - AddCommand(new CreateCommand(plugin)); - AddCommand(new DeleteCommand(plugin)); - AddCommand(new RemoveServerCommand(plugin)); - AddCommand(new ListNpcsCommand(plugin)); - AddCommand(new ListServersCommand(plugin)); - AddCommand(new ListOfflineCommand(plugin)); - } - - @Override - protected void Help(Player caller, String args[]) - { - Plugin.Help(caller); - } -} \ No newline at end of file diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/IServerPage.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/IServerPage.java new file mode 100644 index 000000000..06d6e6ed7 --- /dev/null +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/IServerPage.java @@ -0,0 +1,10 @@ +package mineplex.hub.server.ui; + +import mineplex.hub.server.ServerInfo; + +import org.bukkit.entity.Player; + +public interface IServerPage +{ + void SelectServer(Player player, ServerInfo _serverInfo); +} diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/LobbyMenu.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/LobbyMenu.java new file mode 100644 index 000000000..c5ede8a71 --- /dev/null +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/LobbyMenu.java @@ -0,0 +1,116 @@ +package mineplex.hub.server.ui; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.Material; + +import mineplex.core.account.CoreClientManager; +import mineplex.core.common.Rank; +import mineplex.core.common.util.C; +import mineplex.core.donation.DonationManager; +import mineplex.core.shop.item.ShopItem; +import mineplex.core.shop.page.ShopPageBase; +import mineplex.hub.server.LobbySorter; +import mineplex.hub.server.ServerInfo; +import mineplex.hub.server.ServerManager; +import mineplex.hub.server.ui.button.JoinServerButton; + +public class LobbyMenu extends ShopPageBase implements IServerPage +{ + private String _serverGroup; + + public LobbyMenu(ServerManager plugin, LobbyShop lobbyShop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player, String serverGroup) + { + super(plugin, lobbyShop, clientManager, donationManager, name, player, 27); + + _serverGroup = serverGroup; + + BuildPage(); + } + + @Override + protected void BuildPage() + { + List serverList = new ArrayList(Plugin.GetServerList(_serverGroup)); + + try + { + Collections.sort(serverList, new LobbySorter()); + } + catch (Exception exception) + { + exception.printStackTrace(); + } + + int slot = 0; + String openFull = ChatColor.RESET + C.Line + "Get Ultra to join full servers!"; + String openFullUltra = ChatColor.RESET + C.Line + "Click to join!"; + + for (ServerInfo serverInfo : serverList) + { + Material status = Material.IRON_BLOCK; + List lore = new ArrayList(); + + if (slot >= 27) + break; + + slot += 1; + + if (serverInfo.Name.equalsIgnoreCase(Plugin.getStatusManager().getCurrentServerName())) + status = Material.EMERALD_BLOCK; + + lore.add(ChatColor.RESET + ""); + + if (serverInfo.Game != null) + lore.add(ChatColor.RESET + "" + ChatColor.YELLOW + "Game: " + ChatColor.WHITE + serverInfo.Game); + + if (serverInfo.Map != null && !serverInfo.ServerType.equalsIgnoreCase("Competitive")) + lore.add(ChatColor.RESET + "" + ChatColor.YELLOW + "Map: " + ChatColor.WHITE + serverInfo.Map); + + lore.add(ChatColor.RESET + "" + ChatColor.YELLOW + "Players: " + ChatColor.WHITE + serverInfo.CurrentPlayers + "/" + serverInfo.MaxPlayers); + lore.add(ChatColor.RESET + ""); + lore.add(ChatColor.RESET + serverInfo.MOTD); + + if (serverInfo.CurrentPlayers >= serverInfo.MaxPlayers) + { + if (!Client.GetRank().Has(Rank.ULTRA)) + lore.add(openFull); + else + lore.add(openFullUltra); + } + else + lore.add(ChatColor.RESET + C.Line + "Click to join!"); + + if (status != Material.EMERALD_BLOCK) + AddButton(slot, new ShopItem(status, ChatColor.UNDERLINE + "" + ChatColor.BOLD + "" + ChatColor.WHITE + "Server " + serverInfo.Name.substring(serverInfo.Name.indexOf('-') + 1), lore.toArray(new String[lore.size()]), Math.max(1, serverInfo.CurrentPlayers), false), new JoinServerButton(this, serverInfo)); + } + + while (slot < 27) + { + setItem(slot, null); + } + } + + public void Update() + { + BuildPage(); + } + + @Override + public void SelectServer(org.bukkit.entity.Player player, ServerInfo serverInfo) + { + int slots = Plugin.GetRequiredSlots(player, serverInfo.ServerType); + + if (serverInfo.MaxPlayers - serverInfo.CurrentPlayers < slots) + { + PlayDenySound(player); + return; + } + + Plugin.SelectServer(player, serverInfo); + } +} diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/LobbyShop.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/LobbyShop.java new file mode 100644 index 000000000..389719a7c --- /dev/null +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/LobbyShop.java @@ -0,0 +1,34 @@ +package mineplex.hub.server.ui; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; + +import mineplex.core.account.CoreClientManager; +import mineplex.core.shop.ShopBase; +import mineplex.core.shop.page.ShopPageBase; +import mineplex.hub.server.ServerManager; + +public class LobbyShop extends ShopBase +{ + public LobbyShop(ServerManager plugin, CoreClientManager clientManager, mineplex.core.donation.DonationManager donationManager, String name) + { + super(plugin, clientManager, donationManager, name); + } + + @Override + protected ShopPageBase> BuildPagesFor(Player player) + { + return new LobbyMenu(Plugin, this, ClientManager, DonationManager, " " + ChatColor.UNDERLINE + "Lobby Selector", player, "Lobby"); + } + + public void UpdatePages() + { + for (ShopPageBase> page : PlayerPageMap.values()) + { + if (page instanceof LobbyMenu) + { + ((LobbyMenu)page).Update(); + } + } + } +} diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/QuickShop.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/QuickShop.java new file mode 100644 index 000000000..4ffe41f10 --- /dev/null +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/QuickShop.java @@ -0,0 +1,34 @@ +package mineplex.hub.server.ui; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; + +import mineplex.core.account.CoreClientManager; +import mineplex.core.shop.ShopBase; +import mineplex.core.shop.page.ShopPageBase; +import mineplex.hub.server.ServerManager; + +public class QuickShop extends ShopBase +{ + public QuickShop(ServerManager plugin, CoreClientManager clientManager, mineplex.core.donation.DonationManager donationManager, String name) + { + super(plugin, clientManager, donationManager, name); + } + + @Override + protected ShopPageBase> BuildPagesFor(Player player) + { + return new ServerGameMenu(Plugin, this, ClientManager, DonationManager, " " + ChatColor.UNDERLINE + "Quick Game Menu", player); + } + + public void UpdatePages() + { + for (ShopPageBase> page : PlayerPageMap.values()) + { + if (page instanceof ServerGameMenu) + { + ((ServerGameMenu)page).Update(); + } + } + } +} diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcPage.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcPage.java index e77dc9a1f..82047ffc7 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcPage.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcPage.java @@ -20,7 +20,7 @@ import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; -public class ServerNpcPage extends ShopPageBase +public class ServerNpcPage extends ShopPageBase implements IServerPage { private String _serverNpcKey; diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/button/JoinServerButton.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/button/JoinServerButton.java index e9dd82628..3f9ab657a 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/button/JoinServerButton.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/button/JoinServerButton.java @@ -4,14 +4,15 @@ import org.bukkit.entity.Player; import mineplex.core.shop.item.IButton; import mineplex.hub.server.ServerInfo; +import mineplex.hub.server.ui.IServerPage; import mineplex.hub.server.ui.ServerNpcPage; public class JoinServerButton implements IButton { - private ServerNpcPage _page; + private IServerPage _page; private ServerInfo _serverInfo; - public JoinServerButton(ServerNpcPage page, ServerInfo serverInfo) + public JoinServerButton(IServerPage page, ServerInfo serverInfo) { _page = page; _serverInfo = serverInfo; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java index 3d38efb84..99fccd277 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java @@ -940,6 +940,9 @@ public class GameLobbyManager implements IPacketRunnable, Listener private String GetKitCustomName(Player player, Game game, LobbyEnt ent) { + if (!player.isOnline()) + return ent.GetKit().GetName(); + CoreClient client = Manager.GetClients().Get(player); Donor donor = Manager.GetDonation().Get(player.getName());