Fixed memory leaks.
Added in party joining for servers in Hub Modified server status's in server UI.
This commit is contained in:
parent
ff0e39067a
commit
d4b3c5d461
@ -1,7 +1,6 @@
|
|||||||
package mineplex.core.account;
|
package mineplex.core.account;
|
||||||
|
|
||||||
import java.util.AbstractMap;
|
import java.util.AbstractMap;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
@ -38,7 +37,7 @@ public class CoreClientManager implements Listener
|
|||||||
private JavaPlugin _plugin;
|
private JavaPlugin _plugin;
|
||||||
private AccountRepository _repository;
|
private AccountRepository _repository;
|
||||||
private HashSet<String> _allClients;
|
private HashSet<String> _allClients;
|
||||||
private HashMap<String, CoreClient> _clientList;
|
private NautHashMap<String, CoreClient> _clientList;
|
||||||
private HashSet<String> _dontRemoveList;
|
private HashSet<String> _dontRemoveList;
|
||||||
private NautHashMap<String, Entry<CoreClient, Long>> _cacheList;
|
private NautHashMap<String, Entry<CoreClient, Long>> _cacheList;
|
||||||
|
|
||||||
@ -51,7 +50,7 @@ public class CoreClientManager implements Listener
|
|||||||
_plugin = plugin;
|
_plugin = plugin;
|
||||||
_repository = new AccountRepository(webServer);
|
_repository = new AccountRepository(webServer);
|
||||||
_allClients = new HashSet<String>();
|
_allClients = new HashSet<String>();
|
||||||
_clientList = new HashMap<String, CoreClient>();
|
_clientList = new NautHashMap<String, CoreClient>();
|
||||||
_dontRemoveList = new HashSet<String>();
|
_dontRemoveList = new HashSet<String>();
|
||||||
_cacheList = new NautHashMap<String, Entry<CoreClient, Long>>();
|
_cacheList = new NautHashMap<String, Entry<CoreClient, Long>>();
|
||||||
|
|
||||||
@ -77,7 +76,7 @@ public class CoreClientManager implements Listener
|
|||||||
{
|
{
|
||||||
CoreClient newClient = null;
|
CoreClient newClient = null;
|
||||||
|
|
||||||
synchronized (this)
|
synchronized (_clientLock)
|
||||||
{
|
{
|
||||||
if (_cacheList.containsKey(name))
|
if (_cacheList.containsKey(name))
|
||||||
{
|
{
|
||||||
@ -106,24 +105,6 @@ public class CoreClientManager implements Listener
|
|||||||
return newClient;
|
return newClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CoreClient Add(Player player)
|
|
||||||
{
|
|
||||||
CoreClient newClient = new CoreClient(player);
|
|
||||||
CoreClient oldClient = null;
|
|
||||||
|
|
||||||
synchronized(_clientLock)
|
|
||||||
{
|
|
||||||
oldClient = _clientList.put(player.getName(), newClient);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (oldClient != null)
|
|
||||||
{
|
|
||||||
oldClient.Delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
return newClient;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Del(String name)
|
public void Del(String name)
|
||||||
{
|
{
|
||||||
CoreClient removedClient = null;
|
CoreClient removedClient = null;
|
||||||
@ -200,6 +181,14 @@ public class CoreClientManager implements Listener
|
|||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void Login(PlayerLoginEvent event)
|
public void Login(PlayerLoginEvent event)
|
||||||
{
|
{
|
||||||
|
synchronized(_clientLock)
|
||||||
|
{
|
||||||
|
if (!_clientList.containsKey(event.getPlayer().getName()))
|
||||||
|
{
|
||||||
|
_clientList.put(event.getPlayer().getName(), new CoreClient(event.getPlayer().getName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
CoreClient client = Get(event.getPlayer().getName());
|
CoreClient client = Get(event.getPlayer().getName());
|
||||||
client.SetPlayer(event.getPlayer());
|
client.SetPlayer(event.getPlayer());
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@ public class PetTagPage extends ShopPageBase<PetManager, PetShop>
|
|||||||
super(plugin, shop, clientManager, donationManager, name, player, 3);
|
super(plugin, shop, clientManager, donationManager, name, player, 3);
|
||||||
|
|
||||||
BuildPage();
|
BuildPage();
|
||||||
|
|
||||||
|
Player.setLevel(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -38,6 +40,14 @@ public class PetTagPage extends ShopPageBase<PetManager, PetShop>
|
|||||||
ButtonMap.put(1, new CloseButton());
|
ButtonMap.put(1, new CloseButton());
|
||||||
ButtonMap.put(2, new SelectTagButton(this));
|
ButtonMap.put(2, new SelectTagButton(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void PlayerClosed()
|
||||||
|
{
|
||||||
|
super.PlayerClosed();
|
||||||
|
|
||||||
|
Player.setLevel(0);
|
||||||
|
}
|
||||||
|
|
||||||
public void SelectTag()
|
public void SelectTag()
|
||||||
{
|
{
|
||||||
@ -47,7 +57,6 @@ public class PetTagPage extends ShopPageBase<PetManager, PetShop>
|
|||||||
PlayDenySound(Player);
|
PlayDenySound(Player);
|
||||||
|
|
||||||
Player.closeInventory();
|
Player.closeInventory();
|
||||||
Shop.ResetPlayer(Player);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -76,7 +85,6 @@ public class PetTagPage extends ShopPageBase<PetManager, PetShop>
|
|||||||
Plugin.GetRepository().RemovePetNameTag(Player.getName());
|
Plugin.GetRepository().RemovePetNameTag(Player.getName());
|
||||||
|
|
||||||
Player.closeInventory();
|
Player.closeInventory();
|
||||||
Shop.ResetPlayer(Player);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetTagName(String tagName)
|
public void SetTagName(String tagName)
|
||||||
|
@ -91,6 +91,9 @@ public abstract class ShopBase<PluginType extends MiniPlugin> implements Listene
|
|||||||
if (!_openedShop.contains(player.getName()) && entity.isCustomNameVisible() && entity.getCustomName() != null && ChatColor.stripColor(entity.getCustomName()).equalsIgnoreCase(ChatColor.stripColor(Name)))
|
if (!_openedShop.contains(player.getName()) && entity.isCustomNameVisible() && entity.getCustomName() != null && ChatColor.stripColor(entity.getCustomName()).equalsIgnoreCase(ChatColor.stripColor(Name)))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (!CanOpenShop(player))
|
||||||
|
return false;
|
||||||
|
|
||||||
_openedShop.add(player.getName());
|
_openedShop.add(player.getName());
|
||||||
|
|
||||||
OpenShopForPlayer(player);
|
OpenShopForPlayer(player);
|
||||||
@ -138,14 +141,14 @@ public abstract class ShopBase<PluginType extends MiniPlugin> implements Listene
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean CanOpenShop(Player player)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected void OpenShopForPlayer(Player player) { }
|
protected void OpenShopForPlayer(Player player) { }
|
||||||
|
|
||||||
protected void CloseShopForPlayer(Player player) { }
|
protected void CloseShopForPlayer(Player player) { }
|
||||||
|
|
||||||
public void ResetPlayer(Player player)
|
|
||||||
{
|
|
||||||
PlayerPageMap.remove(player.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void OnPlayerQuit(PlayerQuitEvent event)
|
public void OnPlayerQuit(PlayerQuitEvent event)
|
||||||
@ -169,12 +172,10 @@ public abstract class ShopBase<PluginType extends MiniPlugin> implements Listene
|
|||||||
if (PlayerPageMap.containsKey(player.getName()))
|
if (PlayerPageMap.containsKey(player.getName()))
|
||||||
{
|
{
|
||||||
PlayerPageMap.get(player.getName()).PlayerClosed();
|
PlayerPageMap.get(player.getName()).PlayerClosed();
|
||||||
}
|
}
|
||||||
|
|
||||||
SetCurrentPageForPlayer(player, page);
|
SetCurrentPageForPlayer(player, page);
|
||||||
|
|
||||||
player.closeInventory();
|
|
||||||
|
|
||||||
player.openInventory(page);
|
player.openInventory(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -259,14 +259,26 @@ public class ConfirmationPage<PluginType extends MiniPlugin, ShopType extends Sh
|
|||||||
{
|
{
|
||||||
if (_progressCount >= 20)
|
if (_progressCount >= 20)
|
||||||
{
|
{
|
||||||
if (_returnPage != null)
|
try
|
||||||
Shop.OpenPageForPlayer(Player, _returnPage);
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
Player.closeInventory();
|
if (_returnPage != null)
|
||||||
|
{
|
||||||
|
Shop.OpenPageForPlayer(Player, _returnPage);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Player.closeInventory();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
exception.printStackTrace();
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
Plugin.GetScheduler().cancelTask(_taskId);
|
||||||
|
Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
Plugin.GetScheduler().cancelTask(_taskId);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ import mineplex.core.task.TaskManager;
|
|||||||
import mineplex.core.teleport.Teleport;
|
import mineplex.core.teleport.Teleport;
|
||||||
import mineplex.core.updater.FileUpdater;
|
import mineplex.core.updater.FileUpdater;
|
||||||
import mineplex.core.updater.Updater;
|
import mineplex.core.updater.Updater;
|
||||||
|
import mineplex.hub.party.PartyManager;
|
||||||
import mineplex.hub.server.ServerManager;
|
import mineplex.hub.server.ServerManager;
|
||||||
import mineplex.minecraft.game.classcombat.Class.ClassManager;
|
import mineplex.minecraft.game.classcombat.Class.ClassManager;
|
||||||
import mineplex.minecraft.game.classcombat.Condition.SkillConditionManager;
|
import mineplex.minecraft.game.classcombat.Condition.SkillConditionManager;
|
||||||
@ -74,9 +75,10 @@ public class Hub extends JavaPlugin implements INautilusPlugin, IRelation
|
|||||||
//Main Modules
|
//Main Modules
|
||||||
PacketHandler packetHandler = new PacketHandler(this);
|
PacketHandler packetHandler = new PacketHandler(this);
|
||||||
Portal portal = new Portal(this);
|
Portal portal = new Portal(this);
|
||||||
new HubManager(this, clientManager, donationManager, new DisguiseManager(this, packetHandler), new TaskManager(this, GetWebServerAddress()), portal);
|
PartyManager partyManager = new PartyManager(this, clientManager);
|
||||||
|
new HubManager(this, clientManager, donationManager, new DisguiseManager(this, packetHandler), new TaskManager(this, GetWebServerAddress()), portal, partyManager);
|
||||||
new Stacker(this);
|
new Stacker(this);
|
||||||
new ServerManager(this, clientManager, donationManager, portal);
|
new ServerManager(this, clientManager, donationManager, portal, partyManager);
|
||||||
new Chat(this, clientManager);
|
new Chat(this, clientManager);
|
||||||
new MemoryFix(this);
|
new MemoryFix(this);
|
||||||
new FileUpdater(this, portal);
|
new FileUpdater(this, portal);
|
||||||
|
@ -23,7 +23,6 @@ import org.bukkit.entity.Chicken;
|
|||||||
import org.bukkit.entity.Cow;
|
import org.bukkit.entity.Cow;
|
||||||
import org.bukkit.entity.Egg;
|
import org.bukkit.entity.Egg;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Horse;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Pig;
|
import org.bukkit.entity.Pig;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -41,7 +40,6 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
|||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerPickupItemEvent;
|
import org.bukkit.event.player.PlayerPickupItemEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
@ -74,7 +72,6 @@ import mineplex.core.portal.Portal;
|
|||||||
import mineplex.core.task.TaskManager;
|
import mineplex.core.task.TaskManager;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.hub.commands.HorseSpawn;
|
|
||||||
import mineplex.hub.modules.MountManager;
|
import mineplex.hub.modules.MountManager;
|
||||||
import mineplex.hub.party.Party;
|
import mineplex.hub.party.Party;
|
||||||
import mineplex.hub.party.PartyManager;
|
import mineplex.hub.party.PartyManager;
|
||||||
@ -106,7 +103,7 @@ public class HubManager extends MiniClientPlugin<HubClient>
|
|||||||
|
|
||||||
private HashSet<LivingEntity> _mobs = new HashSet<LivingEntity>();
|
private HashSet<LivingEntity> _mobs = new HashSet<LivingEntity>();
|
||||||
|
|
||||||
public HubManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, DisguiseManager disguiseManager, TaskManager taskManager, Portal portal)
|
public HubManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, DisguiseManager disguiseManager, TaskManager taskManager, Portal portal, PartyManager partyManager)
|
||||||
{
|
{
|
||||||
super("Hub Manager", plugin);
|
super("Hub Manager", plugin);
|
||||||
|
|
||||||
@ -122,7 +119,7 @@ public class HubManager extends MiniClientPlugin<HubClient>
|
|||||||
new Dragon(this);
|
new Dragon(this);
|
||||||
new MountManager(this);
|
new MountManager(this);
|
||||||
|
|
||||||
_partyManager = new PartyManager(this);
|
_partyManager = partyManager;
|
||||||
_tutorialManager = new TutorialManager(this, donationManager, taskManager, _textCreator);
|
_tutorialManager = new TutorialManager(this, donationManager, taskManager, _textCreator);
|
||||||
|
|
||||||
DragonTextB = GetDragonText();
|
DragonTextB = GetDragonText();
|
||||||
|
@ -59,7 +59,7 @@ public class Party
|
|||||||
//Add Players
|
//Add Players
|
||||||
for (Player player : Bukkit.getOnlinePlayers())
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
_scoreboard.getTeam(Manager.Manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
_scoreboard.getTeam(Manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Owners
|
//Owners
|
||||||
@ -132,7 +132,7 @@ public class Party
|
|||||||
_players.remove(player.getName());
|
_players.remove(player.getName());
|
||||||
|
|
||||||
//Set Scoreboard
|
//Set Scoreboard
|
||||||
_scoreboard.getTeam(Manager.Manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
_scoreboard.getTeam(Manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
||||||
|
|
||||||
if (leader && _players.size() > 0)
|
if (leader && _players.size() > 0)
|
||||||
{
|
{
|
||||||
@ -154,7 +154,7 @@ public class Party
|
|||||||
if (_players.contains(player.getName()))
|
if (_players.contains(player.getName()))
|
||||||
_scoreboard.getTeam("Party").addPlayer(player);
|
_scoreboard.getTeam("Party").addPlayer(player);
|
||||||
else
|
else
|
||||||
_scoreboard.getTeam(Manager.Manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
_scoreboard.getTeam(Manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
||||||
|
|
||||||
if (_creator.equals(player.getName()))
|
if (_creator.equals(player.getName()))
|
||||||
{
|
{
|
||||||
@ -182,8 +182,12 @@ public class Party
|
|||||||
for (String name : _players)
|
for (String name : _players)
|
||||||
{
|
{
|
||||||
Player player = UtilPlayer.searchExact(name);
|
Player player = UtilPlayer.searchExact(name);
|
||||||
UtilPlayer.message(player, F.main("Party", message));
|
|
||||||
player.playSound(player.getLocation(), Sound.NOTE_PLING, 1f, 1.5f);
|
if (player != null && player.isOnline())
|
||||||
|
{
|
||||||
|
UtilPlayer.message(player, F.main("Party", message));
|
||||||
|
player.playSound(player.getLocation(), Sound.NOTE_PLING, 1f, 1.5f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,24 +8,25 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import mineplex.core.MiniPlugin;
|
import mineplex.core.MiniPlugin;
|
||||||
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.hub.HubManager;
|
|
||||||
import mineplex.hub.party.commands.PartyCommand;
|
import mineplex.hub.party.commands.PartyCommand;
|
||||||
|
|
||||||
public class PartyManager extends MiniPlugin
|
public class PartyManager extends MiniPlugin
|
||||||
{
|
{
|
||||||
public HubManager Manager;
|
private CoreClientManager _clientManager;
|
||||||
|
|
||||||
public HashSet<Party> _parties = new HashSet<Party>();
|
public HashSet<Party> _parties = new HashSet<Party>();
|
||||||
|
|
||||||
public PartyManager(HubManager manager)
|
public PartyManager(JavaPlugin plugin, CoreClientManager clientManager)
|
||||||
{
|
{
|
||||||
super("Party Manager", manager.GetPlugin());
|
super("Party Manager", plugin);
|
||||||
|
|
||||||
Manager = manager;
|
_clientManager = clientManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -33,6 +34,11 @@ public class PartyManager extends MiniPlugin
|
|||||||
{
|
{
|
||||||
AddCommand(new PartyCommand(this));
|
AddCommand(new PartyCommand(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CoreClientManager GetClients()
|
||||||
|
{
|
||||||
|
return _clientManager;
|
||||||
|
}
|
||||||
|
|
||||||
public Party CreateParty(Player player)
|
public Party CreateParty(Player player)
|
||||||
{
|
{
|
||||||
|
@ -6,4 +6,7 @@ public class ServerInfo
|
|||||||
public String MOTD = "Retrieving status";
|
public String MOTD = "Retrieving status";
|
||||||
public int CurrentPlayers = 0;
|
public int CurrentPlayers = 0;
|
||||||
public int MaxPlayers = 0;
|
public int MaxPlayers = 0;
|
||||||
|
public String Map;
|
||||||
|
public String ServerType;
|
||||||
|
public String Game;
|
||||||
}
|
}
|
@ -35,6 +35,8 @@ import mineplex.core.donation.DonationManager;
|
|||||||
import mineplex.core.portal.Portal;
|
import mineplex.core.portal.Portal;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
import mineplex.hub.party.Party;
|
||||||
|
import mineplex.hub.party.PartyManager;
|
||||||
import mineplex.hub.server.command.ServerNpcCommand;
|
import mineplex.hub.server.command.ServerNpcCommand;
|
||||||
import mineplex.hub.server.ui.ServerNpcShop;
|
import mineplex.hub.server.ui.ServerNpcShop;
|
||||||
|
|
||||||
@ -43,6 +45,7 @@ public class ServerManager extends MiniPlugin implements PluginMessageListener
|
|||||||
private CoreClientManager _clientManager;
|
private CoreClientManager _clientManager;
|
||||||
private DonationManager _donationManager;
|
private DonationManager _donationManager;
|
||||||
private Portal _portal;
|
private Portal _portal;
|
||||||
|
private PartyManager _partyManager;
|
||||||
|
|
||||||
private NautHashMap<String, List<ServerInfo>> _serverNpcMap = new NautHashMap<String, List<ServerInfo>>();
|
private NautHashMap<String, List<ServerInfo>> _serverNpcMap = new NautHashMap<String, List<ServerInfo>>();
|
||||||
private NautHashMap<String, ServerNpcShop> _serverNpcShopMap = new NautHashMap<String, ServerNpcShop>();
|
private NautHashMap<String, ServerNpcShop> _serverNpcShopMap = new NautHashMap<String, ServerNpcShop>();
|
||||||
@ -52,13 +55,14 @@ public class ServerManager extends MiniPlugin implements PluginMessageListener
|
|||||||
private boolean _update = true;
|
private boolean _update = true;
|
||||||
private boolean _loading = false;
|
private boolean _loading = false;
|
||||||
|
|
||||||
public ServerManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, Portal portal)
|
public ServerManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, Portal portal, PartyManager partyManager)
|
||||||
{
|
{
|
||||||
super("Server Manager", plugin);
|
super("Server Manager", plugin);
|
||||||
|
|
||||||
_clientManager = clientManager;
|
_clientManager = clientManager;
|
||||||
_donationManager = donationManager;
|
_donationManager = donationManager;
|
||||||
_portal = portal;
|
_portal = portal;
|
||||||
|
_partyManager = partyManager;
|
||||||
|
|
||||||
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "BungeeCord");
|
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "BungeeCord");
|
||||||
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "BungeeSigns");
|
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "BungeeSigns");
|
||||||
@ -178,11 +182,22 @@ public class ServerManager extends MiniPlugin implements PluginMessageListener
|
|||||||
|
|
||||||
if (_serverInfoMap.containsKey(serverName))
|
if (_serverInfoMap.containsKey(serverName))
|
||||||
{
|
{
|
||||||
|
String[] args = motd.split("\\|");
|
||||||
|
|
||||||
ServerInfo serverInfo = _serverInfoMap.get(serverName);
|
ServerInfo serverInfo = _serverInfoMap.get(serverName);
|
||||||
serverInfo.MOTD = motd;
|
serverInfo.MOTD = args.length > 0 ? args[0] : motd;
|
||||||
serverInfo.CurrentPlayers = players;
|
serverInfo.CurrentPlayers = players;
|
||||||
serverInfo.MaxPlayers = maxPlayers;
|
serverInfo.MaxPlayers = 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(serverName, System.currentTimeMillis());
|
_serverUpdate.put(serverName, System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -272,12 +287,59 @@ public class ServerManager extends MiniPlugin implements PluginMessageListener
|
|||||||
Help(caller, null);
|
Help(caller, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SelectServer(org.bukkit.entity.Player player, String serverName)
|
public PartyManager getPartyManager()
|
||||||
{
|
{
|
||||||
player.leaveVehicle();
|
return _partyManager;
|
||||||
player.eject();
|
}
|
||||||
|
|
||||||
|
public void SelectServer(org.bukkit.entity.Player player, ServerInfo serverInfo)
|
||||||
|
{
|
||||||
|
Party party = _partyManager.GetParty(player);
|
||||||
|
|
||||||
_portal.SendPlayerToServer(player, serverName);
|
if (party != null)
|
||||||
|
{
|
||||||
|
if (player.getName().equals(party.GetLeader()))
|
||||||
|
{
|
||||||
|
for (String name : party.GetPlayers())
|
||||||
|
{
|
||||||
|
Player partyPlayer = UtilPlayer.searchExact(name);
|
||||||
|
|
||||||
|
if (partyPlayer == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (_clientManager.Get(partyPlayer).GetRank().Has(Rank.ULTRA) || _donationManager.Get(partyPlayer.getName()).OwnsUnknownPackage(serverInfo.ServerType + " ULTRA"))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
partyPlayer.leaveVehicle();
|
||||||
|
partyPlayer.eject();
|
||||||
|
|
||||||
|
_portal.SendPlayerToServer(partyPlayer, serverInfo.Name);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (String name : party.GetPlayers())
|
||||||
|
{
|
||||||
|
Player partyPlayer = UtilPlayer.searchExact(name);
|
||||||
|
|
||||||
|
if (partyPlayer == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (_clientManager.Get(partyPlayer).GetRank().Has(Rank.ULTRA) || _donationManager.Get(partyPlayer.getName()).OwnsUnknownPackage(serverInfo.ServerType + " ULTRA"))
|
||||||
|
{
|
||||||
|
partyPlayer.leaveVehicle();
|
||||||
|
partyPlayer.eject();
|
||||||
|
|
||||||
|
_portal.SendPlayerToServer(partyPlayer, serverInfo.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player.leaveVehicle();
|
||||||
|
player.eject();
|
||||||
|
|
||||||
|
_portal.SendPlayerToServer(player, serverInfo.Name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ListServerNpcs(Player caller)
|
public void ListServerNpcs(Player caller)
|
||||||
@ -437,4 +499,37 @@ public class ServerManager extends MiniPlugin implements PluginMessageListener
|
|||||||
_loading = false;
|
_loading = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int GetRequiredSlots(Player player, String serverType)
|
||||||
|
{
|
||||||
|
int slots = 0;
|
||||||
|
|
||||||
|
Party party = _partyManager.GetParty(player);
|
||||||
|
|
||||||
|
if (party != null)
|
||||||
|
{
|
||||||
|
if (player.getName().equals(party.GetLeader()))
|
||||||
|
{
|
||||||
|
for (String name : party.GetPlayers())
|
||||||
|
{
|
||||||
|
Player partyPlayer = UtilPlayer.searchExact(name);
|
||||||
|
|
||||||
|
if (partyPlayer == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (_clientManager.Get(partyPlayer).GetRank().Has(Rank.ULTRA) || _donationManager.Get(partyPlayer.getName()).OwnsUnknownPackage(serverType + " ULTRA"))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
slots++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!_clientManager.Get(player).GetRank().Has(Rank.ULTRA) && !_donationManager.Get(player.getName()).OwnsUnknownPackage(serverType + " ULTRA"))
|
||||||
|
slots++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return slots;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,13 @@ import java.util.Comparator;
|
|||||||
|
|
||||||
public class ServerSorter implements Comparator<ServerInfo>
|
public class ServerSorter implements Comparator<ServerInfo>
|
||||||
{
|
{
|
||||||
|
private int _requiredSlots;
|
||||||
|
|
||||||
|
public ServerSorter(int slots)
|
||||||
|
{
|
||||||
|
_requiredSlots = slots;
|
||||||
|
}
|
||||||
|
|
||||||
public int compare(ServerInfo a, ServerInfo b)
|
public int compare(ServerInfo a, ServerInfo b)
|
||||||
{
|
{
|
||||||
if ((a.MOTD.contains("Restarting")))
|
if ((a.MOTD.contains("Restarting")))
|
||||||
@ -12,12 +19,18 @@ public class ServerSorter implements Comparator<ServerInfo>
|
|||||||
if ((b.MOTD.contains("Restarting")))
|
if ((b.MOTD.contains("Restarting")))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if ((a.MOTD.contains("Recruiting") || a.MOTD.contains("Waiting") || a.MOTD.contains("Cup")) && !b.MOTD.contains("Recruiting") && !b.MOTD.contains("Waiting") && !b.MOTD.contains("Cup"))
|
if ((a.MOTD.contains("Recruiting") || a.MOTD.contains("Waiting") || a.MOTD.contains("Starting") || a.MOTD.contains("Cup")) && !b.MOTD.contains("Recruiting") && !b.MOTD.contains("Waiting") && !b.MOTD.contains("Starting") && !b.MOTD.contains("Cup"))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if ((b.MOTD.contains("Recruiting") || b.MOTD.contains("Waiting") || b.MOTD.contains("Cup")) && !a.MOTD.contains("Recruiting") && !a.MOTD.contains("Waiting") && !a.MOTD.contains("Cup"))
|
if ((b.MOTD.contains("Recruiting") || b.MOTD.contains("Waiting") || a.MOTD.contains("Starting") || b.MOTD.contains("Cup")) && !a.MOTD.contains("Recruiting") && !a.MOTD.contains("Waiting") && !a.MOTD.contains("Starting") && !a.MOTD.contains("Cup"))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
if (a.MaxPlayers - a.CurrentPlayers < _requiredSlots && b.MaxPlayers - b.CurrentPlayers >= _requiredSlots)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (b.MaxPlayers - b.CurrentPlayers < _requiredSlots && a.MaxPlayers - a.CurrentPlayers >= _requiredSlots)
|
||||||
|
return -1;
|
||||||
|
|
||||||
if (a.CurrentPlayers > b.CurrentPlayers)
|
if (a.CurrentPlayers > b.CurrentPlayers)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -3,21 +3,22 @@ package mineplex.hub.server.ui;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import mineplex.core.shop.item.IButton;
|
import mineplex.core.shop.item.IButton;
|
||||||
|
import mineplex.hub.server.ServerInfo;
|
||||||
|
|
||||||
public class JoinServerButton implements IButton
|
public class JoinServerButton implements IButton
|
||||||
{
|
{
|
||||||
private ServerNpcPage _page;
|
private ServerNpcPage _page;
|
||||||
private String _serverName;
|
private ServerInfo _serverInfo;
|
||||||
|
|
||||||
public JoinServerButton(ServerNpcPage page, String serverName)
|
public JoinServerButton(ServerNpcPage page, ServerInfo serverInfo)
|
||||||
{
|
{
|
||||||
_page = page;
|
_page = page;
|
||||||
_serverName = serverName;
|
_serverInfo = serverInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void Clicked(Player player)
|
public void Clicked(Player player)
|
||||||
{
|
{
|
||||||
_page.SelectServer(player, _serverName);
|
_page.SelectServer(player, _serverInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.Rank;
|
import mineplex.core.common.Rank;
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
import mineplex.core.shop.item.ShopItem;
|
import mineplex.core.shop.item.ShopItem;
|
||||||
import mineplex.core.shop.page.ShopPageBase;
|
import mineplex.core.shop.page.ShopPageBase;
|
||||||
|
import mineplex.hub.party.Party;
|
||||||
import mineplex.hub.server.ServerInfo;
|
import mineplex.hub.server.ServerInfo;
|
||||||
import mineplex.hub.server.ServerManager;
|
import mineplex.hub.server.ServerManager;
|
||||||
import mineplex.hub.server.ServerSorter;
|
import mineplex.hub.server.ServerSorter;
|
||||||
@ -32,75 +34,102 @@ public class ServerNpcPage extends ShopPageBase<ServerManager, ServerNpcShop>
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void BuildPage()
|
protected void BuildPage()
|
||||||
{
|
{
|
||||||
List<ServerInfo> serverList = Plugin.GetServerList(_serverNpcKey);
|
List<ServerInfo> serverList = Plugin.GetServerList(_serverNpcKey);
|
||||||
Collections.sort(serverList, new ServerSorter());
|
|
||||||
|
int slots = 1;
|
||||||
|
|
||||||
|
if (serverList.size() > 0)
|
||||||
|
{
|
||||||
|
slots = Plugin.GetRequiredSlots(Player, serverList.get(0).ServerType);
|
||||||
|
}
|
||||||
|
|
||||||
|
Collections.sort(serverList, new ServerSorter(slots));
|
||||||
|
|
||||||
int slot = 9;
|
int slot = 9;
|
||||||
int greenCount = 0;
|
int greenCount = 0;
|
||||||
int yellowCount = 0;
|
int yellowCount = 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)
|
for (ServerInfo serverInfo : serverList)
|
||||||
{
|
{
|
||||||
|
String inProgress = (serverInfo.Game == null || serverInfo.ServerType.equalsIgnoreCase("Competitive")) ? (ChatColor.RESET + C.Line + "Game in progress.") : (ChatColor.RESET + C.Line + "Click to spectate and wait for next game!");
|
||||||
Material status = Material.REDSTONE_BLOCK;
|
Material status = Material.REDSTONE_BLOCK;
|
||||||
List<String> lore = new ArrayList<String>();
|
List<String> lore = new ArrayList<String>();
|
||||||
|
|
||||||
if (slot >= 53)
|
if (slot >= 53)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if ((serverInfo.MOTD.contains("Recruiting") || serverInfo.MOTD.contains("Waiting") || serverInfo.MOTD.contains("Cup")) && slot < 15)
|
if ((serverInfo.MOTD.contains("Starting") || serverInfo.MOTD.contains("Recruiting") || serverInfo.MOTD.contains("Waiting") || serverInfo.MOTD.contains("Cup")) && slot < 15 && (serverInfo.MaxPlayers - serverInfo.CurrentPlayers) >= slots)
|
||||||
{
|
{
|
||||||
slot += 2;
|
slot += 2;
|
||||||
status = Material.EMERALD_BLOCK;
|
status = Material.EMERALD_BLOCK;
|
||||||
lore.add(ChatColor.RESET + serverInfo.MOTD);
|
|
||||||
lore.add(ChatColor.RESET + "" + serverInfo.CurrentPlayers + "/" + serverInfo.MaxPlayers);
|
|
||||||
lore.add(ChatColor.RESET + "");
|
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 (serverInfo.CurrentPlayers >= serverInfo.MaxPlayers)
|
||||||
{
|
{
|
||||||
if (!Client.GetRank().Has(Rank.ULTRA))
|
if (!Client.GetRank().Has(Rank.ULTRA))
|
||||||
lore.add(ChatColor.RESET + "" + ChatColor.YELLOW + "Get Ultra to join full servers!");
|
lore.add(openFull);
|
||||||
else
|
else
|
||||||
lore.add(ChatColor.RESET + "" + ChatColor.GREEN + "Click to join!");
|
lore.add(openFullUltra);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
lore.add(ChatColor.RESET + "" + ChatColor.GREEN + "Click to join!");
|
lore.add(ChatColor.RESET + C.Line + "Click to join!");
|
||||||
|
|
||||||
greenCount++;
|
greenCount++;
|
||||||
}
|
}
|
||||||
else if (serverInfo.MOTD.contains("In") || serverInfo.MOTD.contains("Restarting") || serverInfo.MOTD.contains("Starting"))
|
else if (serverInfo.MOTD.contains("In") || serverInfo.MOTD.contains("Restarting"))
|
||||||
{
|
{
|
||||||
if (slot <= 15)
|
if (slot <= 15)
|
||||||
slot = 27;
|
slot = 27;
|
||||||
else
|
else
|
||||||
slot++;
|
slot++;
|
||||||
|
|
||||||
status = Material.GOLD_BLOCK;
|
status = Material.GOLD_BLOCK;
|
||||||
lore.add(ChatColor.RESET + serverInfo.MOTD);
|
|
||||||
lore.add(ChatColor.RESET + "" + serverInfo.CurrentPlayers + "/" + serverInfo.MaxPlayers);
|
|
||||||
lore.add(ChatColor.RESET + "");
|
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.MOTD.contains("Restarting"))
|
if (serverInfo.MOTD.contains("Restarting"))
|
||||||
{
|
{
|
||||||
lore.add(ChatColor.RESET + "" + ChatColor.YELLOW + "Get Ultra to spectate full servers!");
|
lore.add(ChatColor.RESET + C.Line + "This server will be open shortly!");
|
||||||
status = Material.IRON_BLOCK;
|
status = Material.IRON_BLOCK;
|
||||||
}
|
}
|
||||||
else if (serverInfo.CurrentPlayers >= serverInfo.MaxPlayers)
|
else if (serverInfo.CurrentPlayers >= serverInfo.MaxPlayers)
|
||||||
{
|
{
|
||||||
if (!Client.GetRank().Has(Rank.ULTRA))
|
if (!Client.GetRank().Has(Rank.ULTRA))
|
||||||
lore.add(ChatColor.RESET + "" + ChatColor.YELLOW + "Get Ultra to spectate full servers!");
|
lore.add(openFull);
|
||||||
else
|
else
|
||||||
lore.add(ChatColor.RESET + "" + ChatColor.GREEN + "Click to spectate!");
|
lore.add(inProgress);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
lore.add(ChatColor.RESET + "" + ChatColor.GREEN + "Click to spectate!");
|
lore.add(inProgress);
|
||||||
|
|
||||||
yellowCount++;
|
yellowCount++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
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.Name));
|
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 (greenCount < 3)
|
while (greenCount < 3)
|
||||||
@ -122,8 +151,16 @@ public class ServerNpcPage extends ShopPageBase<ServerManager, ServerNpcShop>
|
|||||||
BuildPage();
|
BuildPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SelectServer(Player player, String serverName)
|
public void SelectServer(Player player, ServerInfo serverInfo)
|
||||||
{
|
{
|
||||||
Plugin.SelectServer(player, serverName);
|
int slots = Plugin.GetRequiredSlots(player, serverInfo.ServerType);
|
||||||
|
|
||||||
|
if (serverInfo.MaxPlayers - serverInfo.CurrentPlayers < slots)
|
||||||
|
{
|
||||||
|
PlayDenySound(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Plugin.SelectServer(player, serverInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,18 @@
|
|||||||
package mineplex.hub.server.ui;
|
package mineplex.hub.server.ui;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
import mineplex.core.shop.ShopBase;
|
import mineplex.core.shop.ShopBase;
|
||||||
import mineplex.core.shop.page.ShopPageBase;
|
import mineplex.core.shop.page.ShopPageBase;
|
||||||
|
import mineplex.hub.party.Party;
|
||||||
|
import mineplex.hub.server.ServerInfo;
|
||||||
import mineplex.hub.server.ServerManager;
|
import mineplex.hub.server.ServerManager;
|
||||||
|
|
||||||
public class ServerNpcShop extends ShopBase<ServerManager>
|
public class ServerNpcShop extends ShopBase<ServerManager>
|
||||||
@ -20,6 +27,32 @@ public class ServerNpcShop extends ShopBase<ServerManager>
|
|||||||
{
|
{
|
||||||
return new ServerNpcPage(Plugin, this, ClientManager, DonationManager, Name, player, Name);
|
return new ServerNpcPage(Plugin, this, ClientManager, DonationManager, Name, player, Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean CanOpenShop(Player player)
|
||||||
|
{
|
||||||
|
List<ServerInfo> serverInfos = Plugin.GetServerList(Name);
|
||||||
|
|
||||||
|
Party party = Plugin.getPartyManager().GetParty(player);
|
||||||
|
|
||||||
|
if (party != null && !player.getName().equalsIgnoreCase(party.GetLeader()))
|
||||||
|
{
|
||||||
|
player.playSound(player.getLocation(), Sound.ITEM_BREAK, 1, .6f);
|
||||||
|
player.sendMessage(F.main("Party", "Only Party Leaders can join games."));
|
||||||
|
player.sendMessage(F.main("Party", "Type " + C.cGreen + "/party leave" + C.cGray + " if you wish to leave your party."));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int slots = serverInfos.size() > 0 ? Plugin.GetRequiredSlots(player, serverInfos.get(0).ServerType) : 1;
|
||||||
|
|
||||||
|
for (ServerInfo serverInfo : serverInfos)
|
||||||
|
{
|
||||||
|
if (serverInfo.MaxPlayers - serverInfo.CurrentPlayers >= slots)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public void UpdatePages()
|
public void UpdatePages()
|
||||||
{
|
{
|
||||||
|
@ -332,21 +332,23 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void MessageMOTD(ServerListPingEvent event)
|
public void MessageMOTD(ServerListPingEvent event)
|
||||||
{
|
{
|
||||||
|
String extrainformation = "|" + _serverConfig.ServerType + "|" + (_game == null ? "Unknown" : _game.GetName()) + "|" + ((_game == null || _game.WorldData == null) ? "Unknown" : _game.WorldData.MapName);
|
||||||
|
|
||||||
if (_game == null || _game.GetState() == GameState.Recruit)
|
if (_game == null || _game.GetState() == GameState.Recruit)
|
||||||
{
|
{
|
||||||
if (_game != null && _game.GetCountdown() != -1)
|
if (_game != null && _game.GetCountdown() != -1)
|
||||||
{
|
{
|
||||||
event.setMotd(ChatColor.GREEN + "Starting in " + _game.GetCountdown() + " Seconds");
|
event.setMotd(ChatColor.GREEN + "Starting in " + _game.GetCountdown() + " Seconds" + extrainformation);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
event.setMotd(ChatColor.GREEN + "Recruiting");
|
event.setMotd(ChatColor.GREEN + "Recruiting" + extrainformation);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
event.setMotd(ChatColor.YELLOW + "In Progress");
|
event.setMotd(ChatColor.YELLOW + "In Progress" + extrainformation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -447,13 +447,15 @@ public abstract class GameEngine<GameType extends IGame<ArenaType, PlayerType>,
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void MessageMOTD(ServerListPingEvent event)
|
public void MessageMOTD(ServerListPingEvent event)
|
||||||
{
|
{
|
||||||
|
String extrainformation = "|Competitive|" + GetGameType() + (GetActiveGames().size() != 0 ? "|" + GetActiveGames().get(0).GetArena().GetName() : "");
|
||||||
|
|
||||||
if (ActiveGames.size() > 0 || GamesInSetup.size() > 0)
|
if (ActiveGames.size() > 0 || GamesInSetup.size() > 0)
|
||||||
{
|
{
|
||||||
event.setMotd(ChatColor.YELLOW + "In Progress");
|
event.setMotd(ChatColor.YELLOW + "In Progress" + extrainformation);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
event.setMotd(ChatColor.GREEN + "Recruiting");
|
event.setMotd(ChatColor.GREEN + "Recruiting" + extrainformation);
|
||||||
}
|
}
|
||||||
|
|
||||||
event.setMaxPlayers(10);
|
event.setMaxPlayers(10);
|
||||||
|
Loading…
Reference in New Issue
Block a user