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 d5a5773b4..5af129cd9 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcPage.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ui/ServerNpcPage.java @@ -247,7 +247,7 @@ public class ServerNpcPage extends ShopPageBase im } } - AddButton(40, new ShopItem(Material.GOLD_BLOCK, C.cAqua + yellowCount + " Game" + (yellowCount == 1 ? "" : "s") + " In Progress", new String[]{MESSAGE_SPECTATE}, yellowCount > 64 ? 1 : yellowCount, false), new IButton() + AddButton(40, new ShopItem(Material.GOLD_BLOCK, C.cAqua + yellowCount + " Game" + (yellowCount == 1 ? "" : "s") + " In Progress", new String[]{MESSAGE_SPECTATE}, yellowCount > 64 ? 64 : yellowCount, false), new IButton() { @Override public void onClick(Player player, ClickType clickType) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/button/PlayerHeadButton.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/button/PlayerHeadButton.java new file mode 100644 index 000000000..a9f6a2283 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/button/PlayerHeadButton.java @@ -0,0 +1,37 @@ +package nautilus.game.arcade.gui.privateServer.button; + +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; + +import mineplex.core.shop.item.IButton; +import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.gui.privateServer.page.MenuPage; + +public class PlayerHeadButton implements IButton +{ + private ArcadeManager _arcadeManager; + private MenuPage _menuPage; + + public PlayerHeadButton(ArcadeManager arcadeManager, MenuPage menuPage) + { + _arcadeManager = arcadeManager; + _menuPage = menuPage; + } + + @Override + public void onClick(Player player, ClickType clickType) + { + int maxPlayers = _arcadeManager.GetServerConfig().MaxPlayers; + int newMax; + + int maxCap = _arcadeManager.GetGameHostManager().getMaxPlayerCap(); + + if (clickType.isLeftClick()) + newMax = ++maxPlayers > maxCap ? maxCap : maxPlayers; + else + newMax = --maxPlayers < 2 ? 2 : maxPlayers; + + _arcadeManager.GetServerConfig().MaxPlayers = newMax; + _menuPage.Refresh(); + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/page/MenuPage.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/page/MenuPage.java index 29af5f378..19831dffa 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/page/MenuPage.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gui/privateServer/page/MenuPage.java @@ -1,11 +1,15 @@ package nautilus.game.arcade.gui.privateServer.page; +import java.util.ArrayList; + import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilServer; import mineplex.core.shop.item.ShopItem; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.gui.privateServer.PrivateServerShop; @@ -13,6 +17,7 @@ import nautilus.game.arcade.gui.privateServer.button.BanButton; import nautilus.game.arcade.gui.privateServer.button.EditRotationButton; import nautilus.game.arcade.gui.privateServer.button.GiveAdminButton; import nautilus.game.arcade.gui.privateServer.button.KillButton; +import nautilus.game.arcade.gui.privateServer.button.PlayerHeadButton; import nautilus.game.arcade.gui.privateServer.button.RemoveAdminButton; import nautilus.game.arcade.gui.privateServer.button.SetGameButton; import nautilus.game.arcade.gui.privateServer.button.OptionsButton; @@ -32,7 +37,7 @@ public class MenuPage extends BasePage protected void BuildPage() { ItemStack ownerHead = getOwnerHead(); - setItem(4, ownerHead); + AddButton(4, getOwnerHead(), new PlayerHeadButton(Plugin, this)); boolean host = _manager.isHost(Player); @@ -71,8 +76,22 @@ public class MenuPage extends BasePage AddButton(host ? 6 + 18 : 7 + 18, new ShopItem(Material.WATER_BUCKET, "Un-Remove Player", new String[] {}, 1, false), unbanButton); } - private ItemStack getOwnerHead() + private ShopItem getOwnerHead() { - return getPlayerHead(Plugin.GetHost(), ChatColor.RESET + "Host: " + ChatColor.YELLOW + Plugin.GetHost()); + String title = C.cGreen + C.Bold + Plugin.GetHost() + "'s Mineplex Private Server"; + ItemStack head = getPlayerHead(Plugin.GetHost(), ChatColor.RESET + title); + ArrayList lore = new ArrayList(); + lore.add(" "); + lore.add(ChatColor.RESET + C.cYellow + "Server Name: " + C.cWhite + Plugin.GetPlugin().getConfig().getString("serverstatus.name")); + lore.add(ChatColor.RESET + C.cYellow + "Players Online: " + C.cWhite + UtilServer.getPlayers().length); + lore.add(ChatColor.RESET + C.cYellow + "Players Max: " + C.cWhite + Plugin.GetServerConfig().MaxPlayers); + lore.add(" "); + lore.add(ChatColor.RESET + "Left-Click to increase Max Players"); + lore.add(ChatColor.RESET + "Right-Click to decrease Max Players"); + ItemMeta meta = head.getItemMeta(); + meta.setLore(lore); + head.setItemMeta(meta); + + return new ShopItem(head, title, title, 1, false, false); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java index d4d6368be..1a44f8116 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameHostManager.java @@ -21,6 +21,7 @@ import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.gui.privateServer.PrivateServerShop; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; @@ -402,6 +403,16 @@ public class GameHostManager implements Listener Manager.GetServerConfig().PlayerKickIdle = true; Manager.GetServerConfig().TeamForceBalance = true; } + + public int getMaxPlayerCap() + { + if (hasRank(Rank.LEGEND)) + return 40; + else if (hasRank(Rank.HERO)) + return 12; + else + return 4; + } @EventHandler public void setHostDebug(PlayerCommandPreprocessEvent event) @@ -424,4 +435,12 @@ public class GameHostManager implements Listener event.setCancelled(true); } + + @EventHandler + public void playerJoin(PlayerJoinEvent event) + { + String serverName = Manager.GetPlugin().getConfig().getString("serverstatus.name"); + UtilPlayer.message(event.getPlayer(), ChatColor.BOLD + "Welcome to Mineplex Private Servers!"); + UtilPlayer.message(event.getPlayer(), C.Bold + "Friends can connect with " + C.cGreen + C.Bold + "/server " + serverName); + } }