Skip to content

Commit

Permalink
1.2.5
Browse files Browse the repository at this point in the history
- Add restart command
- Fix typo
- Better handeling of default config on linux with out messing around
with scp_multiadmin.cfg txt
- Automaticaly fix typo in scp_multiadmin.cfg text name
- Add message when using stop next round
  • Loading branch information
Grover-c13 committed Feb 21, 2018
1 parent 60b010a commit 43c7a97
Show file tree
Hide file tree
Showing 6 changed files with 111 additions and 10 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,5 @@ mutliadmin/.vs/MultiAdmin/v15/Server/sqlite3/db.lock
mutliadmin/.vs/MultiAdmin/v15/Server/sqlite3/storage.ide
*.ide
*.ide
*.ide
mutliadmin/.vs/MultiAdmin/v15/Server/sqlite3/storage.ide
1 change: 1 addition & 0 deletions mutliadmin/MultiAdmin.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
<Compile Include="MultiAdmin\Features\NewCommand.cs" />
<Compile Include="MultiAdmin\Features\ChainStart.cs" />
<Compile Include="MultiAdmin\Features\EventTest.cs" />
<Compile Include="MultiAdmin\Features\Restart.cs" />
<Compile Include="MultiAdmin\Features\TitleBar.cs" />
<Compile Include="MultiAdmin\Features\Autoscale.cs" />
<Compile Include="MultiAdmin\Features\MemoryChecker.cs" />
Expand Down
58 changes: 58 additions & 0 deletions mutliadmin/MultiAdmin/Features/Restart.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MultiAdmin.MultiAdmin.Features
{
class Restart : Feature, ICommand
{
public Restart(Server server) : base(server)
{
}

public string GetCommand()
{
return "restart";
}

public string GetCommandDescription()
{
return "Restarts the game server (multiadmin will not restart, just the game)";
}

public override string GetFeatureDescription()
{
return "Allows the game to be restarted without restarting multiadmin";
}

public override string GetFeatureName()
{
return "Restart command";
}

public string GetUsage()
{
return "";
}

public override void Init()
{
}

public void OnCall(string[] args)
{
this.Server.SoftRestartServer();
}

public override void OnConfigReload()
{
}

public bool PassToGame()
{
return false;
}
}
}
3 changes: 2 additions & 1 deletion mutliadmin/MultiAdmin/Features/StopNextRound.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ public override void OnConfigReload()

public void OnCall(string[] args)
{
stop = true;
Server.Write("Server will stop next round");
stop = true;
}

public void OnRoundEnd()
Expand Down
54 changes: 46 additions & 8 deletions mutliadmin/MultiAdmin/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,32 @@ public static void Write(String message, ConsoleColor color = ConsoleColor.DarkY
}




public static void FindConfig()
private static String findDefaultConfig()
{
String windows = Environment.ExpandEnvironmentVariables(String.Format("%appdata%{0}SCP Secret Laboratory{0}config.txt", Path.DirectorySeparatorChar));
String linux = String.Format("~{0}.config{0}SCP\\ Secret\\ Laboratory{0}config.txt", Path.DirectorySeparatorChar);
if (File.Exists(windows)) return windows;
if (File.Exists(linux)) return linux;
return "invalid"; // dont want to throw an exception here, just set to invalid so that it
}

public static bool FindConfig()
{
var defaultLoc = Environment.ExpandEnvironmentVariables(String.Format("%appdata%{0}SCP Secret Laboratory{0}config.txt", Path.DirectorySeparatorChar));
var defaultLoc = findDefaultConfig();
var path = Program.multiadminConfig.GetValue("cfg_loc", defaultLoc);
if (path.Equals("Invalid"))
{
Write("MultiAdmin was unable to find the default location, please specify the location in scp_multiadmin.cfg");
return false;
}
var backup = path.Replace(".txt", "_backup.txt");

if (!File.Exists(path))
{
Write("Default config file not in expected location (" + path + "), copying config_template.txt");
File.Copy("config_template.txt", path);
}

if (File.Exists(path))
{
configLocation = path;
Expand All @@ -47,8 +66,11 @@ public static void FindConfig()
}
else
{
throw new FileNotFoundException("Default config file not in expected location (" + path + "), try runing LocalAdmin first");
// should never happen
throw new FileNotFoundException("Config.txt file not found! something has gone wrong with initial setup, try running LocalAdmin.exe first");
}

return true;
}


Expand Down Expand Up @@ -147,12 +169,28 @@ static void OnExit(object sender, EventArgs e)
Console.ReadKey();
}

private static void FixTypo()
{
// some idiot (courtney) accidently made the config file spc_multiadmin.cfg instead of scp_multiadmin.cfg
// this method fixes it
if (File.Exists("spc_multiadmin.cfg"))
{
Write("Renaming spc_multiadmin.cfg to scp_multiadmin.cfg");
File.Move("spc_multiadmin.cfg", "scp_multiadmin.cfg");
}
}

public static void Main(string[] args)
{
Write("ARGS:" + string.Join(",", args));
AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnExit);
multiadminConfig = new MultiAdmin.Config("spc_multiadmin.cfg");
FindConfig();
FixTypo();
multiadminConfig = new MultiAdmin.Config("scp_multiadmin.cfg");
if (!FindConfig())
{
Console.ReadKey();
return;
}

configChain = "";
if (StartHandleConfigs(args))
{
Expand Down
3 changes: 2 additions & 1 deletion mutliadmin/MultiAdmin/Server.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ private void RegisterFeatures()
RegisterFeature(new MemoryCheckerSoft(this));
RegisterFeature(new MultiAdminInfo(this));
RegisterFeature(new NewCommand(this));
RegisterFeature(new RestartNextRound(this));
RegisterFeature(new Restart(this));
RegisterFeature(new RestartNextRound(this));
RegisterFeature(new RestartRoundCounter(this));
RegisterFeature(new StopNextRound(this));
RegisterFeature(new Titlebar(this));
Expand Down

0 comments on commit 43c7a97

Please sign in to comment.