38 lines
1.0 KiB
C#
38 lines
1.0 KiB
C#
using System.Diagnostics;
|
|
using NitroxModel.DataStructures.GameLogic;
|
|
using NitroxServer.ConsoleCommands.Abstract;
|
|
|
|
namespace NitroxServer.ConsoleCommands
|
|
{
|
|
internal class RestartCommand : Command
|
|
{
|
|
private readonly Server server;
|
|
|
|
public RestartCommand(Server server) : base("restart", Perms.CONSOLE, "Restarts the server")
|
|
{
|
|
this.server = server;
|
|
}
|
|
|
|
protected override void Execute(CallArgs args)
|
|
{
|
|
if (Debugger.IsAttached)
|
|
{
|
|
Log.Error("Cannot restart server while debugger is attached.");
|
|
return;
|
|
}
|
|
|
|
string program = Process.GetCurrentProcess().MainModule?.FileName;
|
|
if (program == null)
|
|
{
|
|
Log.Error("Failed to get location of server.");
|
|
return;
|
|
}
|
|
|
|
SendMessageToAllPlayers("Server is restarting...");
|
|
|
|
server.Stop();
|
|
using Process proc = Process.Start(program);
|
|
}
|
|
}
|
|
}
|