diff --git a/HorseIsleServer/HISP.sln b/HorseIsleServer/HISP.sln
index a959455..6b7a372 100644
--- a/HorseIsleServer/HISP.sln
+++ b/HorseIsleServer/HISP.sln
@@ -33,6 +33,11 @@ Global
MacOS|ARM64 = MacOS|ARM64
MacOS|x64 = MacOS|x64
MacOS|x86 = MacOS|x86
+ Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|ARM64 = Release|ARM64
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
Windows|Any CPU = Windows|Any CPU
Windows|ARM = Windows|ARM
Windows|ARM64 = Windows|ARM64
@@ -58,8 +63,8 @@ Global
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM64.Build.0 = Debug|ARM64
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x64.ActiveCfg = Debug|x64
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x64.Build.0 = Debug|x64
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x86.ActiveCfg = Debug|AnyCPU
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x86.Build.0 = Debug|AnyCPU
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x86.ActiveCfg = Debug|x86
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x86.Build.0 = Debug|x86
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|Any CPU.ActiveCfg = Linux|Any CPU
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|Any CPU.Build.0 = Linux|Any CPU
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM.ActiveCfg = Linux|ARM
@@ -80,6 +85,16 @@ Global
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x64.Build.0 = MacOS|x64
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x86.ActiveCfg = MacOS|x86
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x86.Build.0 = MacOS|x86
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|Any CPU.ActiveCfg = Windows|Any CPU
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|Any CPU.Build.0 = Windows|Any CPU
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|ARM.ActiveCfg = Windows|ARM
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|ARM.Build.0 = Windows|ARM
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|ARM64.ActiveCfg = Windows|ARM64
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|ARM64.Build.0 = Windows|ARM64
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|x64.ActiveCfg = Windows|x64
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|x64.Build.0 = Windows|x64
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|x86.ActiveCfg = Debug|x86
+ {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|x86.Build.0 = Debug|x86
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|Any CPU.ActiveCfg = Windows|x64
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|Any CPU.Build.0 = Windows|x64
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM.ActiveCfg = Windows|ARM
@@ -102,14 +117,14 @@ Global
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|x86.Build.0 = Android|x86
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM.Build.0 = Debug|Any CPU
- {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM64.Build.0 = Debug|Any CPU
- {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x64.ActiveCfg = Debug|Any CPU
- {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x64.Build.0 = Debug|Any CPU
- {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x86.ActiveCfg = Debug|Any CPU
- {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x86.Build.0 = Debug|Any CPU
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM.ActiveCfg = Debug|ARM
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM.Build.0 = Debug|ARM
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM64.Build.0 = Debug|ARM64
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x64.ActiveCfg = Debug|x64
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x64.Build.0 = Debug|x64
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x86.ActiveCfg = Debug|x86
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x86.Build.0 = Debug|x86
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|Any CPU.ActiveCfg = Debug|Any CPU
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|Any CPU.Build.0 = Debug|Any CPU
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM.ActiveCfg = Linux|ARM
@@ -130,6 +145,16 @@ Global
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x64.Build.0 = MacOS|x64
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x86.ActiveCfg = MacOS|x86
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x86.Build.0 = MacOS|x86
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|Any CPU.ActiveCfg = Linux|Any CPU
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|Any CPU.Build.0 = Linux|Any CPU
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM.ActiveCfg = Debug|ARM
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM.Build.0 = Debug|ARM
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM64.ActiveCfg = Debug|ARM64
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM64.Build.0 = Debug|ARM64
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x64.ActiveCfg = Windows|x64
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x64.Build.0 = Windows|x64
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x86.ActiveCfg = Debug|x86
+ {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x86.Build.0 = Debug|x86
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|Any CPU.ActiveCfg = Debug|x64
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|Any CPU.Build.0 = Debug|x64
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM.ActiveCfg = Windows|Any CPU
@@ -149,13 +174,11 @@ Global
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|ARM.Build.0 = Debug|Any CPU
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|ARM64.Build.0 = Debug|Any CPU
- {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|x64.ActiveCfg = Debug|Any CPU
- {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|x64.Build.0 = Debug|Any CPU
- {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|x86.Build.0 = Debug|Any CPU
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|x64.ActiveCfg = Debug|x64
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|x64.Build.0 = Debug|x64
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|x86.ActiveCfg = Debug|x86
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Debug|x86.Build.0 = Debug|x86
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|Any CPU.ActiveCfg = Debug|Any CPU
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|Any CPU.Build.0 = Debug|Any CPU
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|ARM.ActiveCfg = Debug|Any CPU
@@ -167,6 +190,16 @@ Global
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|ARM64.ActiveCfg = Debug|Any CPU
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|x64.ActiveCfg = Debug|Any CPU
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|x86.ActiveCfg = Debug|Any CPU
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|Any CPU.ActiveCfg = Windows|Any CPU
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|Any CPU.Build.0 = Windows|Any CPU
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|ARM.ActiveCfg = Windows|Any CPU
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|ARM.Build.0 = Windows|Any CPU
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|ARM64.ActiveCfg = Windows|Any CPU
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|ARM64.Build.0 = Windows|Any CPU
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|x64.ActiveCfg = Debug|x64
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|x64.Build.0 = Debug|x64
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|x86.ActiveCfg = Debug|x86
+ {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|x86.Build.0 = Debug|x86
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|Any CPU.ActiveCfg = Debug|x64
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|Any CPU.Build.0 = Debug|x64
{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|ARM.ActiveCfg = Windows|Any CPU
@@ -180,11 +213,11 @@ Global
{D330A197-67D4-42B0-8906-54264AF95EC1}.Android|ARM64.ActiveCfg = Windows
{D330A197-67D4-42B0-8906-54264AF95EC1}.Android|x64.ActiveCfg = Windows
{D330A197-67D4-42B0-8906-54264AF95EC1}.Android|x86.ActiveCfg = Windows
- {D330A197-67D4-42B0-8906-54264AF95EC1}.Debug|Any CPU.ActiveCfg = Debug
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Debug|Any CPU.ActiveCfg = Windows
{D330A197-67D4-42B0-8906-54264AF95EC1}.Debug|ARM.ActiveCfg = Windows
- {D330A197-67D4-42B0-8906-54264AF95EC1}.Debug|ARM64.ActiveCfg = Debug
- {D330A197-67D4-42B0-8906-54264AF95EC1}.Debug|x64.ActiveCfg = Debug
- {D330A197-67D4-42B0-8906-54264AF95EC1}.Debug|x86.ActiveCfg = Debug
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Debug|ARM64.ActiveCfg = Windows
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Debug|x64.ActiveCfg = Windows
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Debug|x86.ActiveCfg = Windows
{D330A197-67D4-42B0-8906-54264AF95EC1}.Linux|Any CPU.ActiveCfg = Debug
{D330A197-67D4-42B0-8906-54264AF95EC1}.Linux|ARM.ActiveCfg = Debug
{D330A197-67D4-42B0-8906-54264AF95EC1}.Linux|ARM64.ActiveCfg = Debug
@@ -195,6 +228,16 @@ Global
{D330A197-67D4-42B0-8906-54264AF95EC1}.MacOS|ARM64.ActiveCfg = Debug
{D330A197-67D4-42B0-8906-54264AF95EC1}.MacOS|x64.ActiveCfg = Debug
{D330A197-67D4-42B0-8906-54264AF95EC1}.MacOS|x86.ActiveCfg = Debug
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Release|Any CPU.ActiveCfg = Release
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Release|Any CPU.Build.0 = Release
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Release|ARM.ActiveCfg = Release
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Release|ARM.Build.0 = Release
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Release|ARM64.ActiveCfg = Release
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Release|ARM64.Build.0 = Release
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Release|x64.ActiveCfg = Release
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Release|x64.Build.0 = Release
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Release|x86.ActiveCfg = Release
+ {D330A197-67D4-42B0-8906-54264AF95EC1}.Release|x86.Build.0 = Release
{D330A197-67D4-42B0-8906-54264AF95EC1}.Windows|Any CPU.ActiveCfg = Debug
{D330A197-67D4-42B0-8906-54264AF95EC1}.Windows|ARM.ActiveCfg = Windows
{D330A197-67D4-42B0-8906-54264AF95EC1}.Windows|ARM64.ActiveCfg = Release
diff --git a/HorseIsleServer/HISPCli/HISPCli.csproj b/HorseIsleServer/HISPCli/HISPCli.csproj
index f564645..0aafef3 100644
--- a/HorseIsleServer/HISPCli/HISPCli.csproj
+++ b/HorseIsleServer/HISPCli/HISPCli.csproj
@@ -25,7 +25,7 @@
false
true
icon.ico
- HISP.Program
+ HISP.Cli.Program
OnBuildSuccess
embedded
False
diff --git a/HorseIsleServer/HISPCli/HISPCli.csproj.user b/HorseIsleServer/HISPCli/HISPCli.csproj.user
new file mode 100644
index 0000000..0f14913
--- /dev/null
+++ b/HorseIsleServer/HISPCli/HISPCli.csproj.user
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/HorseIsleServer/HISPCli/Program.cs b/HorseIsleServer/HISPCli/Program.cs
index 3b2f602..b0b3e0c 100644
--- a/HorseIsleServer/HISPCli/Program.cs
+++ b/HorseIsleServer/HISPCli/Program.cs
@@ -1,43 +1,133 @@
-using HISP.Server;
-using System;
+using HISP.Server;
+using System;
using System.IO;
+using System.Threading.Tasks;
-namespace HISP
-{
- public static class Program
- {
- public static bool ShuttingDown = false;
- public static string LogFile;
- public static string BaseDir;
-
- public static void OnShutdown()
- {
- ShuttingDown = true;
- }
- public static void LogToFile(string text)
+namespace HISP.Cli
+{
+ public static class Program
+ {
+ private static StreamWriter sw = null;
+ private static FileStream fs = null;
+ private static string logFile;
+
+ public static bool ShuttingDown = false;
+ public static string BaseDir;
+ public static string LogFile
{
- File.AppendAllTextAsync(text, LogFile);
- }
- public static void LogStdout(string text)
+ get
+ {
+ return logFile;
+ }
+ set
+ {
+ logFile = value;
+ if(sw != null)
+ {
+ sw.Flush();
+ sw.Dispose();
+ sw = null;
+ }
+ if(fs != null)
+ {
+ fs.Flush();
+ fs.Dispose();
+ fs = null;
+ }
+
+ fs = File.OpenWrite(logFile);
+ sw = new StreamWriter(fs);
+ }
+ }
+
+ public static void OnShutdown()
{
- Console.Out.WriteAsync(text + Console.Out.NewLine);
- }
- public static void Main(string[] args)
+ ShuttingDown = true;
+ }
+ public static void LogToFile(bool error, string type,string text)
+ {
+ sw.WriteLineAsync(text + sw.NewLine);
+ }
+ public static void LogStdout(bool error, string type, string text)
+ {
+ if (error)
+ Console.Error.WriteAsync("[" + type + "] " + text + Console.Error.NewLine);
+ else
+ Console.Out.WriteAsync("[" + type + "] " + text + Console.Out.NewLine);
+
+ }
+
+ public static void Main(string[] args)
{
string BaseDir = Directory.GetCurrentDirectory();
-#if DEB_PACKAGE
- ConfigReader.ConfigurationFileName = "/etc/hisp.conf"
- LogFile = "/var/log/hisp.log"
- Logger.SetCallback(LogToFile);
-#else
- Logger.SetCallback(LogStdout);
-#endif
-
- Entry.SetShutdownCallback(OnShutdown);
- Entry.Start();
-
- while (!ShuttingDown) { /* Allow asyncronous operations to happen. */ };
-
- }
- }
-}
+ Logger.SetCallback(LogStdout);
+
+ string HispConfVar = Environment.GetEnvironmentVariable("HISP_CONF_FILE");
+ string HispLogVar = Environment.GetEnvironmentVariable("HISP_LOG_FILE");
+ string HispBaseDir = Environment.GetEnvironmentVariable("HISP_BASE_DIR");
+
+ foreach (string arg in args)
+ {
+ switch (arg)
+ {
+ case "--install-service":
+ #if OS_LINUX
+ File.WriteAllText("/etc/systemd/system/HISP.service", Properties.Resources.HISPService);
+ LogStdout(false, "INFO", "Crreated Service! enable it with \"sudo systemctl enable HISP\"");
+ #else
+ LogStdout(true, "ERROR", "Installing as a service unsupported on this platform");
+ #endif
+ break;
+ default:
+ if (arg.Contains("="))
+ {
+ string[] argu = arg.Split("=");
+ if (argu.Length >= 2)
+ {
+ switch (argu[0])
+ {
+ case "--config-file":
+ ConfigReader.ConfigurationFileName = argu[1];
+ break;
+ case "--log-to-file":
+ LogFile = argu[1];
+ Logger.SetCallback(LogToFile);
+ break;
+ case "--base-directory":
+ BaseDir = argu[1];
+ Directory.SetCurrentDirectory(BaseDir);
+ break;
+ default:
+ continue;
+ }
+ }
+ }
+ break;
+ }
+ }
+
+ if (HispConfVar != null)
+ {
+ ConfigReader.ConfigurationFileName = HispConfVar;
+ }
+
+ if (HispLogVar != null)
+ {
+ LogFile = HispLogVar;
+ Logger.SetCallback(LogToFile);
+ }
+
+ if (HispBaseDir != null)
+ {
+ BaseDir = HispBaseDir;
+ Directory.SetCurrentDirectory(BaseDir);
+ }
+
+ Entry.SetShutdownCallback(OnShutdown);
+ Entry.Start();
+ while (!ShuttingDown) { /* Allow asyncronous operations to happen. */ };
+ Task.WaitAll();
+
+ }
+ }
+}
diff --git a/HorseIsleServer/HISPCli/Properties/Resources.Designer.cs b/HorseIsleServer/HISPCli/Properties/Resources.Designer.cs
index aecea91..0ac88a9 100644
--- a/HorseIsleServer/HISPCli/Properties/Resources.Designer.cs
+++ b/HorseIsleServer/HISPCli/Properties/Resources.Designer.cs
@@ -8,7 +8,7 @@
//
//------------------------------------------------------------------------------
-namespace HISP.Properties {
+namespace HISP.Cli.Properties {
using System;
@@ -60,57 +60,9 @@ namespace HISP.Properties {
}
}
- ///
- /// Looks up a localized string similar to <cross-domain-policy>
- /// <allow-access-from domain="*" to-ports="12321" secure="false"/>
- ///</cross-domain-policy>.
- ///
- internal static string DefaultCrossDomain {
+ internal static string HISPService {
get {
- return ResourceManager.GetString("DefaultCrossDomain", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to # HorseIsleServer Default Configuration File
- ///
- ///# Ip address the server will bind to (default: 0.0.0.0 ALL INTERFACES)
- ///ip=0.0.0.0
- ///# Port the server will bind to (default: 12321)
- ///port=12321
- ///
- ///# MariaDB Database
- ///db_ip=127.0.0.1
- ///db_name=beta
- ///db_username=root
- ///db_password=test123
- ///db_port=3306
- ///
- ///# Map Data
- ///map=HI1.MAP
- ///
- ///# JSON Format Data
- ///
- ///gamedata=gamedata.json
- ///
- ///# Cross-Domain Policy File
- ///crossdomain=CrossDomainPolicy.xml
- ///
- ///# Red Text Stating "Todays Note:"
- ///motd=April 11, 2020. New breed, C [rest of string was truncated]";.
- ///
- internal static string DefaultServerProperties {
- get {
- return ResourceManager.GetString("DefaultServerProperties", resourceCulture);
- }
- }
-
- ///
- /// UNKNOWN COMMIT HASH
- ///
- internal static string GitCommit {
- get {
- return ResourceManager.GetString("GitCommit", resourceCulture);
+ return ResourceManager.GetString("HISPService", resourceCulture);
}
}
diff --git a/HorseIsleServer/HISPCli/Properties/Resources.resx b/HorseIsleServer/HISPCli/Properties/Resources.resx
index 1af7de1..852a652 100644
--- a/HorseIsleServer/HISPCli/Properties/Resources.resx
+++ b/HorseIsleServer/HISPCli/Properties/Resources.resx
@@ -1,120 +1,124 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\Resources\HISP.service;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
\ No newline at end of file
diff --git a/HorseIsleServer/HISPCli/Resources/HISP.service b/HorseIsleServer/HISPCli/Resources/HISP.service
new file mode 100644
index 0000000..5b4c272
--- /dev/null
+++ b/HorseIsleServer/HISPCli/Resources/HISP.service
@@ -0,0 +1,25 @@
+[Unit]
+Description=HISP (Horse Isle Server Program)
+
+After=syslog.target
+After=network.target
+
+Wants=mariadb.service
+After=mariadb.service
+
+
+[Service]
+RestartSec=2s
+Type=simple
+
+User=horseisle
+Group=horseisle
+
+WorkingDirectory=/etc/hisp
+ExecStart=/usr/bin/HISPCli
+
+Restart=always
+Environment=USER=horseisle HOME=/etc/hisp/home HISP_BASE_DIR=/etc/hisp HISP_CONF_FILE=/etc/hisp/server.properties
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/HorseIsleServer/LibHISP/Server/Logger.cs b/HorseIsleServer/LibHISP/Server/Logger.cs
index 2f1eb7d..ecc4507 100644
--- a/HorseIsleServer/LibHISP/Server/Logger.cs
+++ b/HorseIsleServer/LibHISP/Server/Logger.cs
@@ -4,15 +4,15 @@ namespace HISP.Server
{
public class Logger
{
- private static void defaultCallbackFunc(string txt)
+ private static void defaultCallbackFunc(bool error, string type, string text)
{
return;
}
- private static Action logFunction = defaultCallbackFunc;
+ private static Action logFunction = defaultCallbackFunc;
- public static void SetCallback(Action callback)
+ public static void SetCallback(Action callback)
{
logFunction = callback;
}
@@ -20,27 +20,27 @@ namespace HISP.Server
public static void ErrorPrint(string text)
{
if (ConfigReader.LogLevel >= 1)
- logFunction("[ERROR] " + text);
+ logFunction(true, "ERROR", text);
}
public static void WarnPrint(string text)
{
if (ConfigReader.LogLevel >= 2)
- logFunction("[WARN] " + text);
+ logFunction(false, "WARN", text);
}
public static void HackerPrint(string text)
{
if (ConfigReader.LogLevel >= 3)
- logFunction("[HACK] " + text);
+ logFunction(false, "HACK", text);
}
public static void InfoPrint(string text)
{
if (ConfigReader.LogLevel >= 4)
- logFunction("[INFO] " + text);
+ logFunction(false, "INFO", text);
}
public static void DebugPrint(string text)
{
if (ConfigReader.LogLevel >= 5)
- logFunction("[DEBUG] " + text);
+ logFunction(false, "DEBUG", text);
}
}
}
diff --git a/HorseIsleServer/N00BS/LoadingForm.Designer.cs b/HorseIsleServer/N00BS/LoadingForm.Designer.cs
index 8b1663d..8f60a0f 100644
--- a/HorseIsleServer/N00BS/LoadingForm.Designer.cs
+++ b/HorseIsleServer/N00BS/LoadingForm.Designer.cs
@@ -1,95 +1,95 @@
-namespace HISP
-{
- partial class LoadingForm
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoadingForm));
- this.StepName = new System.Windows.Forms.Label();
- this.pictureBox1 = new System.Windows.Forms.PictureBox();
- this.StartProgress = new System.Windows.Forms.ProgressBar();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
- this.SuspendLayout();
- //
- // StepName
- //
- this.StepName.AutoSize = true;
- this.StepName.Location = new System.Drawing.Point(79, 22);
- this.StepName.Name = "StepName";
- this.StepName.Size = new System.Drawing.Size(92, 15);
- this.StepName.TabIndex = 0;
- this.StepName.Text = "Starting Server...";
- //
- // pictureBox1
- //
- this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
- this.pictureBox1.Location = new System.Drawing.Point(12, 12);
- this.pictureBox1.Name = "pictureBox1";
- this.pictureBox1.Size = new System.Drawing.Size(61, 73);
- this.pictureBox1.TabIndex = 1;
- this.pictureBox1.TabStop = false;
- //
- // StartProgress
- //
- this.StartProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.StartProgress.Location = new System.Drawing.Point(79, 40);
- this.StartProgress.Maximum = 18;
- this.StartProgress.Name = "StartProgress";
- this.StartProgress.Size = new System.Drawing.Size(618, 23);
- this.StartProgress.Step = 1;
- this.StartProgress.TabIndex = 2;
- //
- // LoadingForm
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(709, 101);
- this.Controls.Add(this.StartProgress);
- this.Controls.Add(this.pictureBox1);
- this.Controls.Add(this.StepName);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.MaximizeBox = false;
- this.MaximumSize = new System.Drawing.Size(725, 140);
- this.MinimumSize = new System.Drawing.Size(725, 140);
- this.Name = "LoadingForm";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "Starting Server...";
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private System.Windows.Forms.Label StepName;
- private System.Windows.Forms.PictureBox pictureBox1;
- public System.Windows.Forms.ProgressBar StartProgress;
- }
+namespace HISP.Noobs
+{
+ partial class LoadingForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoadingForm));
+ this.StepName = new System.Windows.Forms.Label();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.StartProgress = new System.Windows.Forms.ProgressBar();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // StepName
+ //
+ this.StepName.AutoSize = true;
+ this.StepName.Location = new System.Drawing.Point(79, 22);
+ this.StepName.Name = "StepName";
+ this.StepName.Size = new System.Drawing.Size(92, 15);
+ this.StepName.TabIndex = 0;
+ this.StepName.Text = "Starting Server...";
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
+ this.pictureBox1.Location = new System.Drawing.Point(12, 12);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(61, 73);
+ this.pictureBox1.TabIndex = 1;
+ this.pictureBox1.TabStop = false;
+ //
+ // StartProgress
+ //
+ this.StartProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.StartProgress.Location = new System.Drawing.Point(79, 40);
+ this.StartProgress.Maximum = 18;
+ this.StartProgress.Name = "StartProgress";
+ this.StartProgress.Size = new System.Drawing.Size(618, 23);
+ this.StartProgress.Step = 1;
+ this.StartProgress.TabIndex = 2;
+ //
+ // LoadingForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(709, 101);
+ this.Controls.Add(this.StartProgress);
+ this.Controls.Add(this.pictureBox1);
+ this.Controls.Add(this.StepName);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MaximumSize = new System.Drawing.Size(725, 140);
+ this.MinimumSize = new System.Drawing.Size(725, 140);
+ this.Name = "LoadingForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Starting Server...";
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label StepName;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ public System.Windows.Forms.ProgressBar StartProgress;
+ }
}
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/LoadingForm.cs b/HorseIsleServer/N00BS/LoadingForm.cs
index e34e641..8c9bfa8 100644
--- a/HorseIsleServer/N00BS/LoadingForm.cs
+++ b/HorseIsleServer/N00BS/LoadingForm.cs
@@ -8,7 +8,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
-namespace HISP
+namespace HISP.Noobs
{
public partial class LoadingForm : Form
{
diff --git a/HorseIsleServer/N00BS/N00BS.csproj b/HorseIsleServer/N00BS/N00BS.csproj
index 5d769da..8b748a4 100644
--- a/HorseIsleServer/N00BS/N00BS.csproj
+++ b/HorseIsleServer/N00BS/N00BS.csproj
@@ -1,148 +1,148 @@
-
-
- WinExe
- HISP
- 10.0
- true
-
- x64;x86;AnyCPU
- Debug;Windows
-
-
-
-
-
-
- True
- True
- Resources.resx
-
+
+
+ WinExe
+ HISP
+ 10.0
+ true
+
+ x64;x86;AnyCPU
+ Debug;Windows
+
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
Form
-
-
-
-
- PreserveNewest
-
-
-
-
-
- PreserveNewest
- client\%(Filename)%(Extension)
-
-
-
-
-
- PreserveNewest
- client\map750.png
-
-
-
-
-
- PreserveNewest
- client\mod\%(Filename)%(Extension)
-
-
-
-
-
- PreserveNewest
- client\tack\%(Filename)%(Extension)
-
-
-
-
-
-
- PreserveNewest
- client\breed\%(Filename)%(Extension)
-
-
-
-
-
- PreserveNewest
- client\resource\%(Filename)%(Extension)
-
-
-
-
- false
- false
-
-
- net6.0-windows
- false
- true
- icon.ico
- HISP.Program
- OnBuildSuccess
- embedded
- False
- none
- False
- Public Domain, 2022
- https://islehorse.com
- https://github.com/islehorse/HISP
- git
-
-
-
- win-x86
- true
- x86
- OS_WINDOWS;ARCH_X86
- 3
- 1701;1702;2026
-
-
- win-x64
- true
- x64
- OS_WINDOWS;ARCH_X86_64
- 3
- 1701;1702;2026
-
-
-
- net6.0
- win-x86;win-x64
- True
- OS_ALL;ARCH_ANYCPU
-
-
-
- False
- DEBUG;TRACE;OS_DEBUG;ARCH_X86_64
- 3
- 1701;1702;2026
-
-
-
-
- False
- DEBUG;TRACE;OS_DEBUG;ARCH_X86
- 3
- 1701;1702;2026
-
-
-
-
- False
- OS_WINDOWS;ARCH_ANYCPU
- 3
- 1701;1702;2026
-
-
-
- 3
- 1701;1702;2026
- False
-
-
-
-
+
+
+
+
+ PreserveNewest
+
+
+
+
+
+ PreserveNewest
+ client\%(Filename)%(Extension)
+
+
+
+
+
+ PreserveNewest
+ client\map750.png
+
+
+
+
+
+ PreserveNewest
+ client\mod\%(Filename)%(Extension)
+
+
+
+
+
+ PreserveNewest
+ client\tack\%(Filename)%(Extension)
+
+
+
+
+
+
+ PreserveNewest
+ client\breed\%(Filename)%(Extension)
+
+
+
+
+
+ PreserveNewest
+ client\resource\%(Filename)%(Extension)
+
+
+
+
+ false
+ false
+
+
+ net6.0-windows
+ false
+ true
+ icon.ico
+ HISP.Noobs.Program
+ OnBuildSuccess
+ embedded
+ False
+ none
+ False
+ Public Domain, 2022
+ https://islehorse.com
+ https://github.com/islehorse/HISP
+ git
+
+
+
+ win-x86
+ true
+ x86
+ OS_WINDOWS;ARCH_X86
+ 3
+ 1701;1702;2026
+
+
+ win-x64
+ true
+ x64
+ OS_WINDOWS;ARCH_X86_64
+ 3
+ 1701;1702;2026
+
+
+
+ net6.0
+ win-x86;win-x64
+ True
+ OS_ALL;ARCH_ANYCPU
+
+
+
+ False
+ DEBUG;TRACE;OS_DEBUG;ARCH_X86_64
+ 3
+ 1701;1702;2026
+
+
+
+
+ False
+ DEBUG;TRACE;OS_DEBUG;ARCH_X86
+ 3
+ 1701;1702;2026
+
+
+
+
+ False
+ OS_WINDOWS;ARCH_ANYCPU
+ 3
+ 1701;1702;2026
+
+
+
+ 3
+ 1701;1702;2026
+ False
+
+
+
+
diff --git a/HorseIsleServer/N00BS/Program.cs b/HorseIsleServer/N00BS/Program.cs
index f7d7c75..64c5d95 100644
--- a/HorseIsleServer/N00BS/Program.cs
+++ b/HorseIsleServer/N00BS/Program.cs
@@ -15,7 +15,7 @@ using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
-namespace HISP
+namespace HISP.Noobs
{
public static class Program
{
@@ -117,7 +117,6 @@ namespace HISP
IncrementProgress();
// Start HI1 Server
- Logger.SetCallback(Console.WriteLine);
IncrementProgress();
Entry.SetShutdownCallback(OnShutdown);
diff --git a/HorseIsleServer/N00BS/Properties/Resources.Designer.cs b/HorseIsleServer/N00BS/Properties/Resources.Designer.cs
index aecea91..cec9b10 100644
--- a/HorseIsleServer/N00BS/Properties/Resources.Designer.cs
+++ b/HorseIsleServer/N00BS/Properties/Resources.Designer.cs
@@ -8,7 +8,7 @@
//
//------------------------------------------------------------------------------
-namespace HISP.Properties {
+namespace HISPCli.Properties {
using System;
diff --git a/HorseIsleServer/N00BS/RegisterForm.Designer.cs b/HorseIsleServer/N00BS/RegisterForm.Designer.cs
index a59cdfe..81fec78 100644
--- a/HorseIsleServer/N00BS/RegisterForm.Designer.cs
+++ b/HorseIsleServer/N00BS/RegisterForm.Designer.cs
@@ -1,4 +1,4 @@
-namespace HISP
+namespace HISP.Noobs
{
partial class RegisterForm
{
diff --git a/HorseIsleServer/N00BS/RegisterForm.cs b/HorseIsleServer/N00BS/RegisterForm.cs
index 1dbca61..382967e 100644
--- a/HorseIsleServer/N00BS/RegisterForm.cs
+++ b/HorseIsleServer/N00BS/RegisterForm.cs
@@ -4,7 +4,7 @@ using System.Windows.Forms;
using HISP.Security;
using HISP.Server;
-namespace HISP
+namespace HISP.Noobs
{
public partial class RegisterForm : Form
{
diff --git a/HorseIsleServer/N00BS/ResetForm.Designer.cs b/HorseIsleServer/N00BS/ResetForm.Designer.cs
index bb64dca..224fb78 100644
--- a/HorseIsleServer/N00BS/ResetForm.Designer.cs
+++ b/HorseIsleServer/N00BS/ResetForm.Designer.cs
@@ -1,4 +1,4 @@
-namespace HISP
+namespace HISP.Noobs
{
partial class ResetForm
{
@@ -48,7 +48,7 @@
//
// Username
//
- this.Username.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ this.Username.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.Username.Location = new System.Drawing.Point(12, 27);
this.Username.MaxLength = 16;
@@ -61,7 +61,7 @@
//
// Password
//
- this.Password.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ this.Password.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.Password.Location = new System.Drawing.Point(12, 56);
this.Password.MaxLength = 16;
@@ -75,7 +75,7 @@
//
// ResetPassword
//
- this.ResetPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ this.ResetPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ResetPassword.Enabled = false;
this.ResetPassword.Location = new System.Drawing.Point(12, 118);
diff --git a/HorseIsleServer/N00BS/ResetForm.cs b/HorseIsleServer/N00BS/ResetForm.cs
index 1129f29..1ecde82 100644
--- a/HorseIsleServer/N00BS/ResetForm.cs
+++ b/HorseIsleServer/N00BS/ResetForm.cs
@@ -4,7 +4,7 @@ using System.Windows.Forms;
using HISP.Security;
using HISP.Server;
-namespace HISP
+namespace HISP.Noobs
{
public partial class ResetForm : Form
{
diff --git a/HorseIsleServer/N00BS/SystemTrayIcon.Designer.cs b/HorseIsleServer/N00BS/SystemTrayIcon.Designer.cs
index 83c5aac..41fa379 100644
--- a/HorseIsleServer/N00BS/SystemTrayIcon.Designer.cs
+++ b/HorseIsleServer/N00BS/SystemTrayIcon.Designer.cs
@@ -1,4 +1,4 @@
-namespace HISP
+namespace HISP.Noobs
{
partial class SystemTrayIcon
{
diff --git a/HorseIsleServer/N00BS/SystemTrayIcon.cs b/HorseIsleServer/N00BS/SystemTrayIcon.cs
index 0fc9c28..3447e3c 100644
--- a/HorseIsleServer/N00BS/SystemTrayIcon.cs
+++ b/HorseIsleServer/N00BS/SystemTrayIcon.cs
@@ -4,7 +4,7 @@ using System.Diagnostics;
using System.IO;
using System.Windows.Forms;
-namespace HISP
+namespace HISP.Noobs
{
public partial class SystemTrayIcon : Form
{
diff --git a/HorseIsleServer/TestServ/App.config b/HorseIsleServer/TestServ/App.config
new file mode 100644
index 0000000..5754728
--- /dev/null
+++ b/HorseIsleServer/TestServ/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HorseIsleServer/TestServ/HorseIsleService.Designer.cs b/HorseIsleServer/TestServ/HorseIsleService.Designer.cs
new file mode 100644
index 0000000..330e1b2
--- /dev/null
+++ b/HorseIsleServer/TestServ/HorseIsleService.Designer.cs
@@ -0,0 +1,41 @@
+namespace TestServ
+{
+ partial class HorseIsleService
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ //
+ // HorseIsleService
+ //
+ this.CanShutdown = true;
+ this.ServiceName = "Horse Isle Service";
+
+ }
+
+ #endregion
+ }
+}
diff --git a/HorseIsleServer/TestServ/HorseIsleService.cs b/HorseIsleServer/TestServ/HorseIsleService.cs
new file mode 100644
index 0000000..054ecaa
--- /dev/null
+++ b/HorseIsleServer/TestServ/HorseIsleService.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Diagnostics;
+using System.Linq;
+using System.ServiceProcess;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace TestServ
+{
+ public partial class HorseIsleService : ServiceBase
+ {
+ public HorseIsleService()
+ {
+ InitializeComponent();
+ }
+
+ protected override void OnStart(string[] args)
+ {
+ }
+
+ protected override void OnStop()
+ {
+ }
+ }
+}
diff --git a/HorseIsleServer/TestServ/HorseIsleService.resx b/HorseIsleServer/TestServ/HorseIsleService.resx
new file mode 100644
index 0000000..c2126cc
--- /dev/null
+++ b/HorseIsleServer/TestServ/HorseIsleService.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ False
+
+
+ True
+
+
+ en
+
+
\ No newline at end of file
diff --git a/HorseIsleServer/TestServ/Program.cs b/HorseIsleServer/TestServ/Program.cs
new file mode 100644
index 0000000..05db1e5
--- /dev/null
+++ b/HorseIsleServer/TestServ/Program.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.ServiceProcess;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace TestServ
+{
+ internal static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ static void Main()
+ {
+ ServiceBase[] ServicesToRun;
+ ServicesToRun = new ServiceBase[]
+ {
+ new HorseIsleService()
+ };
+ ServiceBase.Run(ServicesToRun);
+ }
+ }
+}
diff --git a/HorseIsleServer/TestServ/Properties/AssemblyInfo.cs b/HorseIsleServer/TestServ/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..9734af5
--- /dev/null
+++ b/HorseIsleServer/TestServ/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("TestServ")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("psmreborn.com")]
+[assembly: AssemblyProduct("TestServ")]
+[assembly: AssemblyCopyright("Copyright © psmreborn.com 2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("2632140e-7cb4-4b0f-a00f-bb38599ea021")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/HorseIsleServer/TestServ/TestServ.csproj b/HorseIsleServer/TestServ/TestServ.csproj
new file mode 100644
index 0000000..c27000d
--- /dev/null
+++ b/HorseIsleServer/TestServ/TestServ.csproj
@@ -0,0 +1,60 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {2632140E-7CB4-4B0F-A00F-BB38599EA021}
+ WinExe
+ TestServ
+ TestServ
+ v4.7.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Component
+
+
+ Service1.cs
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HorseIsleServer/TestServ/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/HorseIsleServer/TestServ/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs
new file mode 100644
index 0000000..057ed7f
--- /dev/null
+++ b/HorseIsleServer/TestServ/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
diff --git a/HorseIsleServer/TestServ/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/HorseIsleServer/TestServ/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..932765e
Binary files /dev/null and b/HorseIsleServer/TestServ/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/HorseIsleServer/TestServ/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/HorseIsleServer/TestServ/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..d530f5b
Binary files /dev/null and b/HorseIsleServer/TestServ/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/HorseIsleServer/TestServ/obj/Debug/TestServ.csproj.AssemblyReference.cache b/HorseIsleServer/TestServ/obj/Debug/TestServ.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..b5b673f
Binary files /dev/null and b/HorseIsleServer/TestServ/obj/Debug/TestServ.csproj.AssemblyReference.cache differ