diff --git a/FFXIVClassic Lobby Server/ConfigConstants.cs b/FFXIVClassic Lobby Server/ConfigConstants.cs
index 358ceb96..501570e1 100644
--- a/FFXIVClassic Lobby Server/ConfigConstants.cs
+++ b/FFXIVClassic Lobby Server/ConfigConstants.cs
@@ -1,6 +1,8 @@
using FFXIVClassic.Common;
using System;
using System.IO;
+using System.Linq;
+using System.Net;
namespace FFXIVClassic_Lobby_Server
{
@@ -23,7 +25,7 @@ namespace FFXIVClassic_Lobby_Server
if (!File.Exists("./lobby_config.ini"))
{
Program.Log.Error("FILE NOT FOUND!");
- return false;
+ Program.Log.Error("Loading defaults...");
}
INIFile configIni = new INIFile("./lobby_config.ini");
@@ -40,5 +42,34 @@ namespace FFXIVClassic_Lobby_Server
return true;
}
+ public static void ApplyLaunchArgs(string[] launchArgs)
+ {
+ var args = (from arg in launchArgs select arg.ToLower().Trim().TrimStart('-')).ToList();
+
+ for (var i = 0; i + 1 < args.Count; i += 2)
+ {
+ var arg = args[i];
+ var val = args[i + 1];
+ var legit = false;
+
+ if (arg == "ip")
+ {
+ IPAddress ip;
+ if (IPAddress.TryParse(val, out ip) && (legit = true))
+ OPTIONS_BINDIP = val;
+ }
+ else if (arg == "port")
+ {
+ UInt16 port;
+ if (UInt16.TryParse(val, out port) && (legit = true))
+ OPTIONS_PORT = val;
+ }
+
+ if (!legit)
+ {
+ Program.Log.Error("Invalid parameter <{0}> for argument: <--{1}> or argument doesnt exist!", val, arg);
+ }
+ }
+ }
}
}
diff --git a/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj b/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj
index a8c4fab3..962c3676 100644
--- a/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj
+++ b/FFXIVClassic Lobby Server/FFXIVClassic Lobby Server.csproj
@@ -133,7 +133,7 @@
- copy "$(SolutionDir)data\lobby_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)"
+ xcopy "$(SolutionDir)data\lobby_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /y
diff --git a/FFXIVClassic Lobby Server/Program.cs b/FFXIVClassic Lobby Server/Program.cs
index 598397b5..f45ee786 100644
--- a/FFXIVClassic Lobby Server/Program.cs
+++ b/FFXIVClassic Lobby Server/Program.cs
@@ -25,8 +25,8 @@ namespace FFXIVClassic_Lobby_Server
bool startServer = true;
//Load Config
- if (!ConfigConstants.Load())
- startServer = false;
+ ConfigConstants.Load();
+ ConfigConstants.ApplyLaunchArgs(args);
//Test DB Connection
Program.Log.Info("Testing DB connection to \"{0}\"... ", ConfigConstants.DATABASE_HOST);
@@ -51,7 +51,7 @@ namespace FFXIVClassic_Lobby_Server
{
Server server = new Server();
server.StartServer();
- while (true) Thread.Sleep(10000);
+ while (true) Thread.Sleep(10000);
}
Program.Log.Info("Press any key to continue...");
diff --git a/FFXIVClassic Map Server/ConfigConstants.cs b/FFXIVClassic Map Server/ConfigConstants.cs
index c3ea8d54..97b9aa47 100644
--- a/FFXIVClassic Map Server/ConfigConstants.cs
+++ b/FFXIVClassic Map Server/ConfigConstants.cs
@@ -1,6 +1,11 @@
using FFXIVClassic.Common;
using System;
+using System.Collections.Generic;
using System.IO;
+using System.Net.Sockets;
+using MoonSharp.Interpreter.Interop;
+using System.Linq;
+using System.Net;
namespace FFXIVClassic_Map_Server
{
@@ -8,9 +13,9 @@ namespace FFXIVClassic_Map_Server
{
public static String OPTIONS_BINDIP;
public static String OPTIONS_PORT;
- public static bool OPTIONS_TIMESTAMP = false;
+ public static bool OPTIONS_TIMESTAMP = false;
- public static uint DATABASE_WORLDID;
+ public static uint DATABASE_WORLDID;
public static String DATABASE_HOST;
public static String DATABASE_PORT;
public static String DATABASE_NAME;
@@ -24,7 +29,7 @@ namespace FFXIVClassic_Map_Server
if (!File.Exists("./map_config.ini"))
{
Program.Log.Error("FILE NOT FOUND");
- return false;
+ Program.Log.Error("Loading defaults... ");
}
INIFile configIni = new INIFile("./map_config.ini");
@@ -39,8 +44,38 @@ namespace FFXIVClassic_Map_Server
ConfigConstants.DATABASE_NAME = configIni.GetValue("Database", "database", "");
ConfigConstants.DATABASE_USERNAME = configIni.GetValue("Database", "username", "");
ConfigConstants.DATABASE_PASSWORD = configIni.GetValue("Database", "password", "");
-
+
return true;
}
+
+ public static void ApplyLaunchArgs(string[] launchArgs)
+ {
+ var args = (from arg in launchArgs select arg.ToLower().Trim().TrimStart('-')).ToList();
+
+ for (var i = 0; i + 1 < args.Count; i += 2)
+ {
+ var arg = args[i];
+ var val = args[i + 1];
+ var legit = false;
+
+ if (arg == "ip")
+ {
+ IPAddress ip;
+ if (IPAddress.TryParse(val, out ip) && (legit = true))
+ OPTIONS_BINDIP = val;
+ }
+ else if (arg == "port")
+ {
+ UInt16 port;
+ if (UInt16.TryParse(val, out port) && (legit = true))
+ OPTIONS_PORT = val;
+ }
+
+ if (!legit)
+ {
+ Program.Log.Error("Invalid parameter <{0}> for argument: <--{1}> or argument doesnt exist!", val, arg);
+ }
+ }
+ }
}
}
diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
index b6eaeae1..265be4c3 100644
--- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
+++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
@@ -35,6 +35,9 @@
4
true
+
+ Always
+
..\packages\Cyotek.CircularBuffer.1.0.0.0\lib\net20\Cyotek.Collections.Generic.CircularBuffer.dll
@@ -313,7 +316,12 @@
- copy "$(SolutionDir)data\map_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)"
+ xcopy "$(SolutionDir)data\map_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /d
+xcopy "$(SolutionDir)data\scripts" "$(SolutionDir)$(ProjectName)\$(OutDir)scripts" /e /d /y /s
+
+
+
+
diff --git a/FFXIVClassic Map Server/Program.cs b/FFXIVClassic Map Server/Program.cs
index 921278a1..a06bed51 100644
--- a/FFXIVClassic Map Server/Program.cs
+++ b/FFXIVClassic Map Server/Program.cs
@@ -31,8 +31,8 @@ namespace FFXIVClassic_Map_Server
Program.Log.Info("---------FFXIV 1.0 Map Server---------");
//Load Config
- if (!ConfigConstants.Load())
- startServer = false;
+ ConfigConstants.Load();
+ ConfigConstants.ApplyLaunchArgs(args);
//Test DB Connection
Program.Log.Info("Testing DB connection... ");
diff --git a/FFXIVClassic Map Server/lua/LuaEngine.cs b/FFXIVClassic Map Server/lua/LuaEngine.cs
index ddbae92a..0099c9dc 100644
--- a/FFXIVClassic Map Server/lua/LuaEngine.cs
+++ b/FFXIVClassic Map Server/lua/LuaEngine.cs
@@ -207,7 +207,7 @@ namespace FFXIVClassic_Map_Server.lua
public static void RunGMCommand(Player player, String cmd, string[] param, bool help = false)
{
// load from scripts/commands/gm/ directory
- var path = String.Format("./scripts/commands/gm/{0}.lua", cmd.ToString().ToLower());
+ var path = String.Format("./scripts/commands/gm/{0}.lua", cmd.ToLower());
// check if the file exists
if (File.Exists(path))
diff --git a/FFXIVClassic World Server/ConfigConstants.cs b/FFXIVClassic World Server/ConfigConstants.cs
index 7f8b29aa..e5d9c5e5 100644
--- a/FFXIVClassic World Server/ConfigConstants.cs
+++ b/FFXIVClassic World Server/ConfigConstants.cs
@@ -1,6 +1,8 @@
using FFXIVClassic.Common;
using System;
using System.IO;
+using System.Linq;
+using System.Net;
namespace FFXIVClassic_World_Server
{
@@ -23,7 +25,7 @@ namespace FFXIVClassic_World_Server
if (!File.Exists("./world_config.ini"))
{
Program.Log.Error("FILE NOT FOUND!");
- return false;
+ Program.Log.Error("Loading defaults...");
}
INIFile configIni = new INIFile("./world_config.ini");
@@ -40,5 +42,35 @@ namespace FFXIVClassic_World_Server
return true;
}
+
+ public static void ApplyLaunchArgs(string[] launchArgs)
+ {
+ var args = (from arg in launchArgs select arg.ToLower().Trim().TrimStart('-')).ToList();
+
+ for (var i = 0; i + 1 < args.Count; i += 2)
+ {
+ var arg = args[i];
+ var val = args[i + 1];
+ var legit = false;
+
+ if (arg == "ip")
+ {
+ IPAddress ip;
+ if (IPAddress.TryParse(val, out ip) && (legit = true))
+ OPTIONS_BINDIP = val;
+ }
+ else if (arg == "port")
+ {
+ UInt16 port;
+ if (UInt16.TryParse(val, out port) && (legit = true))
+ OPTIONS_PORT = val;
+ }
+
+ if (!legit)
+ {
+ Program.Log.Error("Invalid parameter <{0}> for argument: <--{1}> or argument doesnt exist!", val, arg);
+ }
+ }
+ }
}
}
diff --git a/FFXIVClassic World Server/FFXIVClassic World Server.csproj b/FFXIVClassic World Server/FFXIVClassic World Server.csproj
index 75e58178..0cd97caa 100644
--- a/FFXIVClassic World Server/FFXIVClassic World Server.csproj
+++ b/FFXIVClassic World Server/FFXIVClassic World Server.csproj
@@ -102,6 +102,9 @@
+
+ xcopy "$(SolutionDir)data\world_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /d
+