diff --git a/HorseIsleServer/HorseIsleServer.sln b/HorseIsleServer/HorseIsleServer.sln
index a5f51b9..8296a37 100644
--- a/HorseIsleServer/HorseIsleServer.sln
+++ b/HorseIsleServer/HorseIsleServer.sln
@@ -7,30 +7,24 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HorseIsleServer", "HorseIsl
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
- Linux|Any CPU = Linux|Any CPU
Linux|ARM = Linux|ARM
Linux|ARM64 = Linux|ARM64
Linux|x64 = Linux|x64
Linux|x86 = Linux|x86
- MacOS|Any CPU = MacOS|Any CPU
MacOS|ARM = MacOS|ARM
MacOS|ARM64 = MacOS|ARM64
MacOS|x64 = MacOS|x64
MacOS|x86 = MacOS|x86
- Windows|Any CPU = Windows|Any CPU
Windows|ARM = Windows|ARM
Windows|ARM64 = Windows|ARM64
Windows|x64 = Windows|x64
Windows|x86 = Windows|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM.ActiveCfg = Debug|ARM
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM.Build.0 = Debug|ARM
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM64.ActiveCfg = Debug|ARM64
@@ -39,8 +33,6 @@ Global
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x64.Build.0 = Debug|x64
{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
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM.Build.0 = Linux|ARM
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM64.ActiveCfg = Linux|ARM64
@@ -49,22 +41,13 @@ Global
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x64.Build.0 = Linux|x64
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x86.ActiveCfg = Linux|x86
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x86.Build.0 = Linux|x86
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|Any CPU.ActiveCfg = MacOS|Any CPU
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|Any CPU.Build.0 = MacOS|Any CPU
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM.ActiveCfg = MacOS|ARM
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM.Build.0 = MacOS|ARM
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM64.ActiveCfg = MacOS|ARM64
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM64.Build.0 = MacOS|ARM64
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x64.ActiveCfg = MacOS|x64
{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}.Windows|Any CPU.ActiveCfg = Windows|Any CPU
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|Any CPU.Build.0 = Windows|Any CPU
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM.ActiveCfg = Windows|ARM
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM.Build.0 = Windows|ARM
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM64.ActiveCfg = Windows|ARM64
- {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM64.Build.0 = Windows|ARM64
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x64.ActiveCfg = Windows|x64
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x64.Build.0 = Windows|x64
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x86.ActiveCfg = Windows|x86
diff --git a/HorseIsleServer/HorseIsleServer/Game/Chat/Chat.cs b/HorseIsleServer/HorseIsleServer/Game/Chat/Chat.cs
index 61dc915..1e06fdc 100644
--- a/HorseIsleServer/HorseIsleServer/Game/Chat/Chat.cs
+++ b/HorseIsleServer/HorseIsleServer/Game/Chat/Chat.cs
@@ -177,6 +177,9 @@ namespace HISP.Game.Chat
else if (message.ToUpper().StartsWith("!DANCE"))
return Command.Dance(message, args, user);
+
+ else if (message.ToUpper().StartsWith("!VERSION"))
+ return Command.Version(message, args, user);
}
return false;
}
diff --git a/HorseIsleServer/HorseIsleServer/Game/Chat/Command.cs b/HorseIsleServer/HorseIsleServer/Game/Chat/Command.cs
index 5a19440..de295e6 100644
--- a/HorseIsleServer/HorseIsleServer/Game/Chat/Command.cs
+++ b/HorseIsleServer/HorseIsleServer/Game/Chat/Command.cs
@@ -160,6 +160,17 @@ namespace HISP.Game.Chat
return true;
}
+ public static bool Version(string message, string[] args, User user)
+ {
+ // Get current version and send to client
+ byte[] versionPacket = PacketBuilder.CreateChat(ServerVersion.GetBuildString(), PacketBuilder.CHAT_BOTTOM_RIGHT);
+ user.LoggedinClient.SendPacket(versionPacket);
+
+ // Send Command complete message to client.
+ byte[] versionCommandCompletePacket = PacketBuilder.CreateChat(Messages.FormatPlayerCommandCompleteMessage(message.Substring(1)), PacketBuilder.CHAT_BOTTOM_LEFT);
+ user.LoggedinClient.SendPacket(versionCommandCompletePacket);
+ return true;
+ }
public static bool Ban(string message, string[] args, User user)
{
if (args.Length <= 0)
diff --git a/HorseIsleServer/HorseIsleServer/HorseIsleServer.csproj b/HorseIsleServer/HorseIsleServer/HorseIsleServer.csproj
index 5be4c7b..3c84c76 100644
--- a/HorseIsleServer/HorseIsleServer/HorseIsleServer.csproj
+++ b/HorseIsleServer/HorseIsleServer/HorseIsleServer.csproj
@@ -3,7 +3,7 @@
Exe
HISP
8.0
- x64;x86;ARM;ARM64;AnyCPU
+ x64;x86;ARM;ARM64
Windows;Debug;Linux;MacOS
@@ -39,6 +39,8 @@
false
true
icon.ico
+ HISP.Program
+ OnBuildSuccess
icon.ico
@@ -46,6 +48,7 @@
win-x86
true
x86
+ OS_WINDOWS;ARCH_X86
icon.ico
@@ -53,34 +56,37 @@
win-x64
true
x64
+ OS_WINDOWS;ARCH_X86_64
net5.0
linux-x64
true
- x64
+ x64
+ OS_LINUX;ARCH_X86_64
net5.0
osx-x64
true
- x64
+ x64
+ OS_MACOS;ARCH_x86_64
net5.0
linux-arm
true
ARM
+ OS_LINUX;ARCH_ARM
net5.0
linux-arm64
true
ARM64
+ OS_LINUX;ARCH_ARM64
-
- net5.0
- win-x86;win-x64;win-arm;win-arm64;linux-x64;linux-arm;linux-arm64;osx-x64
- true
-
+
+
+
diff --git a/HorseIsleServer/HorseIsleServer/Properties/Resources.Designer.cs b/HorseIsleServer/HorseIsleServer/Properties/Resources.Designer.cs
index 722097e..aecea91 100644
--- a/HorseIsleServer/HorseIsleServer/Properties/Resources.Designer.cs
+++ b/HorseIsleServer/HorseIsleServer/Properties/Resources.Designer.cs
@@ -104,5 +104,15 @@ namespace HISP.Properties {
return ResourceManager.GetString("DefaultServerProperties", resourceCulture);
}
}
+
+ ///
+ /// UNKNOWN COMMIT HASH
+ ///
+ internal static string GitCommit {
+ get {
+ return ResourceManager.GetString("GitCommit", resourceCulture);
+ }
+ }
+
}
}
diff --git a/HorseIsleServer/HorseIsleServer/Properties/Resources.resx b/HorseIsleServer/HorseIsleServer/Properties/Resources.resx
index 31a2ca5..7b5bcd9 100644
--- a/HorseIsleServer/HorseIsleServer/Properties/Resources.resx
+++ b/HorseIsleServer/HorseIsleServer/Properties/Resources.resx
@@ -124,4 +124,7 @@
..\Resources\server.properties;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252
-
+
+ ..\Resources\GitCommit;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252
+
+
\ No newline at end of file
diff --git a/HorseIsleServer/HorseIsleServer/Resources/GitCommit b/HorseIsleServer/HorseIsleServer/Resources/GitCommit
new file mode 100644
index 0000000..5cd5286
--- /dev/null
+++ b/HorseIsleServer/HorseIsleServer/Resources/GitCommit
@@ -0,0 +1 @@
+1204d586bd47400b2a091e9906481f46da33a22a
diff --git a/HorseIsleServer/HorseIsleServer/Server/ServerVersion.cs b/HorseIsleServer/HorseIsleServer/Server/ServerVersion.cs
new file mode 100644
index 0000000..c2c46a7
--- /dev/null
+++ b/HorseIsleServer/HorseIsleServer/Server/ServerVersion.cs
@@ -0,0 +1,56 @@
+using HISP.Properties;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HISP.Server
+{
+ public class ServerVersion
+ {
+ public static int MAJOR = 1;
+ public static int MINOR = 3;
+ public static string PRODUCT = "HISP";
+
+ public static string GetArchitecture()
+ {
+#if ARCH_X86_64
+ return "x86_64";
+#elif ARCH_X86
+ return "x86";
+#elif ARCH_ARM
+ return "ARM";
+#elif ARCH_ARM64
+ return "ARM64"
+#else
+ return "UNK_ARCH";
+#endif
+ }
+ public static string GetPlatform()
+ {
+#if OS_WINDOWS
+ return "WINDOWS";
+#elif OS_LINUX
+ return "LINUX";
+#elif OS_MACOS
+ return "MACOS";
+#else
+ return "UNK_PLATFORM";
+#endif
+
+ }
+ public static string GetVersionString()
+ {
+ return "v" + MAJOR.ToString() + "." + MINOR.ToString();
+ }
+ public static string GetCommitHash(int TotalBytes)
+ {
+ return Resources.GitCommit.Substring(0, TotalBytes * 2);
+ }
+ public static string GetBuildString()
+ {
+ return PRODUCT + " " + GetVersionString() + " " + GetCommitHash(4) + "; (" + GetArchitecture() + "; " + GetPlatform() + ")";
+ }
+ }
+}