Merge branch 'master' of ssh://184.154.0.242:7999/min/Mineplex into alex-ctf
This commit is contained in:
commit
f05cdd4915
@ -61,6 +61,9 @@ public class CoreClient
|
|||||||
|
|
||||||
public Rank GetRank()
|
public Rank GetRank()
|
||||||
{
|
{
|
||||||
|
if (_rank == null)
|
||||||
|
_rank = Rank.ALL;
|
||||||
|
|
||||||
return _rank;
|
return _rank;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,7 +125,6 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
if (client == null)
|
if (client == null)
|
||||||
{
|
{
|
||||||
client = new CoreClient(name);
|
client = new CoreClient(name);
|
||||||
client.SetRank(Rank.ALL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return client;
|
return client;
|
||||||
|
@ -151,7 +151,7 @@ public class LoadingWindow implements Runnable, Listener {
|
|||||||
{
|
{
|
||||||
Player player = Bukkit.getPlayer(_playersUUID);
|
Player player = Bukkit.getPlayer(_playersUUID);
|
||||||
|
|
||||||
if (player == null || _inv == null ? !player.getOpenInventory().equals(_currentInventory) : (_inv != null && !player.getOpenInventory().getTopInventory().equals(_inv))) {
|
if (player == null || player.getOpenInventory() == null || player.getOpenInventory().getTopInventory() == null || _inv == null ? !player.getOpenInventory().equals(_currentInventory) : (_inv != null && !player.getOpenInventory().getTopInventory().equals(_inv))) {
|
||||||
end();
|
end();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,8 @@ import java.util.Iterator;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
import java.util.Timer;
|
||||||
|
import java.util.TimerTask;
|
||||||
import java.util.logging.FileHandler;
|
import java.util.logging.FileHandler;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
@ -42,10 +44,12 @@ public class ServerMonitor
|
|||||||
private static Map<String, ServerGroup> _serverGroupMap = null;
|
private static Map<String, ServerGroup> _serverGroupMap = null;
|
||||||
private static List<DedicatedServer> _dedicatedServers = null;
|
private static List<DedicatedServer> _dedicatedServers = null;
|
||||||
private static HashSet<String> _deadServers = new HashSet<String>();
|
private static HashSet<String> _deadServers = new HashSet<String>();
|
||||||
|
private static HashSet<String> _delayedKill = new HashSet<String>();
|
||||||
private static HashSet<String> _laggyServers = new HashSet<String>();
|
private static HashSet<String> _laggyServers = new HashSet<String>();
|
||||||
|
|
||||||
private static SimpleDateFormat _dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
|
private static SimpleDateFormat _dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
|
||||||
private static Logger _logger = Logger.getLogger("ServerMonitor");
|
private static Logger _logger = Logger.getLogger("ServerMonitor");
|
||||||
|
private static Timer _timer = new Timer();
|
||||||
|
|
||||||
private static int _totalPlayers = 0;
|
private static int _totalPlayers = 0;
|
||||||
private static Region _region;
|
private static Region _region;
|
||||||
@ -123,6 +127,8 @@ public class ServerMonitor
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (MinecraftServer minecraftServer : _serverStatuses)
|
for (MinecraftServer minecraftServer : _serverStatuses)
|
||||||
|
{
|
||||||
|
if (!ignoreServer(minecraftServer.getGroup()))
|
||||||
{
|
{
|
||||||
if (minecraftServer.getMotd().contains("Finished") || (minecraftServer.getGroup().equalsIgnoreCase("UltraHardcore") && minecraftServer.getMotd().contains("Restarting") && minecraftServer.getPlayerCount() == 0))
|
if (minecraftServer.getMotd().contains("Finished") || (minecraftServer.getGroup().equalsIgnoreCase("UltraHardcore") && minecraftServer.getMotd().contains("Restarting") && minecraftServer.getPlayerCount() == 0))
|
||||||
{
|
{
|
||||||
@ -131,6 +137,7 @@ public class ServerMonitor
|
|||||||
handleUserServerGroup(_serverGroupMap.get(minecraftServer.getGroup()));
|
handleUserServerGroup(_serverGroupMap.get(minecraftServer.getGroup()));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (DedicatedServer server : _dedicatedServers)
|
for (DedicatedServer server : _dedicatedServers)
|
||||||
{
|
{
|
||||||
@ -202,6 +209,9 @@ public class ServerMonitor
|
|||||||
|
|
||||||
for (ServerGroup groupStatus : _serverGroups)
|
for (ServerGroup groupStatus : _serverGroups)
|
||||||
{
|
{
|
||||||
|
if (ignoreServer(groupStatus.getName()))
|
||||||
|
continue;
|
||||||
|
|
||||||
NautHashMap<Integer, MinecraftServer> serverMap = new NautHashMap<Integer, MinecraftServer>();
|
NautHashMap<Integer, MinecraftServer> serverMap = new NautHashMap<Integer, MinecraftServer>();
|
||||||
|
|
||||||
for (Iterator<MinecraftServer> serverIterator = groupStatus.getServers().iterator(); serverIterator.hasNext();)
|
for (Iterator<MinecraftServer> serverIterator = groupStatus.getServers().iterator(); serverIterator.hasNext();)
|
||||||
@ -226,17 +236,6 @@ public class ServerMonitor
|
|||||||
exception.printStackTrace();
|
exception.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
if (groupStatus.getHost() == null || groupStatus.getHost().isEmpty())
|
|
||||||
{
|
|
||||||
if (groupStatus.getName().startsWith("0"))
|
|
||||||
{
|
|
||||||
int serverCount = groupStatus.getServers().size();
|
|
||||||
log(groupStatus.getName() + " : " + groupStatus.getPlayerCount() + " players on " + serverCount + " servers " + String.format("%.2f", ((double)serverCount * (double)groupStatus.getRequiredCpu() / totalCPU)) + "% CPU," + String.format("%.2f", ((double)serverCount * (double)groupStatus.getRequiredRam() / totalRAM)) + "% RAM", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HashSet<String> onlineServers = new HashSet<String>();
|
HashSet<String> onlineServers = new HashSet<String>();
|
||||||
@ -386,22 +385,36 @@ public class ServerMonitor
|
|||||||
deadServers.addAll(_deadServers);
|
deadServers.addAll(_deadServers);
|
||||||
|
|
||||||
_deadServers.clear();
|
_deadServers.clear();
|
||||||
for (MinecraftServer deadServer : _repository.getDeadServers())
|
for (final MinecraftServer deadServer : _repository.getDeadServers())
|
||||||
{
|
{
|
||||||
if (deadServer.getUptime() <= 10 || ignoreServer(deadServer.getGroup()))
|
if (deadServer.getUptime() <= 10 || ignoreServer(deadServer.getGroup()))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (_count == 0 || deadServers.contains(deadServer.getName()))
|
if (_count == 0 || deadServers.contains(deadServer.getName()))
|
||||||
{
|
{
|
||||||
|
copyServerLog(deadServer);
|
||||||
killServer(deadServer.getName(), deadServer.getPublicAddress(), deadServer.getPlayerCount(), "[KILLED] [DEAD] " + deadServer.getName() + ":" + deadServer.getPublicAddress(), true);
|
killServer(deadServer.getName(), deadServer.getPublicAddress(), deadServer.getPlayerCount(), "[KILLED] [DEAD] " + deadServer.getName() + ":" + deadServer.getPublicAddress(), true);
|
||||||
|
|
||||||
handleUserServerGroup(_serverGroupMap.get(deadServer.getGroup()));
|
handleUserServerGroup(_serverGroupMap.get(deadServer.getGroup()));
|
||||||
}
|
}
|
||||||
else
|
else if (!_delayedKill.contains(deadServer.getName()))
|
||||||
|
{
|
||||||
|
startTimingReport(deadServer);
|
||||||
|
|
||||||
|
_timer.schedule(new TimerTask()
|
||||||
|
{
|
||||||
|
public void run()
|
||||||
{
|
{
|
||||||
_deadServers.add(deadServer.getName());
|
_deadServers.add(deadServer.getName());
|
||||||
|
_delayedKill.remove(deadServer.getName());
|
||||||
|
|
||||||
|
stopTimingReport(deadServer);
|
||||||
log("[IMPENDING DEATH] : " + deadServer.getName() + ":" + deadServer.getPublicAddress());
|
log("[IMPENDING DEATH] : " + deadServer.getName() + ":" + deadServer.getPublicAddress());
|
||||||
}
|
}
|
||||||
|
}, 20 * 1000);
|
||||||
|
|
||||||
|
_delayedKill.add(deadServer.getName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -653,6 +666,105 @@ public class ServerMonitor
|
|||||||
killServer(serverToKill.getName(), serverToKill.getPublicAddress(), serverToKill.getPlayerCount(), message, true);
|
killServer(serverToKill.getName(), serverToKill.getPublicAddress(), serverToKill.getPlayerCount(), message, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void startTimingReport(final MinecraftServer server)
|
||||||
|
{
|
||||||
|
if (_debug)
|
||||||
|
return;
|
||||||
|
|
||||||
|
String cmd = "/home/mineplex/remoteStartTiming.sh";
|
||||||
|
|
||||||
|
ProcessRunner pr = new ProcessRunner(new String[] {"/bin/sh", cmd, server.getPublicAddress(), server.getName() });
|
||||||
|
pr.start(new GenericRunnable<Boolean>()
|
||||||
|
{
|
||||||
|
public void run(Boolean error)
|
||||||
|
{
|
||||||
|
if (error)
|
||||||
|
log("[TIMING START] Errored " + server.getName() + "(" + server.getPublicAddress() + ")");
|
||||||
|
else
|
||||||
|
log("[TIMING START] Succeeded " + server.getName() + "(" + server.getPublicAddress() + ")");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
pr.join(100);
|
||||||
|
}
|
||||||
|
catch (InterruptedException e1)
|
||||||
|
{
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pr.isDone())
|
||||||
|
_processes.add(pr);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void stopTimingReport(final MinecraftServer server)
|
||||||
|
{
|
||||||
|
if (_debug)
|
||||||
|
return;
|
||||||
|
|
||||||
|
String cmd = "/home/mineplex/remoteStopTiming.sh";
|
||||||
|
|
||||||
|
ProcessRunner pr = new ProcessRunner(new String[] {"/bin/sh", cmd, server.getPublicAddress(), server.getName() });
|
||||||
|
pr.start(new GenericRunnable<Boolean>()
|
||||||
|
{
|
||||||
|
public void run(Boolean error)
|
||||||
|
{
|
||||||
|
if (error)
|
||||||
|
log("[TIMING PASTE] Errored " + server.getName() + "(" + server.getPublicAddress() + ")");
|
||||||
|
else
|
||||||
|
log("[TIMING PASTE] Succeeded " + server.getName() + "(" + server.getPublicAddress() + ")");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
pr.join(100);
|
||||||
|
}
|
||||||
|
catch (InterruptedException e1)
|
||||||
|
{
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pr.isDone())
|
||||||
|
_processes.add(pr);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void copyServerLog(final MinecraftServer server)
|
||||||
|
{
|
||||||
|
if (_debug)
|
||||||
|
return;
|
||||||
|
|
||||||
|
String cmd = "/home/mineplex/easyRemoteCopyLog.sh";
|
||||||
|
|
||||||
|
ProcessRunner pr = new ProcessRunner(new String[] {"/bin/sh", cmd, server.getPublicAddress(), server.getName() });
|
||||||
|
pr.start(new GenericRunnable<Boolean>()
|
||||||
|
{
|
||||||
|
public void run(Boolean error)
|
||||||
|
{
|
||||||
|
if (error)
|
||||||
|
log("[COPY LOG] Errored " + server.getName() + "(" + server.getPublicAddress() + ")");
|
||||||
|
else
|
||||||
|
log("[COPY LOG] Succeeded " + server.getName() + "(" + server.getPublicAddress() + ")");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
pr.join(100);
|
||||||
|
}
|
||||||
|
catch (InterruptedException e1)
|
||||||
|
{
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pr.isDone())
|
||||||
|
_processes.add(pr);
|
||||||
|
}
|
||||||
|
|
||||||
private static void startServer(final DedicatedServer serverSpace, final ServerGroup serverGroup, final int serverNum, final boolean free)
|
private static void startServer(final DedicatedServer serverSpace, final ServerGroup serverGroup, final int serverNum, final boolean free)
|
||||||
{
|
{
|
||||||
if (_debug)
|
if (_debug)
|
||||||
|
Loading…
Reference in New Issue
Block a user