From 6891561263a6f0f31540a8a422e74c179b7139b7 Mon Sep 17 00:00:00 2001 From: SilicaAndPina Date: Sat, 19 Mar 2022 01:36:18 +1300 Subject: [PATCH] Add VSIX Installer project --- .github/workflows/build.yml | 14 +- .gitignore | 7 +- HorseIsleServer/HISP.sln | 410 ++++---- HorseIsleServer/HISP/Program.cs | 22 - .../HISP.csproj => HISPCli/HISPCli.csproj} | 8 +- HorseIsleServer/HISPCli/Program.cs | 43 + .../Properties/AssemblyInfo.cs | 0 .../PublishProfiles/AndroidARM.pubxml | 0 .../PublishProfiles/AndroidARM64.pubxml | 0 .../Properties/PublishProfiles/Linux64.pubxml | 0 .../PublishProfiles/LinuxARM.pubxml | 0 .../PublishProfiles/LinuxARM64.pubxml | 0 .../Properties/PublishProfiles/Osx64.pubxml | 0 .../PublishProfiles/OsxARM64.pubxml | 0 .../Properties/PublishProfiles/Win32.pubxml | 0 .../Properties/PublishProfiles/Win64.pubxml | 0 .../Properties/PublishProfiles/WinARM.pubxml | 0 .../PublishProfiles/WinARM64.pubxml | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../Properties/launchSettings.json | 0 HorseIsleServer/{HISP => HISPCli}/icon.ico | Bin HorseIsleServer/Installer/Installer.vdproj | 956 ++++++++++++++++++ HorseIsleServer/LibHISP/LibHISP.csproj | 6 +- HorseIsleServer/LibHISP/Server/Database.cs | 28 +- HorseIsleServer/N00BS/HTTP/ContentServer.cs | 2 +- .../N00BS/{HISP-N00BS.csproj => N00BS.csproj} | 3 + ...SP-N00BS.csproj.user => N00BS.csproj.user} | 0 HorseIsleServer/N00BS/Program.cs | 18 +- .../N00BS/RegisterForm.Designer.cs | 464 ++++----- HorseIsleServer/N00BS/RegisterForm.resx | 250 ++--- HorseIsleServer/N00BS/ResetForm.Designer.cs | 140 +++ HorseIsleServer/N00BS/ResetForm.cs | 144 +++ HorseIsleServer/N00BS/ResetForm.resx | 126 +++ .../N00BS/SystemTrayIcon.Designer.cs | 357 ++++--- HorseIsleServer/N00BS/SystemTrayIcon.cs | 110 +- HorseIsleServer/N00BS/SystemTrayIcon.resx | 268 ++--- 37 files changed, 2517 insertions(+), 859 deletions(-) delete mode 100644 HorseIsleServer/HISP/Program.cs rename HorseIsleServer/{HISP/HISP.csproj => HISPCli/HISPCli.csproj} (97%) create mode 100644 HorseIsleServer/HISPCli/Program.cs rename HorseIsleServer/{HISP => HISPCli}/Properties/AssemblyInfo.cs (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/AndroidARM.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/AndroidARM64.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/Linux64.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/LinuxARM.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/LinuxARM64.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/Osx64.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/OsxARM64.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/Win32.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/Win64.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/WinARM.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/PublishProfiles/WinARM64.pubxml (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/Resources.Designer.cs (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/Resources.resx (100%) rename HorseIsleServer/{HISP => HISPCli}/Properties/launchSettings.json (100%) rename HorseIsleServer/{HISP => HISPCli}/icon.ico (100%) create mode 100644 HorseIsleServer/Installer/Installer.vdproj rename HorseIsleServer/N00BS/{HISP-N00BS.csproj => N00BS.csproj} (98%) rename HorseIsleServer/N00BS/{HISP-N00BS.csproj.user => N00BS.csproj.user} (100%) create mode 100644 HorseIsleServer/N00BS/ResetForm.Designer.cs create mode 100644 HorseIsleServer/N00BS/ResetForm.cs create mode 100644 HorseIsleServer/N00BS/ResetForm.resx diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6801f9a..f96f8c4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -124,43 +124,43 @@ jobs: uses: actions/upload-artifact@v2 with: name: HISP-Linux64 - path: HorseIsleServer/HISP/bin/x64/Linux/net6.0/linux-x64/publish/ + path: HorseIsleServer/HISPCli/bin/x64/Linux/net6.0/linux-x64/publish/ - name: Upload linux-arm uses: actions/upload-artifact@v2 with: name: HISP-LinuxARM - path: HorseIsleServer/HISP/bin/ARM/Linux/net6.0/linux-arm/publish/ + path: HorseIsleServer/HISPCli/bin/ARM/Linux/net6.0/linux-arm/publish/ - name: Upload linux-arm64 uses: actions/upload-artifact@v2 with: name: HISP-LinuxARM64 - path: HorseIsleServer/HISP/bin/ARM64/Linux/net6.0/linux-arm64/publish/ + path: HorseIsleServer/HISPCli/bin/ARM64/Linux/net6.0/linux-arm64/publish/ - name: Upload mac-x64 uses: actions/upload-artifact@v2 with: name: HISP-Mac64 - path: HorseIsleServer/HISP/bin/x64/MacOS/net6.0/osx-x64/publish/ + path: HorseIsleServer/HISPCli/bin/x64/MacOS/net6.0/osx-x64/publish/ - name: Upload mac-arm64 uses: actions/upload-artifact@v2 with: name: HISP-MacARM64 - path: HorseIsleServer/HISP/bin/arm64/MacOS/net6.0/osx-arm64/publish/ + path: HorseIsleServer/HISPCli/bin/arm64/MacOS/net6.0/osx-arm64/publish/ - name: Upload android-arm uses: actions/upload-artifact@v2 with: name: HISP-AndroidARM - path: HorseIsleServer/HISP/bin/arm/Android/net6.0/android-arm/publish/ + path: HorseIsleServer/HISPCli/bin/arm/Android/net6.0/android-arm/publish/ - name: Upload android-arm64 uses: actions/upload-artifact@v2 with: name: HISP-AndroidARM64 - path: HorseIsleServer/HISP/bin/arm64/Android/net6.0/android-arm64/publish/ + path: HorseIsleServer/HISPCli/bin/arm64/Android/net6.0/android-arm64/publish/ - name: Upload Website (master) diff --git a/.gitignore b/.gitignore index 4f035f5..2e7eb53 100755 --- a/.gitignore +++ b/.gitignore @@ -8,8 +8,11 @@ HorseIsleServer/N00BS/obj/* HorseIsleServer/N00BS/bin/* -HorseIsleServer/HISP/obj/* -HorseIsleServer/HISP/bin/* +HorseIsleServer/HISPCli/obj/* +HorseIsleServer/HISPCli/bin/* + +HorseIsleServer/Installer/obj/* +HorseIsleServer/Installer/bin/* HorseIsleServer/LibHISP/obj/* HorseIsleServer/LibHISP/bin/* diff --git a/HorseIsleServer/HISP.sln b/HorseIsleServer/HISP.sln index 1ad84f5..a959455 100644 --- a/HorseIsleServer/HISP.sln +++ b/HorseIsleServer/HISP.sln @@ -1,198 +1,212 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.2.32210.308 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibHISP", "LibHISP\LibHISP.csproj", "{C48CBD82-AB30-494A-8FFA-4DE7069B5827}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HISP", "HISP\HISP.csproj", "{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HISP-N00BS", "N00BS\HISP-N00BS.csproj", "{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}" -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 - 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 - 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 - {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}.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 - {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM64.Build.0 = Linux|ARM64 - {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x64.ActiveCfg = Linux|x64 - {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}.Release|Any CPU.ActiveCfg = Debug|Any CPU - {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|Any CPU.Build.0 = Debug|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|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 - {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x86.Build.0 = Windows|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}.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 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM64.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM64.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x64.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x64.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x86.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x86.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|Any CPU.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|Any CPU.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM64.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM64.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x64.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x64.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x86.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x86.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|Any CPU.Build.0 = Release|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM.ActiveCfg = Release|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM.Build.0 = Release|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM64.ActiveCfg = Release|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM64.Build.0 = Release|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x64.ActiveCfg = Release|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x64.Build.0 = Release|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x86.ActiveCfg = Release|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x86.Build.0 = Release|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|Any CPU.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|Any CPU.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM64.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM64.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x64.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x64.Build.0 = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x86.ActiveCfg = Debug|Any CPU - {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x86.Build.0 = Debug|Any CPU - {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}.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 - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|ARM.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|ARM64.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|ARM64.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|x64.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|x64.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|x86.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|x86.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|Any CPU.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|Any CPU.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|ARM.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|ARM.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|ARM64.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|ARM64.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|x64.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|x64.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|x86.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|x86.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|Any CPU.Build.0 = Release|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|ARM.ActiveCfg = Release|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|ARM.Build.0 = Release|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|ARM64.ActiveCfg = Release|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|ARM64.Build.0 = Release|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|x64.ActiveCfg = Release|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|x64.Build.0 = Release|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|x86.ActiveCfg = Release|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Release|x86.Build.0 = Release|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|Any CPU.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|Any CPU.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|ARM.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|ARM.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|ARM64.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|ARM64.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|x64.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|x64.Build.0 = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|x86.ActiveCfg = Debug|Any CPU - {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|x86.Build.0 = Debug|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {52075F5B-6A74-493C-BA53-3AD720D643C2} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.2.32210.308 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibHISP", "LibHISP\LibHISP.csproj", "{C48CBD82-AB30-494A-8FFA-4DE7069B5827}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HISPCli", "HISPCli\HISPCli.csproj", "{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "N00BS", "N00BS\N00BS.csproj", "{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Installer", "Installer\Installer.vdproj", "{D330A197-67D4-42B0-8906-54264AF95EC1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Android|Any CPU = Android|Any CPU + Android|ARM = Android|ARM + Android|ARM64 = Android|ARM64 + Android|x64 = Android|x64 + Android|x86 = Android|x86 + 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}.Android|Any CPU.ActiveCfg = Linux|Any CPU + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|Any CPU.Build.0 = Linux|Any CPU + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|ARM.ActiveCfg = Android|ARM + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|ARM.Build.0 = Android|ARM + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|ARM64.ActiveCfg = Android|ARM64 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|ARM64.Build.0 = Android|ARM64 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|x64.ActiveCfg = Android|x64 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|x64.Build.0 = Android|x64 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|x86.ActiveCfg = Android|x86 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|x86.Build.0 = Android|x86 + {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 + {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}.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 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM64.Build.0 = Linux|ARM64 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x64.ActiveCfg = Linux|x64 + {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|x64 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|Any CPU.Build.0 = Windows|x64 + {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 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x86.Build.0 = Windows|x86 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|Any CPU.ActiveCfg = Debug|Any CPU + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|Any CPU.Build.0 = Debug|Any CPU + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|ARM.ActiveCfg = Android|ARM + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|ARM.Build.0 = Android|ARM + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|ARM64.ActiveCfg = Android|ARM64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|ARM64.Build.0 = Android|ARM64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|x64.ActiveCfg = Android|x64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|x64.Build.0 = Android|x64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|x86.ActiveCfg = Android|x86 + {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}.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 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM.Build.0 = Linux|ARM + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM64.ActiveCfg = Linux|ARM64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM64.Build.0 = Linux|ARM64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x64.ActiveCfg = Linux|x64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x64.Build.0 = Linux|x64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x86.ActiveCfg = Linux|x86 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x86.Build.0 = Linux|x86 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|Any CPU.ActiveCfg = MacOS|Any CPU + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|Any CPU.Build.0 = MacOS|Any CPU + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM.ActiveCfg = MacOS|ARM + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM.Build.0 = MacOS|ARM + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM64.ActiveCfg = MacOS|ARM64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM64.Build.0 = MacOS|ARM64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x64.ActiveCfg = MacOS|x64 + {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}.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 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM.Build.0 = Windows|Any CPU + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM64.ActiveCfg = Windows|ARM64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM64.Build.0 = Windows|ARM64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x64.ActiveCfg = Windows|x64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x64.Build.0 = Windows|x64 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x86.ActiveCfg = Windows|x86 + {DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x86.Build.0 = Windows|x86 + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Android|Any CPU.ActiveCfg = Debug|Any CPU + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Android|Any CPU.Build.0 = Debug|Any CPU + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Android|ARM.ActiveCfg = Debug|Any CPU + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Android|ARM64.ActiveCfg = Debug|Any CPU + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Android|x64.ActiveCfg = Windows|x64 + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Android|x86.ActiveCfg = Debug|Any CPU + {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}.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 + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|ARM64.ActiveCfg = Debug|Any CPU + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|x64.ActiveCfg = Debug|Any CPU + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Linux|x86.ActiveCfg = Debug|Any CPU + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|Any CPU.ActiveCfg = Debug|Any CPU + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.MacOS|ARM.ActiveCfg = Debug|Any CPU + {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}.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 + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|ARM64.ActiveCfg = Windows|Any CPU + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|x64.ActiveCfg = Windows|x64 + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|x64.Build.0 = Windows|x64 + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|x86.ActiveCfg = Windows|x86 + {6B45A1E8-0F54-4BF7-AF48-41B9FE676570}.Windows|x86.Build.0 = Windows|x86 + {D330A197-67D4-42B0-8906-54264AF95EC1}.Android|Any CPU.ActiveCfg = Debug + {D330A197-67D4-42B0-8906-54264AF95EC1}.Android|ARM.ActiveCfg = Windows + {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|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}.Linux|Any CPU.ActiveCfg = Debug + {D330A197-67D4-42B0-8906-54264AF95EC1}.Linux|ARM.ActiveCfg = Debug + {D330A197-67D4-42B0-8906-54264AF95EC1}.Linux|ARM64.ActiveCfg = Debug + {D330A197-67D4-42B0-8906-54264AF95EC1}.Linux|x64.ActiveCfg = Debug + {D330A197-67D4-42B0-8906-54264AF95EC1}.Linux|x86.ActiveCfg = Debug + {D330A197-67D4-42B0-8906-54264AF95EC1}.MacOS|Any CPU.ActiveCfg = Debug + {D330A197-67D4-42B0-8906-54264AF95EC1}.MacOS|ARM.ActiveCfg = Debug + {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}.Windows|Any CPU.ActiveCfg = Debug + {D330A197-67D4-42B0-8906-54264AF95EC1}.Windows|ARM.ActiveCfg = Windows + {D330A197-67D4-42B0-8906-54264AF95EC1}.Windows|ARM64.ActiveCfg = Release + {D330A197-67D4-42B0-8906-54264AF95EC1}.Windows|x64.ActiveCfg = Windows + {D330A197-67D4-42B0-8906-54264AF95EC1}.Windows|x64.Build.0 = Windows + {D330A197-67D4-42B0-8906-54264AF95EC1}.Windows|x86.ActiveCfg = Windows + {D330A197-67D4-42B0-8906-54264AF95EC1}.Windows|x86.Build.0 = Windows + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {52075F5B-6A74-493C-BA53-3AD720D643C2} + EndGlobalSection +EndGlobal diff --git a/HorseIsleServer/HISP/Program.cs b/HorseIsleServer/HISP/Program.cs deleted file mode 100644 index 868fcb9..0000000 --- a/HorseIsleServer/HISP/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using HISP.Server; -using System; - -namespace HISP -{ - public static class Program - { - public static bool ShuttingDown = false; - public static void OnShutdown() - { - ShuttingDown = true; - } - public static void Main(string[] args) - { - Logger.SetCallback(Console.WriteLine); - Entry.SetShutdownCallback(OnShutdown); - Entry.Start(); - - while (!ShuttingDown) { /* Allow asyncronous operations to happen. */ }; - } - } -} diff --git a/HorseIsleServer/HISP/HISP.csproj b/HorseIsleServer/HISPCli/HISPCli.csproj similarity index 97% rename from HorseIsleServer/HISP/HISP.csproj rename to HorseIsleServer/HISPCli/HISPCli.csproj index f8be9f5..f564645 100644 --- a/HorseIsleServer/HISP/HISP.csproj +++ b/HorseIsleServer/HISPCli/HISPCli.csproj @@ -4,7 +4,7 @@ HISP 10.0 x64;x86;ARM;ARM64;AnyCPU - Debug;Windows;Linux;MacOS + Debug;Windows;Linux;MacOS;Android @@ -56,7 +56,7 @@ win-arm true - ARM32 + ARM OS_WINDOWS;ARCH_ARM 3 1701;1702;2026 @@ -74,7 +74,7 @@ android-arm true - ARM32 + ARM OS_ANDROID;ARCH_ARM 3 1701;1702;2026 @@ -139,7 +139,7 @@ - ARM32 + ARM False DEBUG;TRACE;OS_DEBUG;ARCH_ARM 3 diff --git a/HorseIsleServer/HISPCli/Program.cs b/HorseIsleServer/HISPCli/Program.cs new file mode 100644 index 0000000..3b2f602 --- /dev/null +++ b/HorseIsleServer/HISPCli/Program.cs @@ -0,0 +1,43 @@ +using HISP.Server; +using System; +using System.IO; + +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) + { + File.AppendAllTextAsync(text, LogFile); + } + public static void LogStdout(string text) + { + Console.Out.WriteAsync(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. */ }; + + } + } +} diff --git a/HorseIsleServer/HISP/Properties/AssemblyInfo.cs b/HorseIsleServer/HISPCli/Properties/AssemblyInfo.cs similarity index 100% rename from HorseIsleServer/HISP/Properties/AssemblyInfo.cs rename to HorseIsleServer/HISPCli/Properties/AssemblyInfo.cs diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/AndroidARM.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/AndroidARM.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/AndroidARM.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/AndroidARM.pubxml diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/AndroidARM64.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/AndroidARM64.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/AndroidARM64.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/AndroidARM64.pubxml diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/Linux64.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/Linux64.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/Linux64.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/Linux64.pubxml diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/LinuxARM.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/LinuxARM.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/LinuxARM.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/LinuxARM.pubxml diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/LinuxARM64.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/LinuxARM64.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/LinuxARM64.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/LinuxARM64.pubxml diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/Osx64.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/Osx64.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/Osx64.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/Osx64.pubxml diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/OsxARM64.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/OsxARM64.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/OsxARM64.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/OsxARM64.pubxml diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/Win32.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/Win32.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/Win32.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/Win32.pubxml diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/Win64.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/Win64.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/Win64.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/Win64.pubxml diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/WinARM.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/WinARM.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/WinARM.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/WinARM.pubxml diff --git a/HorseIsleServer/HISP/Properties/PublishProfiles/WinARM64.pubxml b/HorseIsleServer/HISPCli/Properties/PublishProfiles/WinARM64.pubxml similarity index 100% rename from HorseIsleServer/HISP/Properties/PublishProfiles/WinARM64.pubxml rename to HorseIsleServer/HISPCli/Properties/PublishProfiles/WinARM64.pubxml diff --git a/HorseIsleServer/HISP/Properties/Resources.Designer.cs b/HorseIsleServer/HISPCli/Properties/Resources.Designer.cs similarity index 100% rename from HorseIsleServer/HISP/Properties/Resources.Designer.cs rename to HorseIsleServer/HISPCli/Properties/Resources.Designer.cs diff --git a/HorseIsleServer/HISP/Properties/Resources.resx b/HorseIsleServer/HISPCli/Properties/Resources.resx similarity index 100% rename from HorseIsleServer/HISP/Properties/Resources.resx rename to HorseIsleServer/HISPCli/Properties/Resources.resx diff --git a/HorseIsleServer/HISP/Properties/launchSettings.json b/HorseIsleServer/HISPCli/Properties/launchSettings.json similarity index 100% rename from HorseIsleServer/HISP/Properties/launchSettings.json rename to HorseIsleServer/HISPCli/Properties/launchSettings.json diff --git a/HorseIsleServer/HISP/icon.ico b/HorseIsleServer/HISPCli/icon.ico similarity index 100% rename from HorseIsleServer/HISP/icon.ico rename to HorseIsleServer/HISPCli/icon.ico diff --git a/HorseIsleServer/Installer/Installer.vdproj b/HorseIsleServer/Installer/Installer.vdproj new file mode 100644 index 0000000..3d8c519 --- /dev/null +++ b/HorseIsleServer/Installer/Installer.vdproj @@ -0,0 +1,956 @@ +"DeployProject" +{ +"VSVersion" = "3:800" +"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:Installer" +"LanguageId" = "3:1033" +"CodePage" = "3:1252" +"UILanguageId" = "3:1033" +"SccProjectName" = "8:" +"SccLocalPath" = "8:" +"SccAuxPath" = "8:" +"SccProvider" = "8:" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_0D21C5FF039F49C088EB634A33FC411B" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_1564B665DC1B4C84B3B06154ED218D5B" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_1A4693530D8B4CBBB2A5EC31D8340F0F" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_28A4D7E632204CABA7FE740BEFC91DEF" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_5677B9A3E24F4F6C967D0E86BC2E3E74" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_611F30D5162547E3BA321F145FD40AC5" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_98F70300FEAC42DE808CBC3BF0A4EDEE" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_9B65B8D30BEB46508FDC1142245936E3" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_A323663C87734476B43AED93BCEE5E78" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DBECA6BD50F344FFAF7D3BC0A6A35A2B" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Windows" + { + "DisplayName" = "8:Windows" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Windows\\HISP-N00BS-INSTALLER.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2" + { + "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)" + "ProductCode" = "8:.NETFramework,Version=v4.7.2" + } + } + } + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_5202EFE80DEE4723BF89431D6D801282" + { + "Name" = "8:.NET Core" + "Message" = "8:[VSDNETCOREMSG]" + "AllowLaterVersions" = "11:FALSE" + "InstallUrl" = "8:https://dotnet.microsoft.com/download/dotnet-core/[NetCoreVerMajorDotMinor]" + "IsNETCore" = "11:TRUE" + "Architecture" = "2:0" + "Runtime" = "2:0" + } + } + } + "File" + { + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0D21C5FF039F49C088EB634A33FC411B" + { + "SourcePath" = "8:..\\N00BS\\bin\\x64\\Windows\\net6.0\\win-x64\\publish\\flash.dll" + "TargetName" = "8:flash.dll" + "Tag" = "8:" + "Folder" = "8:_E3419B32123541589220537FB1154298" + "Condition" = "8:VersionNT64" + "Transitive" = "11:TRUE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1564B665DC1B4C84B3B06154ED218D5B" + { + "SourcePath" = "8:..\\N00BS\\bin\\x64\\Windows\\net6.0\\win-x64\\publish\\HISP-N00BS.exe" + "TargetName" = "8:HISP-N00BS.exe" + "Tag" = "8:" + "Folder" = "8:_E3419B32123541589220537FB1154298" + "Condition" = "8:VersionNT64" + "Transitive" = "11:TRUE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1A4693530D8B4CBBB2A5EC31D8340F0F" + { + "SourcePath" = "8:..\\N00BS\\bin\\x64\\Windows\\net6.0\\win-x64\\publish\\PresentationNative_cor3.dll" + "TargetName" = "8:PresentationNative_cor3.dll" + "Tag" = "8:" + "Folder" = "8:_E3419B32123541589220537FB1154298" + "Condition" = "8:VersionNT64" + "Transitive" = "11:TRUE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_28A4D7E632204CABA7FE740BEFC91DEF" + { + "SourcePath" = "8:..\\N00BS\\bin\\x64\\Windows\\net6.0\\win-x64\\publish\\vcruntime140_cor3.dll" + "TargetName" = "8:vcruntime140_cor3.dll" + "Tag" = "8:" + "Folder" = "8:_E3419B32123541589220537FB1154298" + "Condition" = "8:VersionNT64" + "Transitive" = "11:TRUE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_5677B9A3E24F4F6C967D0E86BC2E3E74" + { + "SourcePath" = "8:..\\N00BS\\bin\\x64\\Windows\\net6.0\\win-x64\\publish\\PenImc_cor3.dll" + "TargetName" = "8:PenImc_cor3.dll" + "Tag" = "8:" + "Folder" = "8:_E3419B32123541589220537FB1154298" + "Condition" = "8:VersionNT64" + "Transitive" = "11:TRUE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_611F30D5162547E3BA321F145FD40AC5" + { + "SourcePath" = "8:..\\N00BS\\icon.ico" + "TargetName" = "8:icon.ico" + "Tag" = "8:" + "Folder" = "8:_E3419B32123541589220537FB1154298" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_98F70300FEAC42DE808CBC3BF0A4EDEE" + { + "SourcePath" = "8:..\\N00BS\\bin\\x64\\Windows\\net6.0\\win-x64\\publish\\e_sqlite3.dll" + "TargetName" = "8:e_sqlite3.dll" + "Tag" = "8:" + "Folder" = "8:_E3419B32123541589220537FB1154298" + "Condition" = "8:VersionNT64" + "Transitive" = "11:TRUE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9B65B8D30BEB46508FDC1142245936E3" + { + "SourcePath" = "8:..\\N00BS\\bin\\x64\\Windows\\net6.0\\win-x64\\publish\\wpfgfx_cor3.dll" + "TargetName" = "8:wpfgfx_cor3.dll" + "Tag" = "8:" + "Folder" = "8:_E3419B32123541589220537FB1154298" + "Condition" = "8:VersionNT64" + "Transitive" = "11:TRUE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A323663C87734476B43AED93BCEE5E78" + { + "SourcePath" = "8:..\\N00BS\\bin\\x64\\Windows\\net6.0\\win-x64\\publish\\D3DCompiler_47_cor3.dll" + "TargetName" = "8:D3DCompiler_47_cor3.dll" + "Tag" = "8:" + "Folder" = "8:_E3419B32123541589220537FB1154298" + "Condition" = "8:VersionNT64" + "Transitive" = "11:TRUE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + } + "FileType" + { + } + "Folder" + { + "{1525181F-901A-416C-8A58-119130FE478E}:_2BED5EC5191147F4815904695DFB5319" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + "{1525181F-901A-416C-8A58-119130FE478E}:_3B89F894B58B4F149DD0DBE5EC931BA2" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + "{3C67513D-01DD-4637-8A68-80971EB9504F}:_E3419B32123541589220537FB1154298" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:1033" + "RequiresElevation" = "11:FALSE" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:HISP-N00BS" + "ProductCode" = "8:{60BA2AF1-4913-4A37-9280-093E8E7DAADE}" + "PackageCode" = "8:{88A7C3C4-CB07-4D31-ADA6-1FA3B9FFAB19}" + "UpgradeCode" = "8:{FAD2FB5F-7B7C-4293-BF2D-09384146449E}" + "AspNetVersion" = "8:2.0.50727.0" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:TRUE" + "DetectNewerInstalledVersion" = "11:FALSE" + "InstallAllUsers" = "11:TRUE" + "ProductVersion" = "8:1.3.0" + "Manufacturer" = "8:IsleHorse" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:HISP N00BS INSTALLER" + "Subject" = "8:" + "ARPCONTACT" = "8:SilicaAndPina" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:Horse Isle Server Emulator (N00BS Package)" + "ARPURLINFOABOUT" = "8:islehorse.com" + "ARPPRODUCTICON" = "8:_611F30D5162547E3BA321F145FD40AC5" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + "TargetPlatform" = "3:0" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_64C38CA6346B449692BF6B4AA592D702" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_AC38AB208C084DF4BA565F75F0BE4432" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_A730B92ABA6442DA8A8DE8F8B12B006C" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_1DE78BC22BE74532BD96E9D0C76B8456" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_0EE8B0868FFB48F9A5AF0E106F29270F" + { + "Name" = "8:HISP-N00BS" + "Arguments" = "8:" + "Description" = "8:" + "ShowCmd" = "3:1" + "IconIndex" = "3:0" + "Transitive" = "11:FALSE" + "Target" = "8:_DBECA6BD50F344FFAF7D3BC0A6A35A2B" + "Folder" = "8:_2BED5EC5191147F4815904695DFB5319" + "WorkingFolder" = "8:_E3419B32123541589220537FB1154298" + "Icon" = "8:_611F30D5162547E3BA321F145FD40AC5" + "Feature" = "8:" + } + "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_8C2FF2BBC6C5459CB7C3C3D7563A6B24" + { + "Name" = "8:HISP-N00BS" + "Arguments" = "8:" + "Description" = "8:" + "ShowCmd" = "3:1" + "IconIndex" = "3:0" + "Transitive" = "11:FALSE" + "Target" = "8:_DBECA6BD50F344FFAF7D3BC0A6A35A2B" + "Folder" = "8:_3B89F894B58B4F149DD0DBE5EC931BA2" + "WorkingFolder" = "8:_E3419B32123541589220537FB1154298" + "Icon" = "8:_611F30D5162547E3BA321F145FD40AC5" + "Feature" = "8:" + } + } + "UserInterface" + { + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_07CE736F4DA7413AAEC990B2E3F8E5E6" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_090F0EE34745459F9686C050B2C11242" + { + "Sequence" = "3:200" + "DisplayName" = "8:Installation Folder" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_3DAE3EEA3A0D49A2BF44023DFA46DD1F" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirm Installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7E134743D03E4D2BAB1A4EFBBCFFB85A" + { + "Sequence" = "3:100" + "DisplayName" = "8:Welcome" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_1005C5ECDBA6463C8F26D022ADF2B15B" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_1B5CC2AD42AB4B8A871994A5BDA4AF2E" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_13902A19FA564BEB9B78FA7710553B5D" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progress" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_2D7F530E4D9144F7A17E26C070A09A38" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_669ADC1422094131A197F6A6C9DBFF21" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progress" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_34E02BE2018C46BBBBBFAD4ED87A477C" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_6CBD4A41E51D4CA3B91CA1BDB8AC6624" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_01032F7BADD4495B95310569E9419B49" + { + "Sequence" = "3:100" + "DisplayName" = "8:Finished" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A4FECCFE0E0A48748DB3E442DAEC4BDD" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4DACC92277D2418AA749B1DED80D4118" + { + "Sequence" = "3:100" + "DisplayName" = "8:Finished" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_EEB71AB6095340A5925C86FF3F54F56B" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_812C2FA3E5F945D2B42F27AE98132D86" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirm Installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_82627D6985A9465F9963EA555AE205F1" + { + "Sequence" = "3:100" + "DisplayName" = "8:Welcome" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FF55283F2CDE4642916803852163C654" + { + "Sequence" = "3:200" + "DisplayName" = "8:Installation Folder" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "InstallAllUsersVisible" + { + "Name" = "8:InstallAllUsersVisible" + "DisplayName" = "8:#1059" + "Description" = "8:#1159" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + "MergeModule" + { + } + "ProjectOutput" + { + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_DBECA6BD50F344FFAF7D3BC0A6A35A2B" + { + "SourcePath" = "8:..\\N00BS\\bin\\x64\\Windows\\net6.0\\win-x64\\publish\\HISP-N00BS.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_E3419B32123541589220537FB1154298" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:PublishItems" + "OutputProjectGuid" = "8:{6B45A1E8-0F54-4BF7-AF48-41B9FE676570}" + "ShowKeyOutput" = "11:TRUE" + "PublishProfilePath" = "8:Properties\\PublishProfiles\\Win64.pubxml" + "ExcludeFilters" + { + } + } + } + } +} diff --git a/HorseIsleServer/LibHISP/LibHISP.csproj b/HorseIsleServer/LibHISP/LibHISP.csproj index bf58b09..177893d 100644 --- a/HorseIsleServer/LibHISP/LibHISP.csproj +++ b/HorseIsleServer/LibHISP/LibHISP.csproj @@ -73,7 +73,7 @@ win-arm true - ARM32 + ARM OS_WINDOWS;ARCH_ARM 3 1701;1702;2026 @@ -90,7 +90,7 @@ android-arm true - ARM32 + ARM OS_ANDROID;ARCH_ARM 3 1701;1702;2026 @@ -156,7 +156,7 @@ - ARM32 + ARM False DEBUG;TRACE;OS_DEBUG;ARCH_ARM 3 diff --git a/HorseIsleServer/LibHISP/Server/Database.cs b/HorseIsleServer/LibHISP/Server/Database.cs index 3cbdd8a..f9c0edb 100644 --- a/HorseIsleServer/LibHISP/Server/Database.cs +++ b/HorseIsleServer/LibHISP/Server/Database.cs @@ -48,10 +48,10 @@ namespace HISP.Server public static void OpenDatabase() { - if (!ConfigReader.SqlLite) - ConnectionString = "server=" + ConfigReader.DatabaseIP + ";user=" + ConfigReader.DatabaseUsername + ";password=" + ConfigReader.DatabasePassword + ";database=" + ConfigReader.DatabaseName; - else - ConnectionString = "Data Source=./" + ConfigReader.DatabaseName + ".db;"; + if (!ConfigReader.SqlLite) + ConnectionString = "server=" + ConfigReader.DatabaseIP + ";user=" + ConfigReader.DatabaseUsername + ";password=" + ConfigReader.DatabasePassword + ";database=" + ConfigReader.DatabaseName; + else + ConnectionString = "Data Source=\"" + ConfigReader.DatabaseName + ".db\";"; Logger.InfoPrint(ConnectionString); @@ -6146,6 +6146,26 @@ namespace HISP.Server } } } + public static void SetPasswordHash(string username, string passhash) + { + using (DbConnection db = connectDb()) + { + db.Open(); + if (CheckUserExist(username)) + { + DbCommand sqlCommand = db.CreateCommand(); + sqlCommand.CommandText = "UPDATE Users SET PassHash=@hash WHERE Username=@name"; + addWithValue(sqlCommand, "@hash", passhash); + addWithValue(sqlCommand, "@name", username); + sqlCommand.Prepare(); + sqlCommand.ExecuteNonQuery(); + } + else + { + throw new KeyNotFoundException("Username " + username + " not found in database."); + } + } + } public static byte[] GetPasswordHash(string username) { using (DbConnection db = connectDb()) diff --git a/HorseIsleServer/N00BS/HTTP/ContentServer.cs b/HorseIsleServer/N00BS/HTTP/ContentServer.cs index cd8a49a..3c8dd05 100644 --- a/HorseIsleServer/N00BS/HTTP/ContentServer.cs +++ b/HorseIsleServer/N00BS/HTTP/ContentServer.cs @@ -281,7 +281,7 @@ namespace HTTP { WriteDebugOutput("Listening for connections on port 80."); - IPEndPoint ep = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 80); + IPEndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 80); ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); ServerSocket.Bind(ep); ServerSocket.Listen(0x7fffffff); diff --git a/HorseIsleServer/N00BS/HISP-N00BS.csproj b/HorseIsleServer/N00BS/N00BS.csproj similarity index 98% rename from HorseIsleServer/N00BS/HISP-N00BS.csproj rename to HorseIsleServer/N00BS/N00BS.csproj index 6cd8965..5d769da 100644 --- a/HorseIsleServer/N00BS/HISP-N00BS.csproj +++ b/HorseIsleServer/N00BS/N00BS.csproj @@ -17,6 +17,9 @@ True Resources.resx + + Form + diff --git a/HorseIsleServer/N00BS/HISP-N00BS.csproj.user b/HorseIsleServer/N00BS/N00BS.csproj.user similarity index 100% rename from HorseIsleServer/N00BS/HISP-N00BS.csproj.user rename to HorseIsleServer/N00BS/N00BS.csproj.user diff --git a/HorseIsleServer/N00BS/Program.cs b/HorseIsleServer/N00BS/Program.cs index 52cf4a7..2aa2374 100644 --- a/HorseIsleServer/N00BS/Program.cs +++ b/HorseIsleServer/N00BS/Program.cs @@ -12,7 +12,6 @@ using HTTP; using System; using System.Diagnostics; using System.IO; -using System.Reflection; using System.Threading.Tasks; using System.Windows.Forms; @@ -21,11 +20,11 @@ namespace HISP public static class Program { private static LoadingForm lfrm; - private static string baseDir; + public static string BaseDir; private static ContentServer cs; private static void addToList(string path) { - string Name = path.Remove(0, Path.Combine(baseDir, "client").Length); + string Name = path.Remove(0, Path.Combine(Directory.GetCurrentDirectory(), "client").Length); Name = Name.Replace("\\", "/"); ContentItem ci = new ContentItem(Name, path); @@ -64,19 +63,22 @@ namespace HISP public static void Main(string[] args) { - baseDir = Directory.GetCurrentDirectory(); - + BaseDir = Path.Combine(Environment.GetEnvironmentVariable("APPDATA"), "HISP", "N00BS"); + Directory.CreateDirectory(BaseDir); + lfrm = new LoadingForm(); Task startForm = new Task(StartLRFrm); startForm.Start(); + ConfigReader.ConfigurationFileName = Path.Combine(BaseDir, "server.properties"); ConfigReader.OpenConfig(); ConfigReader.SqlLite = true; ConfigReader.LogLevel = 0; + ConfigReader.BindIP = "127.0.0.1"; + ConfigReader.CrossDomainPolicyFile = Path.Combine(BaseDir, "CrossDomainPolicy.xml"); + ConfigReader.DatabaseName = Path.Combine(BaseDir, "game1.db"); IncrementProgress(); - - Database.OpenDatabase(); IncrementProgress(); @@ -91,7 +93,7 @@ namespace HISP // Start Web Server try{ cs = new ContentServer(); - string[] fileList = Directory.GetFiles(Path.Combine(baseDir, "client"), "*", SearchOption.AllDirectories); + string[] fileList = Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(),"client"), "*", SearchOption.AllDirectories); foreach (string file in fileList) addToList(file); }catch(Exception e){ diff --git a/HorseIsleServer/N00BS/RegisterForm.Designer.cs b/HorseIsleServer/N00BS/RegisterForm.Designer.cs index 1ffd80a..a59cdfe 100644 --- a/HorseIsleServer/N00BS/RegisterForm.Designer.cs +++ b/HorseIsleServer/N00BS/RegisterForm.Designer.cs @@ -1,233 +1,233 @@ -namespace HISP -{ - partial class RegisterForm - { - /// - /// 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(RegisterForm)); - this.isAdmin = new System.Windows.Forms.CheckBox(); - this.isMod = new System.Windows.Forms.CheckBox(); - this.label1 = new System.Windows.Forms.Label(); - this.Username = new System.Windows.Forms.TextBox(); - this.Password = new System.Windows.Forms.TextBox(); - this.BoySelecton = new System.Windows.Forms.RadioButton(); - this.GirlSelection = new System.Windows.Forms.RadioButton(); - this.label2 = new System.Windows.Forms.Label(); - this.CreateAccount = new System.Windows.Forms.Button(); - this.label3 = new System.Windows.Forms.Label(); - this.UsernameValidationFailReason = new System.Windows.Forms.Label(); - this.PasswordValidationFailReason = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // isAdmin - // - this.isAdmin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.isAdmin.AutoSize = true; - this.isAdmin.Checked = true; - this.isAdmin.CheckState = System.Windows.Forms.CheckState.Checked; - this.isAdmin.Location = new System.Drawing.Point(238, 169); - this.isAdmin.Name = "isAdmin"; - this.isAdmin.Size = new System.Drawing.Size(99, 19); - this.isAdmin.TabIndex = 6; - this.isAdmin.Text = "Administrator"; - this.isAdmin.UseVisualStyleBackColor = true; - this.isAdmin.CheckedChanged += new System.EventHandler(this.isAdmin_CheckedChanged); - // - // isMod - // - this.isMod.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.isMod.AutoSize = true; - this.isMod.Checked = true; - this.isMod.CheckState = System.Windows.Forms.CheckState.Checked; - this.isMod.Location = new System.Drawing.Point(238, 145); - this.isMod.Name = "isMod"; - this.isMod.Size = new System.Drawing.Size(82, 19); - this.isMod.TabIndex = 5; - this.isMod.Text = "Moderator"; - this.isMod.UseVisualStyleBackColor = true; - this.isMod.CheckedChanged += new System.EventHandler(this.isMod_CheckedChanged); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(71, 15); - this.label1.TabIndex = 3; - this.label1.Text = "User Details:"; - // - // Username - // - 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; - this.Username.Name = "Username"; - this.Username.PlaceholderText = "Username"; - this.Username.Size = new System.Drawing.Size(325, 23); - this.Username.TabIndex = 1; - this.Username.TextChanged += new System.EventHandler(this.Username_TextChanged); - this.Username.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Username_KeyPress); - // - // Password - // - 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; - this.Password.Name = "Password"; - this.Password.PasswordChar = '*'; - this.Password.PlaceholderText = "Password"; - this.Password.Size = new System.Drawing.Size(325, 23); - this.Password.TabIndex = 2; - this.Password.TextChanged += new System.EventHandler(this.Password_TextChanged); - this.Password.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Password_KeyPress); - // - // BoySelecton - // - this.BoySelecton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.BoySelecton.AutoSize = true; - this.BoySelecton.Location = new System.Drawing.Point(17, 168); - this.BoySelecton.Name = "BoySelecton"; - this.BoySelecton.Size = new System.Drawing.Size(45, 19); - this.BoySelecton.TabIndex = 4; - this.BoySelecton.TabStop = true; - this.BoySelecton.Text = "Boy"; - this.BoySelecton.UseVisualStyleBackColor = true; - // - // GirlSelection - // - this.GirlSelection.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.GirlSelection.AutoSize = true; - this.GirlSelection.Checked = true; - this.GirlSelection.Location = new System.Drawing.Point(17, 144); - this.GirlSelection.Name = "GirlSelection"; - this.GirlSelection.Size = new System.Drawing.Size(43, 19); - this.GirlSelection.TabIndex = 3; - this.GirlSelection.TabStop = true; - this.GirlSelection.Text = "Girl"; - this.GirlSelection.UseVisualStyleBackColor = true; - // - // label2 - // - this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 121); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(48, 15); - this.label2.TabIndex = 9; - this.label2.Text = "Gender:"; - // - // CreateAccount - // - this.CreateAccount.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.CreateAccount.Enabled = false; - this.CreateAccount.Location = new System.Drawing.Point(12, 201); - this.CreateAccount.Name = "CreateAccount"; - this.CreateAccount.Size = new System.Drawing.Size(325, 29); - this.CreateAccount.TabIndex = 7; - this.CreateAccount.Text = "Create Account"; - this.CreateAccount.UseVisualStyleBackColor = true; - this.CreateAccount.Click += new System.EventHandler(this.CreateAccount_Click); - // - // label3 - // - this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(238, 121); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(64, 15); - this.label3.TabIndex = 11; - this.label3.Text = "Privledges:"; - // - // UsernameValidationFailReason - // - this.UsernameValidationFailReason.AutoSize = true; - this.UsernameValidationFailReason.ForeColor = System.Drawing.Color.Red; - this.UsernameValidationFailReason.Location = new System.Drawing.Point(12, 82); - this.UsernameValidationFailReason.Name = "UsernameValidationFailReason"; - this.UsernameValidationFailReason.Size = new System.Drawing.Size(241, 15); - this.UsernameValidationFailReason.TabIndex = 12; - this.UsernameValidationFailReason.Text = "- Username must be more than 3 characters."; - // - // PasswordValidationFailReason - // - this.PasswordValidationFailReason.AutoSize = true; - this.PasswordValidationFailReason.ForeColor = System.Drawing.Color.Red; - this.PasswordValidationFailReason.Location = new System.Drawing.Point(12, 97); - this.PasswordValidationFailReason.Name = "PasswordValidationFailReason"; - this.PasswordValidationFailReason.Size = new System.Drawing.Size(238, 15); - this.PasswordValidationFailReason.TabIndex = 13; - this.PasswordValidationFailReason.Text = "- Password must be more than 6 characters."; - // - // RegisterForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(349, 241); - this.Controls.Add(this.PasswordValidationFailReason); - this.Controls.Add(this.UsernameValidationFailReason); - this.Controls.Add(this.label3); - this.Controls.Add(this.CreateAccount); - this.Controls.Add(this.label2); - this.Controls.Add(this.GirlSelection); - this.Controls.Add(this.BoySelecton); - this.Controls.Add(this.Password); - this.Controls.Add(this.Username); - this.Controls.Add(this.label1); - this.Controls.Add(this.isMod); - this.Controls.Add(this.isAdmin); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(365, 280); - this.Name = "RegisterForm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.WindowsDefaultLocation; - this.Text = "Create Account"; - this.Load += new System.EventHandler(this.RegisterForm_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.CheckBox isAdmin; - private System.Windows.Forms.CheckBox isMod; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox Username; - private System.Windows.Forms.TextBox Password; - private System.Windows.Forms.RadioButton BoySelecton; - private System.Windows.Forms.RadioButton GirlSelection; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button CreateAccount; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label UsernameValidationFailReason; - private System.Windows.Forms.Label PasswordValidationFailReason; - } +namespace HISP +{ + partial class RegisterForm + { + /// + /// 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(RegisterForm)); + this.isAdmin = new System.Windows.Forms.CheckBox(); + this.isMod = new System.Windows.Forms.CheckBox(); + this.label1 = new System.Windows.Forms.Label(); + this.Username = new System.Windows.Forms.TextBox(); + this.Password = new System.Windows.Forms.TextBox(); + this.BoySelecton = new System.Windows.Forms.RadioButton(); + this.GirlSelection = new System.Windows.Forms.RadioButton(); + this.label2 = new System.Windows.Forms.Label(); + this.CreateAccount = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.UsernameValidationFailReason = new System.Windows.Forms.Label(); + this.PasswordValidationFailReason = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // isAdmin + // + this.isAdmin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.isAdmin.AutoSize = true; + this.isAdmin.Checked = true; + this.isAdmin.CheckState = System.Windows.Forms.CheckState.Checked; + this.isAdmin.Location = new System.Drawing.Point(238, 169); + this.isAdmin.Name = "isAdmin"; + this.isAdmin.Size = new System.Drawing.Size(99, 19); + this.isAdmin.TabIndex = 6; + this.isAdmin.Text = "Administrator"; + this.isAdmin.UseVisualStyleBackColor = true; + this.isAdmin.CheckedChanged += new System.EventHandler(this.isAdmin_CheckedChanged); + // + // isMod + // + this.isMod.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.isMod.AutoSize = true; + this.isMod.Checked = true; + this.isMod.CheckState = System.Windows.Forms.CheckState.Checked; + this.isMod.Location = new System.Drawing.Point(238, 145); + this.isMod.Name = "isMod"; + this.isMod.Size = new System.Drawing.Size(82, 19); + this.isMod.TabIndex = 5; + this.isMod.Text = "Moderator"; + this.isMod.UseVisualStyleBackColor = true; + this.isMod.CheckedChanged += new System.EventHandler(this.isMod_CheckedChanged); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(71, 15); + this.label1.TabIndex = 3; + this.label1.Text = "User Details:"; + // + // Username + // + 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; + this.Username.Name = "Username"; + this.Username.PlaceholderText = "Username"; + this.Username.Size = new System.Drawing.Size(325, 23); + this.Username.TabIndex = 1; + this.Username.TextChanged += new System.EventHandler(this.Username_TextChanged); + this.Username.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Username_KeyPress); + // + // Password + // + 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; + this.Password.Name = "Password"; + this.Password.PasswordChar = '*'; + this.Password.PlaceholderText = "Password"; + this.Password.Size = new System.Drawing.Size(325, 23); + this.Password.TabIndex = 2; + this.Password.TextChanged += new System.EventHandler(this.Password_TextChanged); + this.Password.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Password_KeyPress); + // + // BoySelecton + // + this.BoySelecton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.BoySelecton.AutoSize = true; + this.BoySelecton.Location = new System.Drawing.Point(17, 168); + this.BoySelecton.Name = "BoySelecton"; + this.BoySelecton.Size = new System.Drawing.Size(45, 19); + this.BoySelecton.TabIndex = 4; + this.BoySelecton.TabStop = true; + this.BoySelecton.Text = "Boy"; + this.BoySelecton.UseVisualStyleBackColor = true; + // + // GirlSelection + // + this.GirlSelection.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.GirlSelection.AutoSize = true; + this.GirlSelection.Checked = true; + this.GirlSelection.Location = new System.Drawing.Point(17, 144); + this.GirlSelection.Name = "GirlSelection"; + this.GirlSelection.Size = new System.Drawing.Size(43, 19); + this.GirlSelection.TabIndex = 3; + this.GirlSelection.TabStop = true; + this.GirlSelection.Text = "Girl"; + this.GirlSelection.UseVisualStyleBackColor = true; + // + // label2 + // + this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 121); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(48, 15); + this.label2.TabIndex = 9; + this.label2.Text = "Gender:"; + // + // CreateAccount + // + this.CreateAccount.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CreateAccount.Enabled = false; + this.CreateAccount.Location = new System.Drawing.Point(12, 201); + this.CreateAccount.Name = "CreateAccount"; + this.CreateAccount.Size = new System.Drawing.Size(325, 29); + this.CreateAccount.TabIndex = 7; + this.CreateAccount.Text = "Create Account"; + this.CreateAccount.UseVisualStyleBackColor = true; + this.CreateAccount.Click += new System.EventHandler(this.CreateAccount_Click); + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(238, 121); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(64, 15); + this.label3.TabIndex = 11; + this.label3.Text = "Privledges:"; + // + // UsernameValidationFailReason + // + this.UsernameValidationFailReason.AutoSize = true; + this.UsernameValidationFailReason.ForeColor = System.Drawing.Color.Red; + this.UsernameValidationFailReason.Location = new System.Drawing.Point(12, 82); + this.UsernameValidationFailReason.Name = "UsernameValidationFailReason"; + this.UsernameValidationFailReason.Size = new System.Drawing.Size(241, 15); + this.UsernameValidationFailReason.TabIndex = 12; + this.UsernameValidationFailReason.Text = "- Username must be more than 3 characters."; + // + // PasswordValidationFailReason + // + this.PasswordValidationFailReason.AutoSize = true; + this.PasswordValidationFailReason.ForeColor = System.Drawing.Color.Red; + this.PasswordValidationFailReason.Location = new System.Drawing.Point(12, 97); + this.PasswordValidationFailReason.Name = "PasswordValidationFailReason"; + this.PasswordValidationFailReason.Size = new System.Drawing.Size(238, 15); + this.PasswordValidationFailReason.TabIndex = 13; + this.PasswordValidationFailReason.Text = "- Password must be more than 6 characters."; + // + // RegisterForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(349, 241); + this.Controls.Add(this.PasswordValidationFailReason); + this.Controls.Add(this.UsernameValidationFailReason); + this.Controls.Add(this.label3); + this.Controls.Add(this.CreateAccount); + this.Controls.Add(this.label2); + this.Controls.Add(this.GirlSelection); + this.Controls.Add(this.BoySelecton); + this.Controls.Add(this.Password); + this.Controls.Add(this.Username); + this.Controls.Add(this.label1); + this.Controls.Add(this.isMod); + this.Controls.Add(this.isAdmin); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(365, 280); + this.Name = "RegisterForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.WindowsDefaultLocation; + this.Text = "Create Account"; + this.Load += new System.EventHandler(this.RegisterForm_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.CheckBox isAdmin; + private System.Windows.Forms.CheckBox isMod; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox Username; + private System.Windows.Forms.TextBox Password; + private System.Windows.Forms.RadioButton BoySelecton; + private System.Windows.Forms.RadioButton GirlSelection; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button CreateAccount; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label UsernameValidationFailReason; + private System.Windows.Forms.Label PasswordValidationFailReason; + } } \ No newline at end of file diff --git a/HorseIsleServer/N00BS/RegisterForm.resx b/HorseIsleServer/N00BS/RegisterForm.resx index efd70f7..2fb02c8 100644 --- a/HorseIsleServer/N00BS/RegisterForm.resx +++ b/HorseIsleServer/N00BS/RegisterForm.resx @@ -1,126 +1,126 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - - - 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 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + 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 + + \ No newline at end of file diff --git a/HorseIsleServer/N00BS/ResetForm.Designer.cs b/HorseIsleServer/N00BS/ResetForm.Designer.cs new file mode 100644 index 0000000..bb64dca --- /dev/null +++ b/HorseIsleServer/N00BS/ResetForm.Designer.cs @@ -0,0 +1,140 @@ +namespace HISP +{ + partial class ResetForm + { + /// + /// 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(ResetForm)); + this.label1 = new System.Windows.Forms.Label(); + this.Username = new System.Windows.Forms.TextBox(); + this.Password = new System.Windows.Forms.TextBox(); + this.ResetPassword = new System.Windows.Forms.Button(); + this.UsernameValidationFailReason = new System.Windows.Forms.Label(); + this.PasswordValidationFailReason = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(71, 15); + this.label1.TabIndex = 3; + this.label1.Text = "User Details:"; + // + // Username + // + 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; + this.Username.Name = "Username"; + this.Username.PlaceholderText = "Username"; + this.Username.Size = new System.Drawing.Size(325, 23); + this.Username.TabIndex = 1; + this.Username.TextChanged += new System.EventHandler(this.Username_TextChanged); + this.Username.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Username_KeyPress); + // + // Password + // + 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; + this.Password.Name = "Password"; + this.Password.PasswordChar = '*'; + this.Password.PlaceholderText = "New Password"; + this.Password.Size = new System.Drawing.Size(325, 23); + this.Password.TabIndex = 2; + this.Password.TextChanged += new System.EventHandler(this.Password_TextChanged); + this.Password.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Password_KeyPress); + // + // ResetPassword + // + 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); + this.ResetPassword.Name = "ResetPassword"; + this.ResetPassword.Size = new System.Drawing.Size(325, 29); + this.ResetPassword.TabIndex = 7; + this.ResetPassword.Text = "Reset Password"; + this.ResetPassword.UseVisualStyleBackColor = true; + this.ResetPassword.Click += new System.EventHandler(this.ResetPassword_Click); + // + // UsernameValidationFailReason + // + this.UsernameValidationFailReason.AutoSize = true; + this.UsernameValidationFailReason.ForeColor = System.Drawing.Color.Red; + this.UsernameValidationFailReason.Location = new System.Drawing.Point(12, 82); + this.UsernameValidationFailReason.Name = "UsernameValidationFailReason"; + this.UsernameValidationFailReason.Size = new System.Drawing.Size(127, 15); + this.UsernameValidationFailReason.TabIndex = 12; + this.UsernameValidationFailReason.Text = "- Username not found."; + // + // PasswordValidationFailReason + // + this.PasswordValidationFailReason.AutoSize = true; + this.PasswordValidationFailReason.ForeColor = System.Drawing.Color.Red; + this.PasswordValidationFailReason.Location = new System.Drawing.Point(12, 97); + this.PasswordValidationFailReason.Name = "PasswordValidationFailReason"; + this.PasswordValidationFailReason.Size = new System.Drawing.Size(238, 15); + this.PasswordValidationFailReason.TabIndex = 13; + this.PasswordValidationFailReason.Text = "- Password must be more than 6 characters."; + // + // ResetForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(349, 158); + this.Controls.Add(this.PasswordValidationFailReason); + this.Controls.Add(this.UsernameValidationFailReason); + this.Controls.Add(this.ResetPassword); + this.Controls.Add(this.Password); + this.Controls.Add(this.Username); + this.Controls.Add(this.label1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(365, 197); + this.Name = "ResetForm"; + this.Text = "Reset Password"; + this.Load += new System.EventHandler(this.RegisterForm_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox Username; + private System.Windows.Forms.TextBox Password; + private System.Windows.Forms.Button ResetPassword; + private System.Windows.Forms.Label UsernameValidationFailReason; + private System.Windows.Forms.Label PasswordValidationFailReason; + } +} \ No newline at end of file diff --git a/HorseIsleServer/N00BS/ResetForm.cs b/HorseIsleServer/N00BS/ResetForm.cs new file mode 100644 index 0000000..1129f29 --- /dev/null +++ b/HorseIsleServer/N00BS/ResetForm.cs @@ -0,0 +1,144 @@ +using System; +using System.Text.RegularExpressions; +using System.Windows.Forms; +using HISP.Security; +using HISP.Server; + +namespace HISP +{ + public partial class ResetForm : Form + { + public ResetForm() + { + InitializeComponent(); + } + + private void RegisterForm_Load(object sender, EventArgs e) + { + ValidateInput(); + } + + private void ValidateInput() + { + if(ValidateUsername() && ValidatePassword()) + ResetPassword.Enabled = true; + else + ResetPassword.Enabled = false; + } + + private bool ValidatePassword() + { + int selStart = Password.SelectionStart; + int selLen = Password.SelectionLength; + Password.Text = Regex.Replace(Password.Text, "[^A-Za-z0-9]", ""); + Password.SelectionStart = selStart; + Password.SelectionLength = selLen; + + if (Password.Text.Length < 6) + { + PasswordValidationFailReason.Text = "- Password must be more than 6 characters."; + return false; + } + + if (Password.Text.Length >= 16) + { + PasswordValidationFailReason.Text = "- Password must be less than 16 characters."; + return false; + } + + PasswordValidationFailReason.Text = ""; + return true; + } + + private bool ValidateUsername() + { + int selStart = Username.SelectionStart; + int selLen = Username.SelectionLength; + Username.Text = Regex.Replace(Username.Text, "[^A-Za-z]", ""); + Username.SelectionStart = selStart; + Username.SelectionLength = selLen; + + if (Username.Text.Length < 3) + { + UsernameValidationFailReason.Text = "- Username must be more than 3 characters."; + return false; + } + + if (Username.Text.Length >= 16) + { + UsernameValidationFailReason.Text = "- Username must be less than 16 characters."; + return false; + } + + if (Regex.IsMatch(Username.Text, "[A-Z]{2,}")) + { + UsernameValidationFailReason.Text = "- Username have the first letter of each word capitalized."; + return false; + } + + if (Username.Text.ToUpper()[0] != Username.Text[0]) + { + UsernameValidationFailReason.Text = "- Username have the first letter of each word capitalized."; + return false; + } + + if (!Database.CheckUserExist(Username.Text)) + { + UsernameValidationFailReason.Text = "- Username not found."; + return false; + } + + UsernameValidationFailReason.Text = ""; + return true; + } + + private void Username_TextChanged(object sender, EventArgs e) + { + ValidateInput(); + } + + private void Password_TextChanged(object sender, EventArgs e) + { + ValidateInput(); + } + + private void ResetPassword_Click(object sender, EventArgs e) + { + // Get salt + byte[] salt = Database.GetPasswordSalt(Username.Text); + + // Hash password + string hashsalt = BitConverter.ToString(Authentication.HashAndSalt(Password.Text, salt)).Replace("-", ""); + + Database.SetPasswordHash(Username.Text, hashsalt); + this.DialogResult = DialogResult.OK; + } + private void Password_KeyPress(object sender, KeyPressEventArgs e) + { + if(e.KeyChar == (char)Keys.Return) + { + if (ResetPassword.Enabled) + { + e.Handled = true; + ResetPassword_Click(null, null); + } + + } + + } + + private void Username_KeyPress(object sender, KeyPressEventArgs e) + { + if (e.KeyChar == (char)Keys.Return) + { + if (ResetPassword.Enabled) + { + e.Handled = true; + ResetPassword_Click(null, null); + } + + } + } + + } +} diff --git a/HorseIsleServer/N00BS/ResetForm.resx b/HorseIsleServer/N00BS/ResetForm.resx new file mode 100644 index 0000000..2fb02c8 --- /dev/null +++ b/HorseIsleServer/N00BS/ResetForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + 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 + + + \ No newline at end of file diff --git a/HorseIsleServer/N00BS/SystemTrayIcon.Designer.cs b/HorseIsleServer/N00BS/SystemTrayIcon.Designer.cs index 49216d1..83c5aac 100644 --- a/HorseIsleServer/N00BS/SystemTrayIcon.Designer.cs +++ b/HorseIsleServer/N00BS/SystemTrayIcon.Designer.cs @@ -1,117 +1,242 @@ -namespace HISP -{ - partial class SystemTrayIcon - { - /// - /// 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() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SystemTrayIcon)); - this.HispNotifyIcon = new System.Windows.Forms.NotifyIcon(this.components); - this.HispContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); - this.usersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.serverToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.closeServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.createNewUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.HispContextMenuStrip.SuspendLayout(); - this.SuspendLayout(); - // - // HispNotifyIcon - // - this.HispNotifyIcon.ContextMenuStrip = this.HispContextMenuStrip; - this.HispNotifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("HispNotifyIcon.Icon"))); - this.HispNotifyIcon.Text = "Horse Isle"; - this.HispNotifyIcon.Visible = true; - // - // HispContextMenuStrip - // - this.HispContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.usersToolStripMenuItem, - this.serverToolStripMenuItem}); - this.HispContextMenuStrip.Name = "HispContextMenuStrip"; - this.HispContextMenuStrip.Size = new System.Drawing.Size(107, 48); - // - // usersToolStripMenuItem - // - this.usersToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.createNewUserToolStripMenuItem}); - this.usersToolStripMenuItem.Name = "usersToolStripMenuItem"; - this.usersToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.usersToolStripMenuItem.Text = "Users"; - // - // serverToolStripMenuItem - // - this.serverToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.closeServerToolStripMenuItem}); - this.serverToolStripMenuItem.Name = "serverToolStripMenuItem"; - this.serverToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.serverToolStripMenuItem.Text = "Server"; - // - // closeServerToolStripMenuItem - // - this.closeServerToolStripMenuItem.Name = "closeServerToolStripMenuItem"; - this.closeServerToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.closeServerToolStripMenuItem.Text = "Close Server"; - this.closeServerToolStripMenuItem.Click += new System.EventHandler(this.closeServerToolStripMenuItem_Click); - // - // createNewUserToolStripMenuItem - // - this.createNewUserToolStripMenuItem.Name = "createNewUserToolStripMenuItem"; - this.createNewUserToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.createNewUserToolStripMenuItem.Text = "Create New User"; - this.createNewUserToolStripMenuItem.Click += new System.EventHandler(this.createNewUserToolStripMenuItem_Click); - // - // SystemTrayIcon - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(90, 92); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "SystemTrayIcon"; - this.Opacity = 0D; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.Text = "SystemTrayIcon"; - this.WindowState = System.Windows.Forms.FormWindowState.Minimized; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SystemTrayIcon_FormClosing); - this.Load += new System.EventHandler(this.SystemTrayIcon_Load); - this.HispContextMenuStrip.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.NotifyIcon HispNotifyIcon; - private System.Windows.Forms.ContextMenuStrip HispContextMenuStrip; - private System.Windows.Forms.ToolStripMenuItem usersToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem createNewUserToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem serverToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem closeServerToolStripMenuItem; - } +namespace HISP +{ + partial class SystemTrayIcon + { + /// + /// 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() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SystemTrayIcon)); + this.HispNotifyIcon = new System.Windows.Forms.NotifyIcon(this.components); + this.HispContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); + this.usersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.createNewUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.resetUserPasswordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.serverToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.closeServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.configToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.disableSwearFilterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.disableCorrectionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.disableNonvioChecksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.disableSpamFilterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.gameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.allUsersSubscribedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.fixOfficalBugsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.advancedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.editServerPropertiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openServerFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.HispContextMenuStrip.SuspendLayout(); + this.SuspendLayout(); + // + // HispNotifyIcon + // + this.HispNotifyIcon.ContextMenuStrip = this.HispContextMenuStrip; + this.HispNotifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("HispNotifyIcon.Icon"))); + this.HispNotifyIcon.Text = "Horse Isle"; + this.HispNotifyIcon.Visible = true; + this.HispNotifyIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(this.HispNotifyIcon_MouseClick); + // + // HispContextMenuStrip + // + this.HispContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.usersToolStripMenuItem, + this.serverToolStripMenuItem}); + this.HispContextMenuStrip.Name = "HispContextMenuStrip"; + this.HispContextMenuStrip.Size = new System.Drawing.Size(107, 48); + // + // usersToolStripMenuItem + // + this.usersToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.createNewUserToolStripMenuItem, + this.resetUserPasswordToolStripMenuItem}); + this.usersToolStripMenuItem.Name = "usersToolStripMenuItem"; + this.usersToolStripMenuItem.Size = new System.Drawing.Size(106, 22); + this.usersToolStripMenuItem.Text = "Users"; + // + // createNewUserToolStripMenuItem + // + this.createNewUserToolStripMenuItem.Name = "createNewUserToolStripMenuItem"; + this.createNewUserToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.createNewUserToolStripMenuItem.Text = "Create new user"; + this.createNewUserToolStripMenuItem.Click += new System.EventHandler(this.createNewUserToolStripMenuItem_Click); + // + // resetUserPasswordToolStripMenuItem + // + this.resetUserPasswordToolStripMenuItem.Name = "resetUserPasswordToolStripMenuItem"; + this.resetUserPasswordToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.resetUserPasswordToolStripMenuItem.Text = "Reset user password"; + this.resetUserPasswordToolStripMenuItem.Click += new System.EventHandler(this.resetUserPasswordToolStripMenuItem_Click); + // + // serverToolStripMenuItem + // + this.serverToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.closeServerToolStripMenuItem, + this.configToolStripMenuItem, + this.gameToolStripMenuItem, + this.advancedToolStripMenuItem}); + this.serverToolStripMenuItem.Name = "serverToolStripMenuItem"; + this.serverToolStripMenuItem.Size = new System.Drawing.Size(106, 22); + this.serverToolStripMenuItem.Text = "Server"; + // + // closeServerToolStripMenuItem + // + this.closeServerToolStripMenuItem.Name = "closeServerToolStripMenuItem"; + this.closeServerToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.closeServerToolStripMenuItem.Text = "Shutdown server"; + this.closeServerToolStripMenuItem.Click += new System.EventHandler(this.closeServerToolStripMenuItem_Click); + // + // configToolStripMenuItem + // + this.configToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.disableSwearFilterToolStripMenuItem, + this.disableCorrectionsToolStripMenuItem, + this.disableNonvioChecksToolStripMenuItem, + this.disableSpamFilterToolStripMenuItem}); + this.configToolStripMenuItem.Name = "configToolStripMenuItem"; + this.configToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.configToolStripMenuItem.Text = "Chat"; + // + // disableSwearFilterToolStripMenuItem + // + this.disableSwearFilterToolStripMenuItem.CheckOnClick = true; + this.disableSwearFilterToolStripMenuItem.Name = "disableSwearFilterToolStripMenuItem"; + this.disableSwearFilterToolStripMenuItem.Size = new System.Drawing.Size(196, 22); + this.disableSwearFilterToolStripMenuItem.Text = "Disable swear filter"; + this.disableSwearFilterToolStripMenuItem.CheckedChanged += new System.EventHandler(this.disableSwearFilterToolStripMenuItem_CheckedChanged); + // + // disableCorrectionsToolStripMenuItem + // + this.disableCorrectionsToolStripMenuItem.CheckOnClick = true; + this.disableCorrectionsToolStripMenuItem.Name = "disableCorrectionsToolStripMenuItem"; + this.disableCorrectionsToolStripMenuItem.Size = new System.Drawing.Size(196, 22); + this.disableCorrectionsToolStripMenuItem.Text = "Disable corrections"; + this.disableCorrectionsToolStripMenuItem.CheckedChanged += new System.EventHandler(this.disableCorrectionsToolStripMenuItem_CheckedChanged); + // + // disableNonvioChecksToolStripMenuItem + // + this.disableNonvioChecksToolStripMenuItem.CheckOnClick = true; + this.disableNonvioChecksToolStripMenuItem.Name = "disableNonvioChecksToolStripMenuItem"; + this.disableNonvioChecksToolStripMenuItem.Size = new System.Drawing.Size(196, 22); + this.disableNonvioChecksToolStripMenuItem.Text = "Disable non-vio checks"; + this.disableNonvioChecksToolStripMenuItem.CheckedChanged += new System.EventHandler(this.disableNonvioChecksToolStripMenuItem_CheckedChanged); + // + // disableSpamFilterToolStripMenuItem + // + this.disableSpamFilterToolStripMenuItem.CheckOnClick = true; + this.disableSpamFilterToolStripMenuItem.Name = "disableSpamFilterToolStripMenuItem"; + this.disableSpamFilterToolStripMenuItem.Size = new System.Drawing.Size(196, 22); + this.disableSpamFilterToolStripMenuItem.Text = "Disable spam filter"; + this.disableSpamFilterToolStripMenuItem.CheckedChanged += new System.EventHandler(this.disableSpamFilterToolStripMenuItem_CheckedChanged); + // + // gameToolStripMenuItem + // + this.gameToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.allUsersSubscribedToolStripMenuItem, + this.fixOfficalBugsToolStripMenuItem}); + this.gameToolStripMenuItem.Name = "gameToolStripMenuItem"; + this.gameToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.gameToolStripMenuItem.Text = "Game"; + // + // allUsersSubscribedToolStripMenuItem + // + this.allUsersSubscribedToolStripMenuItem.CheckOnClick = true; + this.allUsersSubscribedToolStripMenuItem.Name = "allUsersSubscribedToolStripMenuItem"; + this.allUsersSubscribedToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.allUsersSubscribedToolStripMenuItem.Text = "All users subscribed"; + this.allUsersSubscribedToolStripMenuItem.CheckedChanged += new System.EventHandler(this.allUsersSubscribedToolStripMenuItem_CheckedChanged); + // + // fixOfficalBugsToolStripMenuItem + // + this.fixOfficalBugsToolStripMenuItem.CheckOnClick = true; + this.fixOfficalBugsToolStripMenuItem.Name = "fixOfficalBugsToolStripMenuItem"; + this.fixOfficalBugsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.fixOfficalBugsToolStripMenuItem.Text = "Fix offical bugs"; + this.fixOfficalBugsToolStripMenuItem.CheckedChanged += new System.EventHandler(this.fixOfficalBugsToolStripMenuItem_CheckedChanged); + // + // advancedToolStripMenuItem + // + this.advancedToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.editServerPropertiesToolStripMenuItem, + this.openServerFolderToolStripMenuItem}); + this.advancedToolStripMenuItem.Name = "advancedToolStripMenuItem"; + this.advancedToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.advancedToolStripMenuItem.Text = "Advanced"; + // + // editServerPropertiesToolStripMenuItem + // + this.editServerPropertiesToolStripMenuItem.Name = "editServerPropertiesToolStripMenuItem"; + this.editServerPropertiesToolStripMenuItem.Size = new System.Drawing.Size(184, 22); + this.editServerPropertiesToolStripMenuItem.Text = "Edit server.properties"; + // + // openServerFolderToolStripMenuItem + // + this.openServerFolderToolStripMenuItem.Name = "openServerFolderToolStripMenuItem"; + this.openServerFolderToolStripMenuItem.Size = new System.Drawing.Size(184, 22); + this.openServerFolderToolStripMenuItem.Text = "Open server folder"; + // + // SystemTrayIcon + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(90, 92); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SystemTrayIcon"; + this.Opacity = 0D; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.Text = "SystemTrayIcon"; + this.WindowState = System.Windows.Forms.FormWindowState.Minimized; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SystemTrayIcon_FormClosing); + this.Load += new System.EventHandler(this.SystemTrayIcon_Load); + this.HispContextMenuStrip.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.NotifyIcon HispNotifyIcon; + private System.Windows.Forms.ContextMenuStrip HispContextMenuStrip; + private System.Windows.Forms.ToolStripMenuItem usersToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem createNewUserToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem serverToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem closeServerToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem resetUserPasswordToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem advancedToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem editServerPropertiesToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openServerFolderToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem configToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem disableSwearFilterToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem disableCorrectionsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem disableNonvioChecksToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem disableSpamFilterToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem gameToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem allUsersSubscribedToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem fixOfficalBugsToolStripMenuItem; + } } \ No newline at end of file diff --git a/HorseIsleServer/N00BS/SystemTrayIcon.cs b/HorseIsleServer/N00BS/SystemTrayIcon.cs index 1025206..b13468e 100644 --- a/HorseIsleServer/N00BS/SystemTrayIcon.cs +++ b/HorseIsleServer/N00BS/SystemTrayIcon.cs @@ -1,6 +1,7 @@ using HISP.Server; using System; using System.Diagnostics; +using System.IO; using System.Windows.Forms; namespace HISP @@ -12,6 +13,13 @@ namespace HISP public SystemTrayIcon() { InitializeComponent(); + disableSwearFilterToolStripMenuItem.Checked = !ConfigReader.BadWords; + disableCorrectionsToolStripMenuItem.Checked = !ConfigReader.DoCorrections; + disableNonvioChecksToolStripMenuItem.Checked = !ConfigReader.DoNonViolations; + disableSpamFilterToolStripMenuItem.Checked = !ConfigReader.EnableSpamFilter; + + allUsersSubscribedToolStripMenuItem.Checked = ConfigReader.AllUsersSubbed; + fixOfficalBugsToolStripMenuItem.Checked = ConfigReader.FixOfficalBugs; } private void createNewUserToolStripMenuItem_Click(object sender, EventArgs e) @@ -52,14 +60,110 @@ namespace HISP { this.Close(); } - - } private void SystemTrayIcon_FormClosing(object sender, FormClosingEventArgs e) { HispNotifyIcon.Visible = false; clientProcess.Kill(); - } + } + + private void editServerPropertiesToolStripMenuItem_Click(object sender, EventArgs e) + { + Process p = new Process(); + p.StartInfo.FileName = "notepad.exe"; + p.StartInfo.Arguments = Path.Combine(Program.BaseDir, "server.properties"); + p.Start(); + + } + + private void openServerFolderToolStripMenuItem_Click(object sender, EventArgs e) + { + Process p = new Process(); + p.StartInfo.FileName = "explorer.exe"; + p.StartInfo.Arguments = Program.BaseDir; + p.Start(); + } + + private void ModifyConfig(string okey, string value) + { + string[] configFile = File.ReadAllLines(ConfigReader.ConfigurationFileName); + for (int i = 0; i < configFile.Length; i++) + { + string setting = configFile[i]; + + if (setting.Length < 1) + continue; + if (setting[0] == '#') + continue; + if (!setting.Contains("=")) + continue; + + string[] dataPair = setting.Split('='); + + string key = dataPair[0]; + + if (key == okey) + { + dataPair[1] = value; + configFile[i] = string.Join('=', dataPair); + } + } + File.WriteAllLines(ConfigReader.ConfigurationFileName, configFile); + } + + private void resetUserPasswordToolStripMenuItem_Click(object sender, EventArgs e) + { + ResetForm frm = new ResetForm(); + frm.ShowDialog(); + } + + private void HispNotifyIcon_MouseClick(object sender, MouseEventArgs e) + { + HispNotifyIcon.ContextMenuStrip.Show(); + } + + private void disableSwearFilterToolStripMenuItem_CheckedChanged(object sender, EventArgs e) + { + bool enab = !disableSwearFilterToolStripMenuItem.Checked; + ModifyConfig("enable_word_filter", enab.ToString().ToLowerInvariant()); + ConfigReader.BadWords = enab; + } + + private void disableCorrectionsToolStripMenuItem_CheckedChanged(object sender, EventArgs e) + { + bool enab = !disableCorrectionsToolStripMenuItem.Checked; + ModifyConfig("enable_corrections", enab.ToString().ToLowerInvariant()); + ConfigReader.DoCorrections = enab; + } + + private void disableNonvioChecksToolStripMenuItem_CheckedChanged(object sender, EventArgs e) + { + bool enab = !disableNonvioChecksToolStripMenuItem.Checked; + ModifyConfig("enable_non_violation_check", enab.ToString().ToLowerInvariant()); + ConfigReader.DoNonViolations = enab; + } + + private void disableSpamFilterToolStripMenuItem_CheckedChanged(object sender, EventArgs e) + { + bool enab = !disableSpamFilterToolStripMenuItem.Checked; + ModifyConfig("enable_spam_filter", enab.ToString().ToLowerInvariant()); + ConfigReader.EnableSpamFilter = enab; + } + + private void allUsersSubscribedToolStripMenuItem_CheckedChanged(object sender, EventArgs e) + { + bool enab = allUsersSubscribedToolStripMenuItem.Checked; + ModifyConfig("all_users_subscribed", enab.ToString().ToLowerInvariant()); + ConfigReader.AllUsersSubbed = enab; + } + + private void fixOfficalBugsToolStripMenuItem_CheckedChanged(object sender, EventArgs e) + { + bool enab = fixOfficalBugsToolStripMenuItem.Checked; + ModifyConfig("fix_offical_bugs", enab.ToString().ToLowerInvariant()); + ConfigReader.FixOfficalBugs = enab; + } + } } diff --git a/HorseIsleServer/N00BS/SystemTrayIcon.resx b/HorseIsleServer/N00BS/SystemTrayIcon.resx index 0a09329..54769b7 100644 --- a/HorseIsleServer/N00BS/SystemTrayIcon.resx +++ b/HorseIsleServer/N00BS/SystemTrayIcon.resx @@ -1,135 +1,135 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 17, 17 - - - 150, 17 - - - - - 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 - - - - 79 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + + 150, 17 + + + + + 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 + + + + 79 + \ No newline at end of file