Unified shutdown functions for Telnet.
This commit is contained in:
parent
af70b6bc0c
commit
b3c5f24b25
@ -41,7 +41,7 @@ public class ServerAbort implements ITelnetCommand
|
|||||||
@Override
|
@Override
|
||||||
public String handle(ChannelHandlerContext ctx, String[] args)
|
public String handle(ChannelHandlerContext ctx, String[] args)
|
||||||
{
|
{
|
||||||
Shutdown.getInstance().telnetAbort(ctx.channel().remoteAddress().toString());
|
Shutdown.getInstance().abort(null);
|
||||||
return "Server shutdown/restart aborted!";
|
return "Server shutdown/restart aborted!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerRestart implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, true);
|
Shutdown.getInstance().startShutdown(null, time, true);
|
||||||
return "Server will restart in " + time + " seconds!";
|
return "Server will restart in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerShutdown implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, false);
|
Shutdown.getInstance().startShutdown(null, time, false);
|
||||||
return "Server will shutdown in " + time + " seconds!";
|
return "Server will shutdown in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -400,7 +400,7 @@ public class GameServer
|
|||||||
if (Config.RESTART_ON_DEADLOCK)
|
if (Config.RESTART_ON_DEADLOCK)
|
||||||
{
|
{
|
||||||
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
||||||
Shutdown.getInstance().startTelnetShutdown("DeadLockDetector - Auto Restart", 60, true);
|
Shutdown.getInstance().startShutdown(null, 60, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
_deadDetectThread.setDaemon(true);
|
_deadDetectThread.setDaemon(true);
|
||||||
|
@ -83,65 +83,6 @@ public class Shutdown extends Thread
|
|||||||
Broadcast.toAllOnlinePlayers(sysm);
|
Broadcast.toAllOnlinePlayers(sysm);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startTelnetShutdown(String IP, int seconds, boolean restart)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
|
|
||||||
_shutdownMode = restart ? GM_RESTART : GM_SHUTDOWN;
|
|
||||||
|
|
||||||
if (_shutdownMode > 0)
|
|
||||||
{
|
|
||||||
switch (seconds)
|
|
||||||
{
|
|
||||||
case 540:
|
|
||||||
case 480:
|
|
||||||
case 420:
|
|
||||||
case 360:
|
|
||||||
case 300:
|
|
||||||
case 240:
|
|
||||||
case 180:
|
|
||||||
case 120:
|
|
||||||
case 60:
|
|
||||||
case 30:
|
|
||||||
case 10:
|
|
||||||
case 5:
|
|
||||||
case 4:
|
|
||||||
case 3:
|
|
||||||
case 2:
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
SendServerQuit(seconds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
}
|
|
||||||
_counterInstance = new Shutdown(seconds, restart);
|
|
||||||
_counterInstance.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function aborts a running countdown
|
|
||||||
* @param IP IP Which Issued shutdown command
|
|
||||||
*/
|
|
||||||
public void telnetAbort(String IP)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
Broadcast.toAllOnlinePlayers("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor is only used internal to create the shutdown-hook instance
|
* Default constructor is only used internal to create the shutdown-hook instance
|
||||||
*/
|
*/
|
||||||
@ -382,7 +323,7 @@ public class Shutdown extends Thread
|
|||||||
*/
|
*/
|
||||||
public void abort(L2PcInstance activeChar)
|
public void abort(L2PcInstance activeChar)
|
||||||
{
|
{
|
||||||
LOGGER.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
LOGGER.warning("GM: " + (activeChar != null ? activeChar.getName() + "(" + activeChar.getObjectId() + ") " : "") + "issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
||||||
if (_counterInstance != null)
|
if (_counterInstance != null)
|
||||||
{
|
{
|
||||||
_counterInstance._abort();
|
_counterInstance._abort();
|
||||||
|
@ -41,7 +41,7 @@ public class ServerAbort implements ITelnetCommand
|
|||||||
@Override
|
@Override
|
||||||
public String handle(ChannelHandlerContext ctx, String[] args)
|
public String handle(ChannelHandlerContext ctx, String[] args)
|
||||||
{
|
{
|
||||||
Shutdown.getInstance().telnetAbort(ctx.channel().remoteAddress().toString());
|
Shutdown.getInstance().abort(null);
|
||||||
return "Server shutdown/restart aborted!";
|
return "Server shutdown/restart aborted!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerRestart implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, true);
|
Shutdown.getInstance().startShutdown(null, time, true);
|
||||||
return "Server will restart in " + time + " seconds!";
|
return "Server will restart in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerShutdown implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, false);
|
Shutdown.getInstance().startShutdown(null, time, false);
|
||||||
return "Server will shutdown in " + time + " seconds!";
|
return "Server will shutdown in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -408,7 +408,7 @@ public class GameServer
|
|||||||
if (Config.RESTART_ON_DEADLOCK)
|
if (Config.RESTART_ON_DEADLOCK)
|
||||||
{
|
{
|
||||||
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
||||||
Shutdown.getInstance().startTelnetShutdown("DeadLockDetector - Auto Restart", 60, true);
|
Shutdown.getInstance().startShutdown(null, 60, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
_deadDetectThread.setDaemon(true);
|
_deadDetectThread.setDaemon(true);
|
||||||
|
@ -83,65 +83,6 @@ public class Shutdown extends Thread
|
|||||||
Broadcast.toAllOnlinePlayers(sysm);
|
Broadcast.toAllOnlinePlayers(sysm);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startTelnetShutdown(String IP, int seconds, boolean restart)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
|
|
||||||
_shutdownMode = restart ? GM_RESTART : GM_SHUTDOWN;
|
|
||||||
|
|
||||||
if (_shutdownMode > 0)
|
|
||||||
{
|
|
||||||
switch (seconds)
|
|
||||||
{
|
|
||||||
case 540:
|
|
||||||
case 480:
|
|
||||||
case 420:
|
|
||||||
case 360:
|
|
||||||
case 300:
|
|
||||||
case 240:
|
|
||||||
case 180:
|
|
||||||
case 120:
|
|
||||||
case 60:
|
|
||||||
case 30:
|
|
||||||
case 10:
|
|
||||||
case 5:
|
|
||||||
case 4:
|
|
||||||
case 3:
|
|
||||||
case 2:
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
SendServerQuit(seconds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
}
|
|
||||||
_counterInstance = new Shutdown(seconds, restart);
|
|
||||||
_counterInstance.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function aborts a running countdown
|
|
||||||
* @param IP IP Which Issued shutdown command
|
|
||||||
*/
|
|
||||||
public void telnetAbort(String IP)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
Broadcast.toAllOnlinePlayers("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor is only used internal to create the shutdown-hook instance
|
* Default constructor is only used internal to create the shutdown-hook instance
|
||||||
*/
|
*/
|
||||||
@ -382,7 +323,7 @@ public class Shutdown extends Thread
|
|||||||
*/
|
*/
|
||||||
public void abort(L2PcInstance activeChar)
|
public void abort(L2PcInstance activeChar)
|
||||||
{
|
{
|
||||||
LOGGER.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
LOGGER.warning("GM: " + (activeChar != null ? activeChar.getName() + "(" + activeChar.getObjectId() + ") " : "") + "issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
||||||
if (_counterInstance != null)
|
if (_counterInstance != null)
|
||||||
{
|
{
|
||||||
_counterInstance._abort();
|
_counterInstance._abort();
|
||||||
|
@ -41,7 +41,7 @@ public class ServerAbort implements ITelnetCommand
|
|||||||
@Override
|
@Override
|
||||||
public String handle(ChannelHandlerContext ctx, String[] args)
|
public String handle(ChannelHandlerContext ctx, String[] args)
|
||||||
{
|
{
|
||||||
Shutdown.getInstance().telnetAbort(ctx.channel().remoteAddress().toString());
|
Shutdown.getInstance().abort(null);
|
||||||
return "Server shutdown/restart aborted!";
|
return "Server shutdown/restart aborted!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerRestart implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, true);
|
Shutdown.getInstance().startShutdown(null, time, true);
|
||||||
return "Server will restart in " + time + " seconds!";
|
return "Server will restart in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerShutdown implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, false);
|
Shutdown.getInstance().startShutdown(null, time, false);
|
||||||
return "Server will shutdown in " + time + " seconds!";
|
return "Server will shutdown in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -408,7 +408,7 @@ public class GameServer
|
|||||||
if (Config.RESTART_ON_DEADLOCK)
|
if (Config.RESTART_ON_DEADLOCK)
|
||||||
{
|
{
|
||||||
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
||||||
Shutdown.getInstance().startTelnetShutdown("DeadLockDetector - Auto Restart", 60, true);
|
Shutdown.getInstance().startShutdown(null, 60, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
_deadDetectThread.setDaemon(true);
|
_deadDetectThread.setDaemon(true);
|
||||||
|
@ -83,65 +83,6 @@ public class Shutdown extends Thread
|
|||||||
Broadcast.toAllOnlinePlayers(sysm);
|
Broadcast.toAllOnlinePlayers(sysm);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startTelnetShutdown(String IP, int seconds, boolean restart)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
|
|
||||||
_shutdownMode = restart ? GM_RESTART : GM_SHUTDOWN;
|
|
||||||
|
|
||||||
if (_shutdownMode > 0)
|
|
||||||
{
|
|
||||||
switch (seconds)
|
|
||||||
{
|
|
||||||
case 540:
|
|
||||||
case 480:
|
|
||||||
case 420:
|
|
||||||
case 360:
|
|
||||||
case 300:
|
|
||||||
case 240:
|
|
||||||
case 180:
|
|
||||||
case 120:
|
|
||||||
case 60:
|
|
||||||
case 30:
|
|
||||||
case 10:
|
|
||||||
case 5:
|
|
||||||
case 4:
|
|
||||||
case 3:
|
|
||||||
case 2:
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
SendServerQuit(seconds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
}
|
|
||||||
_counterInstance = new Shutdown(seconds, restart);
|
|
||||||
_counterInstance.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function aborts a running countdown
|
|
||||||
* @param IP IP Which Issued shutdown command
|
|
||||||
*/
|
|
||||||
public void telnetAbort(String IP)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
Broadcast.toAllOnlinePlayers("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor is only used internal to create the shutdown-hook instance
|
* Default constructor is only used internal to create the shutdown-hook instance
|
||||||
*/
|
*/
|
||||||
@ -382,7 +323,7 @@ public class Shutdown extends Thread
|
|||||||
*/
|
*/
|
||||||
public void abort(L2PcInstance activeChar)
|
public void abort(L2PcInstance activeChar)
|
||||||
{
|
{
|
||||||
LOGGER.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
LOGGER.warning("GM: " + (activeChar != null ? activeChar.getName() + "(" + activeChar.getObjectId() + ") " : "") + "issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
||||||
if (_counterInstance != null)
|
if (_counterInstance != null)
|
||||||
{
|
{
|
||||||
_counterInstance._abort();
|
_counterInstance._abort();
|
||||||
|
@ -41,7 +41,7 @@ public class ServerAbort implements ITelnetCommand
|
|||||||
@Override
|
@Override
|
||||||
public String handle(ChannelHandlerContext ctx, String[] args)
|
public String handle(ChannelHandlerContext ctx, String[] args)
|
||||||
{
|
{
|
||||||
Shutdown.getInstance().telnetAbort(ctx.channel().remoteAddress().toString());
|
Shutdown.getInstance().abort(null);
|
||||||
return "Server shutdown/restart aborted!";
|
return "Server shutdown/restart aborted!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerRestart implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, true);
|
Shutdown.getInstance().startShutdown(null, time, true);
|
||||||
return "Server will restart in " + time + " seconds!";
|
return "Server will restart in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerShutdown implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, false);
|
Shutdown.getInstance().startShutdown(null, time, false);
|
||||||
return "Server will shutdown in " + time + " seconds!";
|
return "Server will shutdown in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -408,7 +408,7 @@ public class GameServer
|
|||||||
if (Config.RESTART_ON_DEADLOCK)
|
if (Config.RESTART_ON_DEADLOCK)
|
||||||
{
|
{
|
||||||
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
||||||
Shutdown.getInstance().startTelnetShutdown("DeadLockDetector - Auto Restart", 60, true);
|
Shutdown.getInstance().startShutdown(null, 60, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
_deadDetectThread.setDaemon(true);
|
_deadDetectThread.setDaemon(true);
|
||||||
|
@ -83,65 +83,6 @@ public class Shutdown extends Thread
|
|||||||
Broadcast.toAllOnlinePlayers(sysm);
|
Broadcast.toAllOnlinePlayers(sysm);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startTelnetShutdown(String IP, int seconds, boolean restart)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
|
|
||||||
_shutdownMode = restart ? GM_RESTART : GM_SHUTDOWN;
|
|
||||||
|
|
||||||
if (_shutdownMode > 0)
|
|
||||||
{
|
|
||||||
switch (seconds)
|
|
||||||
{
|
|
||||||
case 540:
|
|
||||||
case 480:
|
|
||||||
case 420:
|
|
||||||
case 360:
|
|
||||||
case 300:
|
|
||||||
case 240:
|
|
||||||
case 180:
|
|
||||||
case 120:
|
|
||||||
case 60:
|
|
||||||
case 30:
|
|
||||||
case 10:
|
|
||||||
case 5:
|
|
||||||
case 4:
|
|
||||||
case 3:
|
|
||||||
case 2:
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
SendServerQuit(seconds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
}
|
|
||||||
_counterInstance = new Shutdown(seconds, restart);
|
|
||||||
_counterInstance.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function aborts a running countdown
|
|
||||||
* @param IP IP Which Issued shutdown command
|
|
||||||
*/
|
|
||||||
public void telnetAbort(String IP)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
Broadcast.toAllOnlinePlayers("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor is only used internal to create the shutdown-hook instance
|
* Default constructor is only used internal to create the shutdown-hook instance
|
||||||
*/
|
*/
|
||||||
@ -382,7 +323,7 @@ public class Shutdown extends Thread
|
|||||||
*/
|
*/
|
||||||
public void abort(L2PcInstance activeChar)
|
public void abort(L2PcInstance activeChar)
|
||||||
{
|
{
|
||||||
LOGGER.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
LOGGER.warning("GM: " + (activeChar != null ? activeChar.getName() + "(" + activeChar.getObjectId() + ") " : "") + "issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
||||||
if (_counterInstance != null)
|
if (_counterInstance != null)
|
||||||
{
|
{
|
||||||
_counterInstance._abort();
|
_counterInstance._abort();
|
||||||
|
@ -55,11 +55,7 @@ public class Shutdown extends Thread
|
|||||||
SIGTERM("Terminating"),
|
SIGTERM("Terminating"),
|
||||||
SHUTDOWN("Shutting down"),
|
SHUTDOWN("Shutting down"),
|
||||||
RESTART("Restarting"),
|
RESTART("Restarting"),
|
||||||
ABORT("Aborting"),
|
ABORT("Aborting");
|
||||||
TASK_SHUT("Shuting down"),
|
|
||||||
TASK_RES("Restarting"),
|
|
||||||
TELL_SHUT("Shuting down"),
|
|
||||||
TELL_RES("Restarting");
|
|
||||||
|
|
||||||
private final String _modeText;
|
private final String _modeText;
|
||||||
|
|
||||||
@ -93,78 +89,14 @@ public class Shutdown extends Thread
|
|||||||
public static final int GM_RESTART = 2;
|
public static final int GM_RESTART = 2;
|
||||||
/** 3 */
|
/** 3 */
|
||||||
public static final int ABORT = 3;
|
public static final int ABORT = 3;
|
||||||
/** 4 */
|
|
||||||
public static final int TASK_SHUTDOWN = 4;
|
|
||||||
/** 5 */
|
|
||||||
public static final int TASK_RESTART = 5;
|
|
||||||
/** 6 */
|
|
||||||
public static final int TELL_SHUTDOWN = 6;
|
|
||||||
/** 7 */
|
|
||||||
public static final int TELL_RESTART = 7;
|
|
||||||
|
|
||||||
private static final String[] MODE_TEXT =
|
private static final String[] MODE_TEXT =
|
||||||
{
|
{
|
||||||
"SIGTERM",
|
"SIGTERM",
|
||||||
"shutting down",
|
"shutting down",
|
||||||
"restarting",
|
"restarting",
|
||||||
"aborting", // standart
|
"aborting"
|
||||||
"shutting down",
|
};
|
||||||
"restarting", // task
|
|
||||||
"shutting down",
|
|
||||||
"restarting"
|
|
||||||
}; // telnet
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function starts a shutdown count down from Telnet (Copied from Function startShutdown())
|
|
||||||
* @param IP Which Issued shutdown command
|
|
||||||
* @param seconds seconds until shutdown
|
|
||||||
* @param restart true if the server will restart after shutdown
|
|
||||||
*/
|
|
||||||
|
|
||||||
public void startTelnetShutdown(String IP, int seconds, boolean restart)
|
|
||||||
{
|
|
||||||
final Announcements _an = Announcements.getInstance();
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
_an.announceToAll("Server is " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
|
|
||||||
if (restart)
|
|
||||||
{
|
|
||||||
_shutdownMode = TELL_RESTART;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_shutdownMode = TELL_SHUTDOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_shutdownMode > 0)
|
|
||||||
{
|
|
||||||
_an.announceToAll("Server is " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
_an.announceToAll("Please exit game now!!");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
}
|
|
||||||
_counterInstance = new Shutdown(seconds, restart, false, true);
|
|
||||||
_counterInstance.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function aborts a running countdown
|
|
||||||
* @param IP IP Which Issued shutdown command
|
|
||||||
*/
|
|
||||||
public void telnetAbort(String IP)
|
|
||||||
{
|
|
||||||
Announcements _an = Announcements.getInstance();
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
|
||||||
_an.announceToAll("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!");
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor is only used internal to create the shutdown-hook instance
|
* Default constructor is only used internal to create the shutdown-hook instance
|
||||||
@ -180,10 +112,8 @@ public class Shutdown extends Thread
|
|||||||
* This creates a count down instance of Shutdown.
|
* This creates a count down instance of Shutdown.
|
||||||
* @param seconds how many seconds until shutdown
|
* @param seconds how many seconds until shutdown
|
||||||
* @param restart true is the server shall restart after shutdown
|
* @param restart true is the server shall restart after shutdown
|
||||||
* @param task
|
|
||||||
* @param telnet
|
|
||||||
*/
|
*/
|
||||||
public Shutdown(int seconds, boolean restart, boolean task, boolean telnet)
|
private Shutdown(int seconds, boolean restart)
|
||||||
{
|
{
|
||||||
if (seconds < 0)
|
if (seconds < 0)
|
||||||
{
|
{
|
||||||
@ -192,30 +122,11 @@ public class Shutdown extends Thread
|
|||||||
_secondsShut = seconds;
|
_secondsShut = seconds;
|
||||||
if (restart)
|
if (restart)
|
||||||
{
|
{
|
||||||
if (!task)
|
_shutdownMode = GM_RESTART;
|
||||||
{
|
|
||||||
_shutdownMode = GM_RESTART;
|
|
||||||
}
|
|
||||||
else if (telnet)
|
|
||||||
{
|
|
||||||
_shutdownMode = TELL_RESTART;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_shutdownMode = TASK_RESTART;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!task)
|
|
||||||
{
|
|
||||||
_shutdownMode = GM_SHUTDOWN;
|
|
||||||
}
|
|
||||||
else if (telnet)
|
|
||||||
{
|
|
||||||
_shutdownMode = TELL_SHUTDOWN;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_shutdownMode = TASK_SHUTDOWN;
|
_shutdownMode = GM_SHUTDOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
_shutdownStarted = false;
|
_shutdownStarted = false;
|
||||||
@ -254,10 +165,6 @@ public class Shutdown extends Thread
|
|||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* // disallow new logins try { //Doesnt actually do anything //Server.gameServer.getLoginController().setMaxAllowedOnlinePlayers(0); } catch(Throwable t) { if(Config.ENABLE_ALL_EXCEPTIONS) t.printStackTrace(); }
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (this == _instance)
|
if (this == _instance)
|
||||||
{
|
{
|
||||||
closeServer();
|
closeServer();
|
||||||
@ -287,14 +194,7 @@ public class Shutdown extends Thread
|
|||||||
{
|
{
|
||||||
Announcements _an = Announcements.getInstance();
|
Announcements _an = Announcements.getInstance();
|
||||||
|
|
||||||
if (activeChar != null)
|
LOGGER.warning((activeChar != null ? "GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ")" : "Server") + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
||||||
{
|
|
||||||
LOGGER.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LOGGER.warning("External Service issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (restart)
|
if (restart)
|
||||||
{
|
{
|
||||||
@ -317,7 +217,7 @@ public class Shutdown extends Thread
|
|||||||
}
|
}
|
||||||
|
|
||||||
// the main instance should only run for shutdown hook, so we start a new instance
|
// the main instance should only run for shutdown hook, so we start a new instance
|
||||||
_counterInstance = new Shutdown(seconds, restart, false, false);
|
_counterInstance = new Shutdown(seconds, restart);
|
||||||
_counterInstance.start();
|
_counterInstance.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,14 +234,7 @@ public class Shutdown extends Thread
|
|||||||
{
|
{
|
||||||
Announcements _an = Announcements.getInstance();
|
Announcements _an = Announcements.getInstance();
|
||||||
|
|
||||||
if (activeChar != null)
|
LOGGER.warning((activeChar != null ? "GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ")" : "Server") + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
||||||
{
|
|
||||||
LOGGER.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LOGGER.warning("External Service issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
|
||||||
}
|
|
||||||
|
|
||||||
_an.announceToAll("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!");
|
_an.announceToAll("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!");
|
||||||
|
|
||||||
@ -351,14 +244,6 @@ public class Shutdown extends Thread
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* set the shutdown mode
|
|
||||||
* @param mode what mode shall be set
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
* private void setMode(int mode) { _shutdownMode = mode; }
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set shutdown mode to ABORT
|
* set shutdown mode to ABORT
|
||||||
*/
|
*/
|
||||||
@ -425,8 +310,7 @@ public class Shutdown extends Thread
|
|||||||
|
|
||||||
private void closeServer()
|
private void closeServer()
|
||||||
{
|
{
|
||||||
// last byebye, save all data and quit this server
|
// Save all data and quit this server.
|
||||||
// logging doesnt work here :(
|
|
||||||
_shutdownStarted = true;
|
_shutdownStarted = true;
|
||||||
|
|
||||||
try
|
try
|
||||||
@ -494,32 +378,10 @@ public class Shutdown extends Thread
|
|||||||
|
|
||||||
LOGGER.info("[STATUS] Server shutdown successfully.");
|
LOGGER.info("[STATUS] Server shutdown successfully.");
|
||||||
|
|
||||||
// server will quit, when this function ends.
|
|
||||||
/*
|
|
||||||
* switch (_shutdownMode) { case GM_SHUTDOWN: _instance.setMode(GM_SHUTDOWN); System.exit(0); break; case GM_RESTART: _instance.setMode(GM_RESTART); System.exit(2); break; case TASK_SHUTDOWN: _instance.setMode(TASK_SHUTDOWN); System.exit(4); break; case TASK_RESTART:
|
|
||||||
* _instance.setMode(TASK_RESTART); System.exit(5); break; case TELL_SHUTDOWN: _instance.setMode(TELL_SHUTDOWN); System.exit(6); break; case TELL_RESTART: _instance.setMode(TELL_RESTART); System.exit(7); break; }
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (_instance._shutdownMode == GM_RESTART)
|
if (_instance._shutdownMode == GM_RESTART)
|
||||||
{
|
{
|
||||||
Runtime.getRuntime().halt(2);
|
Runtime.getRuntime().halt(2);
|
||||||
}
|
}
|
||||||
else if (_instance._shutdownMode == TASK_RESTART)
|
|
||||||
{
|
|
||||||
Runtime.getRuntime().halt(5);
|
|
||||||
}
|
|
||||||
else if (_instance._shutdownMode == TASK_SHUTDOWN)
|
|
||||||
{
|
|
||||||
Runtime.getRuntime().halt(4);
|
|
||||||
}
|
|
||||||
else if (_instance._shutdownMode == TELL_RESTART)
|
|
||||||
{
|
|
||||||
Runtime.getRuntime().halt(7);
|
|
||||||
}
|
|
||||||
else if (_instance._shutdownMode == TELL_SHUTDOWN)
|
|
||||||
{
|
|
||||||
Runtime.getRuntime().halt(6);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Runtime.getRuntime().halt(0);
|
Runtime.getRuntime().halt(0);
|
||||||
@ -549,26 +411,6 @@ public class Shutdown extends Thread
|
|||||||
LOGGER.info("GM restart received. Restarting NOW!");
|
LOGGER.info("GM restart received. Restarting NOW!");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TASK_SHUTDOWN:
|
|
||||||
{
|
|
||||||
LOGGER.info("Auto task shutdown received. Shutting down NOW!");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_RESTART:
|
|
||||||
{
|
|
||||||
LOGGER.info("Auto task restart received. Restarting NOW!");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TELL_SHUTDOWN:
|
|
||||||
{
|
|
||||||
LOGGER.info("Telnet shutdown received. Shutting down NOW!");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TELL_RESTART:
|
|
||||||
{
|
|
||||||
LOGGER.info("Telnet restart received. Restarting NOW!");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -640,7 +482,7 @@ public class Shutdown extends Thread
|
|||||||
|
|
||||||
// Save data CountStore
|
// Save data CountStore
|
||||||
TradeController.getInstance().dataCountStore();
|
TradeController.getInstance().dataCountStore();
|
||||||
LOGGER.info("TradeController: All count Item Saved");
|
LOGGER.info("TradeController: All count Item Saved!!");
|
||||||
|
|
||||||
// Save Olympiad status
|
// Save Olympiad status
|
||||||
try
|
try
|
||||||
@ -661,11 +503,11 @@ public class Shutdown extends Thread
|
|||||||
|
|
||||||
// Save Fishing tournament data
|
// Save Fishing tournament data
|
||||||
FishingChampionshipManager.getInstance().shutdown();
|
FishingChampionshipManager.getInstance().shutdown();
|
||||||
LOGGER.info("Fishing Championship data has been saved.");
|
LOGGER.info("Fishing Championship data has been saved!!");
|
||||||
|
|
||||||
// Schemes save.
|
// Schemes save.
|
||||||
BufferTable.getInstance().saveSchemes();
|
BufferTable.getInstance().saveSchemes();
|
||||||
LOGGER.info("BufferTable data has been saved.");
|
LOGGER.info("BufferTable data has been saved!!");
|
||||||
|
|
||||||
// Save all global (non-player specific) Quest data that needs to persist after reboot
|
// Save all global (non-player specific) Quest data that needs to persist after reboot
|
||||||
if (!Config.ALT_DEV_NO_QUESTS)
|
if (!Config.ALT_DEV_NO_QUESTS)
|
||||||
@ -744,5 +586,4 @@ public class Shutdown extends Thread
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -48,8 +48,6 @@ public final class TaskRestart extends Task
|
|||||||
public void onTimeElapsed(ExecutedTask task)
|
public void onTimeElapsed(ExecutedTask task)
|
||||||
{
|
{
|
||||||
LOGGER.info("[GlobalTask] Server Restart launched.");
|
LOGGER.info("[GlobalTask] Server Restart launched.");
|
||||||
|
Shutdown.getInstance().startShutdown(null, Integer.valueOf(task.getParams()[2]), true);
|
||||||
final Shutdown handler = new Shutdown(Integer.valueOf(task.getParams()[2]), true, true, false);
|
|
||||||
handler.start();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -48,8 +48,6 @@ public class TaskShutdown extends Task
|
|||||||
public void onTimeElapsed(ExecutedTask task)
|
public void onTimeElapsed(ExecutedTask task)
|
||||||
{
|
{
|
||||||
LOGGER.info("[GlobalTask] Server Shutdown launched.");
|
LOGGER.info("[GlobalTask] Server Shutdown launched.");
|
||||||
|
Shutdown.getInstance().startShutdown(null, Integer.valueOf(task.getParams()[2]), false);
|
||||||
final Shutdown handler = new Shutdown(Integer.valueOf(task.getParams()[2]), false, true, false);
|
|
||||||
handler.start();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -456,7 +456,7 @@ public class GameStatusThread extends Thread
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
final int val = Integer.parseInt(_usrCommand.substring(9));
|
final int val = Integer.parseInt(_usrCommand.substring(9));
|
||||||
Shutdown.getInstance().startTelnetShutdown(_cSocket.getInetAddress().getHostAddress(), val, false);
|
Shutdown.getInstance().startShutdown(null, val, false);
|
||||||
_print.println("Server Will Shutdown In " + val + " Seconds!");
|
_print.println("Server Will Shutdown In " + val + " Seconds!");
|
||||||
_print.println("Type \"abort\" To Abort Shutdown!");
|
_print.println("Type \"abort\" To Abort Shutdown!");
|
||||||
}
|
}
|
||||||
@ -474,7 +474,7 @@ public class GameStatusThread extends Thread
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
final int val = Integer.parseInt(_usrCommand.substring(8));
|
final int val = Integer.parseInt(_usrCommand.substring(8));
|
||||||
Shutdown.getInstance().startTelnetShutdown(_cSocket.getInetAddress().getHostAddress(), val, true);
|
Shutdown.getInstance().startShutdown(null, val, true);
|
||||||
_print.println("Server Will Restart In " + val + " Seconds!");
|
_print.println("Server Will Restart In " + val + " Seconds!");
|
||||||
_print.println("Type \"abort\" To Abort Restart!");
|
_print.println("Type \"abort\" To Abort Restart!");
|
||||||
}
|
}
|
||||||
@ -489,7 +489,7 @@ public class GameStatusThread extends Thread
|
|||||||
}
|
}
|
||||||
else if (_usrCommand.startsWith("abort"))
|
else if (_usrCommand.startsWith("abort"))
|
||||||
{
|
{
|
||||||
Shutdown.getInstance().telnetAbort(_cSocket.getInetAddress().getHostAddress());
|
Shutdown.getInstance().abort(null);
|
||||||
_print.println("OK! - Shutdown/Restart Aborted.");
|
_print.println("OK! - Shutdown/Restart Aborted.");
|
||||||
}
|
}
|
||||||
else if (_usrCommand.equals("quit"))
|
else if (_usrCommand.equals("quit"))
|
||||||
|
@ -41,7 +41,7 @@ public class ServerAbort implements ITelnetCommand
|
|||||||
@Override
|
@Override
|
||||||
public String handle(ChannelHandlerContext ctx, String[] args)
|
public String handle(ChannelHandlerContext ctx, String[] args)
|
||||||
{
|
{
|
||||||
Shutdown.getInstance().telnetAbort(ctx.channel().remoteAddress().toString());
|
Shutdown.getInstance().abort(null);
|
||||||
return "Server shutdown/restart aborted!";
|
return "Server shutdown/restart aborted!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerRestart implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, true);
|
Shutdown.getInstance().startShutdown(null, time, true);
|
||||||
return "Server will restart in " + time + " seconds!";
|
return "Server will restart in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerShutdown implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, false);
|
Shutdown.getInstance().startShutdown(null, time, false);
|
||||||
return "Server will shutdown in " + time + " seconds!";
|
return "Server will shutdown in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -405,7 +405,7 @@ public class GameServer
|
|||||||
if (Config.RESTART_ON_DEADLOCK)
|
if (Config.RESTART_ON_DEADLOCK)
|
||||||
{
|
{
|
||||||
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
||||||
Shutdown.getInstance().startTelnetShutdown("DeadLockDetector - Auto Restart", 60, true);
|
Shutdown.getInstance().startShutdown(null, 60, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
_deadDetectThread.setDaemon(true);
|
_deadDetectThread.setDaemon(true);
|
||||||
|
@ -84,65 +84,6 @@ public class Shutdown extends Thread
|
|||||||
Broadcast.toAllOnlinePlayers(sysm);
|
Broadcast.toAllOnlinePlayers(sysm);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startTelnetShutdown(String IP, int seconds, boolean restart)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
|
|
||||||
_shutdownMode = restart ? GM_RESTART : GM_SHUTDOWN;
|
|
||||||
|
|
||||||
if (_shutdownMode > 0)
|
|
||||||
{
|
|
||||||
switch (seconds)
|
|
||||||
{
|
|
||||||
case 540:
|
|
||||||
case 480:
|
|
||||||
case 420:
|
|
||||||
case 360:
|
|
||||||
case 300:
|
|
||||||
case 240:
|
|
||||||
case 180:
|
|
||||||
case 120:
|
|
||||||
case 60:
|
|
||||||
case 30:
|
|
||||||
case 10:
|
|
||||||
case 5:
|
|
||||||
case 4:
|
|
||||||
case 3:
|
|
||||||
case 2:
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
SendServerQuit(seconds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
}
|
|
||||||
_counterInstance = new Shutdown(seconds, restart);
|
|
||||||
_counterInstance.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function aborts a running countdown
|
|
||||||
* @param IP IP Which Issued shutdown command
|
|
||||||
*/
|
|
||||||
public void telnetAbort(String IP)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
Broadcast.toAllOnlinePlayers("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor is only used internal to create the shutdown-hook instance
|
* Default constructor is only used internal to create the shutdown-hook instance
|
||||||
*/
|
*/
|
||||||
@ -383,7 +324,7 @@ public class Shutdown extends Thread
|
|||||||
*/
|
*/
|
||||||
public void abort(L2PcInstance activeChar)
|
public void abort(L2PcInstance activeChar)
|
||||||
{
|
{
|
||||||
LOGGER.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
LOGGER.warning("GM: " + (activeChar != null ? activeChar.getName() + "(" + activeChar.getObjectId() + ") " : "") + "issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
||||||
if (_counterInstance != null)
|
if (_counterInstance != null)
|
||||||
{
|
{
|
||||||
_counterInstance._abort();
|
_counterInstance._abort();
|
||||||
|
@ -41,7 +41,7 @@ public class ServerAbort implements ITelnetCommand
|
|||||||
@Override
|
@Override
|
||||||
public String handle(ChannelHandlerContext ctx, String[] args)
|
public String handle(ChannelHandlerContext ctx, String[] args)
|
||||||
{
|
{
|
||||||
Shutdown.getInstance().telnetAbort(ctx.channel().remoteAddress().toString());
|
Shutdown.getInstance().abort(null);
|
||||||
return "Server shutdown/restart aborted!";
|
return "Server shutdown/restart aborted!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerRestart implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, true);
|
Shutdown.getInstance().startShutdown(null, time, true);
|
||||||
return "Server will restart in " + time + " seconds!";
|
return "Server will restart in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerShutdown implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, false);
|
Shutdown.getInstance().startShutdown(null, time, false);
|
||||||
return "Server will shutdown in " + time + " seconds!";
|
return "Server will shutdown in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -399,7 +399,7 @@ public class GameServer
|
|||||||
if (Config.RESTART_ON_DEADLOCK)
|
if (Config.RESTART_ON_DEADLOCK)
|
||||||
{
|
{
|
||||||
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
||||||
Shutdown.getInstance().startTelnetShutdown("DeadLockDetector - Auto Restart", 60, true);
|
Shutdown.getInstance().startShutdown(null, 60, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
_deadDetectThread.setDaemon(true);
|
_deadDetectThread.setDaemon(true);
|
||||||
|
@ -83,65 +83,6 @@ public class Shutdown extends Thread
|
|||||||
Broadcast.toAllOnlinePlayers(sysm);
|
Broadcast.toAllOnlinePlayers(sysm);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startTelnetShutdown(String IP, int seconds, boolean restart)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
|
|
||||||
_shutdownMode = restart ? GM_RESTART : GM_SHUTDOWN;
|
|
||||||
|
|
||||||
if (_shutdownMode > 0)
|
|
||||||
{
|
|
||||||
switch (seconds)
|
|
||||||
{
|
|
||||||
case 540:
|
|
||||||
case 480:
|
|
||||||
case 420:
|
|
||||||
case 360:
|
|
||||||
case 300:
|
|
||||||
case 240:
|
|
||||||
case 180:
|
|
||||||
case 120:
|
|
||||||
case 60:
|
|
||||||
case 30:
|
|
||||||
case 10:
|
|
||||||
case 5:
|
|
||||||
case 4:
|
|
||||||
case 3:
|
|
||||||
case 2:
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
SendServerQuit(seconds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
}
|
|
||||||
_counterInstance = new Shutdown(seconds, restart);
|
|
||||||
_counterInstance.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function aborts a running countdown
|
|
||||||
* @param IP IP Which Issued shutdown command
|
|
||||||
*/
|
|
||||||
public void telnetAbort(String IP)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
Broadcast.toAllOnlinePlayers("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor is only used internal to create the shutdown-hook instance
|
* Default constructor is only used internal to create the shutdown-hook instance
|
||||||
*/
|
*/
|
||||||
@ -382,7 +323,7 @@ public class Shutdown extends Thread
|
|||||||
*/
|
*/
|
||||||
public void abort(L2PcInstance activeChar)
|
public void abort(L2PcInstance activeChar)
|
||||||
{
|
{
|
||||||
LOGGER.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
LOGGER.warning("GM: " + (activeChar != null ? activeChar.getName() + "(" + activeChar.getObjectId() + ") " : "") + "issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
||||||
if (_counterInstance != null)
|
if (_counterInstance != null)
|
||||||
{
|
{
|
||||||
_counterInstance._abort();
|
_counterInstance._abort();
|
||||||
|
@ -41,7 +41,7 @@ public class ServerAbort implements ITelnetCommand
|
|||||||
@Override
|
@Override
|
||||||
public String handle(ChannelHandlerContext ctx, String[] args)
|
public String handle(ChannelHandlerContext ctx, String[] args)
|
||||||
{
|
{
|
||||||
Shutdown.getInstance().telnetAbort(ctx.channel().remoteAddress().toString());
|
Shutdown.getInstance().abort(null);
|
||||||
return "Server shutdown/restart aborted!";
|
return "Server shutdown/restart aborted!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerRestart implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, true);
|
Shutdown.getInstance().startShutdown(null, time, true);
|
||||||
return "Server will restart in " + time + " seconds!";
|
return "Server will restart in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ServerShutdown implements ITelnetCommand
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final int time = Integer.parseInt(args[0]);
|
final int time = Integer.parseInt(args[0]);
|
||||||
Shutdown.getInstance().startTelnetShutdown(ctx.channel().remoteAddress().toString(), time, false);
|
Shutdown.getInstance().startShutdown(null, time, false);
|
||||||
return "Server will shutdown in " + time + " seconds!";
|
return "Server will shutdown in " + time + " seconds!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -399,7 +399,7 @@ public class GameServer
|
|||||||
if (Config.RESTART_ON_DEADLOCK)
|
if (Config.RESTART_ON_DEADLOCK)
|
||||||
{
|
{
|
||||||
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
Broadcast.toAllOnlinePlayers("Server has stability issues - restarting now.");
|
||||||
Shutdown.getInstance().startTelnetShutdown("DeadLockDetector - Auto Restart", 60, true);
|
Shutdown.getInstance().startShutdown(null, 60, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
_deadDetectThread.setDaemon(true);
|
_deadDetectThread.setDaemon(true);
|
||||||
|
@ -83,65 +83,6 @@ public class Shutdown extends Thread
|
|||||||
Broadcast.toAllOnlinePlayers(sysm);
|
Broadcast.toAllOnlinePlayers(sysm);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startTelnetShutdown(String IP, int seconds, boolean restart)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
|
|
||||||
|
|
||||||
_shutdownMode = restart ? GM_RESTART : GM_SHUTDOWN;
|
|
||||||
|
|
||||||
if (_shutdownMode > 0)
|
|
||||||
{
|
|
||||||
switch (seconds)
|
|
||||||
{
|
|
||||||
case 540:
|
|
||||||
case 480:
|
|
||||||
case 420:
|
|
||||||
case 360:
|
|
||||||
case 300:
|
|
||||||
case 240:
|
|
||||||
case 180:
|
|
||||||
case 120:
|
|
||||||
case 60:
|
|
||||||
case 30:
|
|
||||||
case 10:
|
|
||||||
case 5:
|
|
||||||
case 4:
|
|
||||||
case 3:
|
|
||||||
case 2:
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
SendServerQuit(seconds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
}
|
|
||||||
_counterInstance = new Shutdown(seconds, restart);
|
|
||||||
_counterInstance.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function aborts a running countdown
|
|
||||||
* @param IP IP Which Issued shutdown command
|
|
||||||
*/
|
|
||||||
public void telnetAbort(String IP)
|
|
||||||
{
|
|
||||||
LOGGER.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
|
||||||
|
|
||||||
if (_counterInstance != null)
|
|
||||||
{
|
|
||||||
_counterInstance._abort();
|
|
||||||
Broadcast.toAllOnlinePlayers("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor is only used internal to create the shutdown-hook instance
|
* Default constructor is only used internal to create the shutdown-hook instance
|
||||||
*/
|
*/
|
||||||
@ -382,7 +323,7 @@ public class Shutdown extends Thread
|
|||||||
*/
|
*/
|
||||||
public void abort(L2PcInstance activeChar)
|
public void abort(L2PcInstance activeChar)
|
||||||
{
|
{
|
||||||
LOGGER.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
LOGGER.warning("GM: " + (activeChar != null ? activeChar.getName() + "(" + activeChar.getObjectId() + ") " : "") + "issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
|
||||||
if (_counterInstance != null)
|
if (_counterInstance != null)
|
||||||
{
|
{
|
||||||
_counterInstance._abort();
|
_counterInstance._abort();
|
||||||
|
Loading…
Reference in New Issue
Block a user