From 9d50f2306741b4c4b0eb86dd7ecf59f189bad256 Mon Sep 17 00:00:00 2001
From: Li
Date: Mon, 25 Jul 2022 14:17:26 +1200
Subject: [PATCH] Update N00BS
---
.../HISPd/Resources/DEBIAN/control | 2 +-
.../LibHISP/Properties/AssemblyInfo.cs | 4 +-
HorseIsleServer/MPN00BS/App.axaml | 14 +-
HorseIsleServer/MPN00BS/HispViewModel.cs | 198 ++++++++++--
HorseIsleServer/N00BS/HTTP/ContentServer.cs | 296 ------------------
HorseIsleServer/N00BS/LoadingForm.Designer.cs | 95 ------
HorseIsleServer/N00BS/LoadingForm.cs | 20 --
HorseIsleServer/N00BS/LoadingForm.resx | 154 ---------
HorseIsleServer/N00BS/MpOrSp.Designer.cs | 82 -----
HorseIsleServer/N00BS/MpOrSp.cs | 35 ---
HorseIsleServer/N00BS/MpOrSp.resx | 126 --------
HorseIsleServer/N00BS/N00BS.csproj | 147 ---------
HorseIsleServer/N00BS/N00BS.csproj.user | 23 --
HorseIsleServer/N00BS/Program.cs | 205 ------------
.../N00BS/Properties/AssemblyInfo.cs | 35 ---
.../Properties/PublishProfiles/Win32.pubxml | 19 --
.../Properties/PublishProfiles/Win64.pubxml | 19 --
.../N00BS/Properties/Resources.Designer.cs | 118 -------
.../N00BS/Properties/Resources.resx | 120 -------
.../N00BS/Properties/launchSettings.json | 7 -
.../N00BS/RegisterForm.Designer.cs | 233 --------------
HorseIsleServer/N00BS/RegisterForm.cs | 169 ----------
HorseIsleServer/N00BS/RegisterForm.resx | 126 --------
HorseIsleServer/N00BS/ResetForm.Designer.cs | 140 ---------
HorseIsleServer/N00BS/ResetForm.cs | 144 ---------
HorseIsleServer/N00BS/ResetForm.resx | 126 --------
.../N00BS/ServerSelection.Designer.cs | 127 --------
HorseIsleServer/N00BS/ServerSelection.cs | 46 ---
HorseIsleServer/N00BS/ServerSelection.resx | 126 --------
.../N00BS/SystemTrayIcon.Designer.cs | 244 ---------------
HorseIsleServer/N00BS/SystemTrayIcon.cs | 174 ----------
HorseIsleServer/N00BS/SystemTrayIcon.resx | 135 --------
HorseIsleServer/N00BS/flash.dll | Bin 10182024 -> 0 bytes
HorseIsleServer/N00BS/icon.ico | Bin 3646 -> 0 bytes
34 files changed, 177 insertions(+), 3332 deletions(-)
delete mode 100644 HorseIsleServer/N00BS/HTTP/ContentServer.cs
delete mode 100644 HorseIsleServer/N00BS/LoadingForm.Designer.cs
delete mode 100644 HorseIsleServer/N00BS/LoadingForm.cs
delete mode 100644 HorseIsleServer/N00BS/LoadingForm.resx
delete mode 100644 HorseIsleServer/N00BS/MpOrSp.Designer.cs
delete mode 100644 HorseIsleServer/N00BS/MpOrSp.cs
delete mode 100644 HorseIsleServer/N00BS/MpOrSp.resx
delete mode 100644 HorseIsleServer/N00BS/N00BS.csproj
delete mode 100644 HorseIsleServer/N00BS/N00BS.csproj.user
delete mode 100644 HorseIsleServer/N00BS/Program.cs
delete mode 100644 HorseIsleServer/N00BS/Properties/AssemblyInfo.cs
delete mode 100644 HorseIsleServer/N00BS/Properties/PublishProfiles/Win32.pubxml
delete mode 100644 HorseIsleServer/N00BS/Properties/PublishProfiles/Win64.pubxml
delete mode 100644 HorseIsleServer/N00BS/Properties/Resources.Designer.cs
delete mode 100644 HorseIsleServer/N00BS/Properties/Resources.resx
delete mode 100644 HorseIsleServer/N00BS/Properties/launchSettings.json
delete mode 100644 HorseIsleServer/N00BS/RegisterForm.Designer.cs
delete mode 100644 HorseIsleServer/N00BS/RegisterForm.cs
delete mode 100644 HorseIsleServer/N00BS/RegisterForm.resx
delete mode 100644 HorseIsleServer/N00BS/ResetForm.Designer.cs
delete mode 100644 HorseIsleServer/N00BS/ResetForm.cs
delete mode 100644 HorseIsleServer/N00BS/ResetForm.resx
delete mode 100644 HorseIsleServer/N00BS/ServerSelection.Designer.cs
delete mode 100644 HorseIsleServer/N00BS/ServerSelection.cs
delete mode 100644 HorseIsleServer/N00BS/ServerSelection.resx
delete mode 100644 HorseIsleServer/N00BS/SystemTrayIcon.Designer.cs
delete mode 100644 HorseIsleServer/N00BS/SystemTrayIcon.cs
delete mode 100644 HorseIsleServer/N00BS/SystemTrayIcon.resx
delete mode 100644 HorseIsleServer/N00BS/flash.dll
delete mode 100644 HorseIsleServer/N00BS/icon.ico
diff --git a/HorseIsleServer/HISPd/Resources/DEBIAN/control b/HorseIsleServer/HISPd/Resources/DEBIAN/control
index 34dac19..bebeff4 100644
--- a/HorseIsleServer/HISPd/Resources/DEBIAN/control
+++ b/HorseIsleServer/HISPd/Resources/DEBIAN/control
@@ -1,5 +1,5 @@
Package: hisp
-Version: 1.7.103
+Version: 1.7.109
Depends: coreutils,systemd,mariadb-server,libsqlite3-dev,zlib1g-dev,libicu-dev,libkrb5-dev
Maintainer: Li
Homepage: https://islehorse.com
diff --git a/HorseIsleServer/LibHISP/Properties/AssemblyInfo.cs b/HorseIsleServer/LibHISP/Properties/AssemblyInfo.cs
index 2b9e47a..520d237 100644
--- a/HorseIsleServer/LibHISP/Properties/AssemblyInfo.cs
+++ b/HorseIsleServer/LibHISP/Properties/AssemblyInfo.cs
@@ -30,5 +30,5 @@ using System.Runtime.InteropServices;
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.7.103.0")]
-[assembly: AssemblyFileVersion("1.7.103.0")]
+[assembly: AssemblyVersion("1.7.109.0")]
+[assembly: AssemblyFileVersion("1.7.109.0")]
diff --git a/HorseIsleServer/MPN00BS/App.axaml b/HorseIsleServer/MPN00BS/App.axaml
index 0bd6d02..a27ce8a 100644
--- a/HorseIsleServer/MPN00BS/App.axaml
+++ b/HorseIsleServer/MPN00BS/App.axaml
@@ -24,20 +24,20 @@
-
+
diff --git a/HorseIsleServer/MPN00BS/HispViewModel.cs b/HorseIsleServer/MPN00BS/HispViewModel.cs
index 8774c7d..2a82fe9 100644
--- a/HorseIsleServer/MPN00BS/HispViewModel.cs
+++ b/HorseIsleServer/MPN00BS/HispViewModel.cs
@@ -8,18 +8,34 @@ namespace MPN00BS.ViewModels
{
public class HispViewModel : ViewModelBase
{
+
+ public void RefreshNames()
+ {
+ swearFilterHeader = (ConfigReader.EnableSwearFilter ? "Disable" : "Enable") + " Swear Filter";
+ correctionsHeader = (ConfigReader.EnableCorrections ? "Disable" : "Enable") + " Corrections";
+ vioChecksHeader = (ConfigReader.EnableNonViolations ? "Disable" : "Enable") + " Non-Vio Checks";
+ spamFilterHeader = (ConfigReader.EnableSpamFilter ? "Disable" : "Enable") + " Spam Filter";
+ allUsersSubbedHeader = (ConfigReader.AllUsersSubbed ? "Disable" : "Enable") + " All Users Subscribed";
+ fixOfficalBugsHeader = (ConfigReader.FixOfficalBugs ? "Disable" : "Enable") + " Fixing Offical Bugs";
+ }
+ public bool CheckServerRunningAndShowMessage()
+ {
+ if (!ServerStarter.HasServerStarted)
+ {
+ MessageBox.Show(null, "There is no Horse Isle Server running yet.", "Server not Started.", MessageBox.MessageBoxButtons.Ok);
+ return true;
+ }
+ return false;
+ }
+
public HispViewModel()
{
ServerStarter.ReadServerProperties();
- swearFilterHeader = (ConfigReader.EnableSwearFilter ? "Disable" : "Enable") + " Swear Filter";
+ RefreshNames();
createAccountCommand = MiniCommand.Create(() =>
{
- if (!ServerStarter.HasServerStarted)
- {
- MessageBox.Show(null, "There is no Horse Isle Server running yet.", "Server not Started.", MessageBox.MessageBoxButtons.Ok);
- return;
- }
+
new RegisterWindow().Show();
});
@@ -27,6 +43,7 @@ namespace MPN00BS.ViewModels
{
if (!ServerStarter.HasServerStarted)
{
+ if (CheckServerRunningAndShowMessage()) return;
MessageBox.Show(null, "There is no Horse Isle Server running yet.", "Server not Started.", MessageBox.MessageBoxButtons.Ok);
return;
}
@@ -36,11 +53,7 @@ namespace MPN00BS.ViewModels
editServerPropertiesCommand = MiniCommand.Create(() =>
{
- if (!ServerStarter.HasServerStarted)
- {
- MessageBox.Show(null, "There is no Horse Isle Server running yet.", "Server not Started.", MessageBox.MessageBoxButtons.Ok);
- return;
- }
+ if (CheckServerRunningAndShowMessage()) return;
Process p = new Process();
p.StartInfo.FileName = Path.Combine(ServerStarter.BaseDir, "server.properties");
@@ -51,11 +64,7 @@ namespace MPN00BS.ViewModels
openServerFolderCommand = MiniCommand.Create(() =>
{
- if (!ServerStarter.HasServerStarted)
- {
- MessageBox.Show(null, "There is no Horse Isle Server running yet.", "Server not Started.", MessageBox.MessageBoxButtons.Ok);
- return;
- }
+ if (CheckServerRunningAndShowMessage()) return;
Process p = new Process();
p.StartInfo.FileName = ServerStarter.BaseDir;
@@ -65,11 +74,7 @@ namespace MPN00BS.ViewModels
shutdownServerCommand = MiniCommand.Create(() =>
{
- if (!ServerStarter.HasServerStarted)
- {
- MessageBox.Show(null, "There is no Horse Isle Server running yet.", "Server not Started.", MessageBox.MessageBoxButtons.Ok);
- return;
- }
+ if (CheckServerRunningAndShowMessage()) return;
GameServer.ShutdownServer();
});
@@ -77,30 +82,161 @@ namespace MPN00BS.ViewModels
toggleSwearFilter = MiniCommand.Create(() =>
{
- if (!ServerStarter.HasServerStarted)
- {
- MessageBox.Show(null, "There is no Horse Isle Server running yet.", "Server not Started.", MessageBox.MessageBoxButtons.Ok);
- return;
- }
+ if (CheckServerRunningAndShowMessage()) return;
bool enab = !ConfigReader.EnableSwearFilter;
ServerStarter.ModifyConfig("enable_word_filter", enab.ToString().ToLowerInvariant());
ConfigReader.EnableSwearFilter = enab;
- swearFilterHeader = (ConfigReader.EnableSwearFilter ? "Disable" : "Enable") + " Swear Filter";
+ RefreshNames();
+ });
+
+ toggleCorrections = MiniCommand.Create(() =>
+ {
+ if (CheckServerRunningAndShowMessage()) return;
+
+ bool enab = !ConfigReader.EnableCorrections;
+ ServerStarter.ModifyConfig("enable_corrections", enab.ToString().ToLowerInvariant());
+ ConfigReader.EnableCorrections = enab;
+ RefreshNames();
+ });
+
+ toggleNonVioChecks = MiniCommand.Create(() =>
+ {
+ if (CheckServerRunningAndShowMessage()) return;
+
+ bool enab = !ConfigReader.EnableNonViolations;
+ ServerStarter.ModifyConfig("enable_non_violation_check", enab.ToString().ToLowerInvariant());
+ ConfigReader.EnableNonViolations = enab;
+ RefreshNames();
+ });
+
+ toggleSpamFilter = MiniCommand.Create(() =>
+ {
+ if (CheckServerRunningAndShowMessage()) return;
+
+ bool enab = !ConfigReader.EnableSpamFilter;
+ ServerStarter.ModifyConfig("enable_spam_filter", enab.ToString().ToLowerInvariant());
+ ConfigReader.EnableSpamFilter = enab;
+ RefreshNames();
+ });
+
+
+ toggleAllUsersSubbed = MiniCommand.Create(() =>
+ {
+ if (CheckServerRunningAndShowMessage()) return;
+
+ bool enab = !ConfigReader.AllUsersSubbed;
+ ServerStarter.ModifyConfig("all_users_subscribed", enab.ToString().ToLowerInvariant());
+ ConfigReader.AllUsersSubbed = enab;
+ RefreshNames();
+ });
+
+
+ toggleFixOfficalBugs = MiniCommand.Create(() =>
+ {
+ if (CheckServerRunningAndShowMessage()) return;
+
+ bool enab = !ConfigReader.FixOfficalBugs;
+ ServerStarter.ModifyConfig("fix_offical_bugs", enab.ToString().ToLowerInvariant());
+ ConfigReader.FixOfficalBugs = enab;
+ RefreshNames();
});
-
}
-
+ // Binding variables
- public String swearFilterHeader { get; set; }
+ private String _swearFilterHeader;
+ public String swearFilterHeader
+ {
+ get
+ {
+ return _swearFilterHeader;
+ }
+ set
+ {
+ RaiseAndSetIfChanged(ref _swearFilterHeader, value);
+ }
+ }
+
+ private String _correctionsHeader;
+ public String correctionsHeader
+ {
+ get
+ {
+ return _correctionsHeader;
+ }
+ set
+ {
+ RaiseAndSetIfChanged(ref _correctionsHeader, value);
+ }
+ }
+ private String _vioChecksHeader;
+ public String vioChecksHeader
+ {
+ get
+ {
+ return _vioChecksHeader;
+ }
+ set
+ {
+ RaiseAndSetIfChanged(ref _vioChecksHeader, value);
+ }
+ }
+
+ private String _spamFilterHeader;
+ public String spamFilterHeader
+ {
+ get
+ {
+ return _spamFilterHeader;
+ }
+ set
+ {
+ RaiseAndSetIfChanged(ref _spamFilterHeader, value);
+ }
+ }
+
+ private String _allUsersSubbedHeader;
+ public String allUsersSubbedHeader
+ {
+ get
+ {
+ return _allUsersSubbedHeader;
+ }
+ set
+ {
+ RaiseAndSetIfChanged(ref _allUsersSubbedHeader, value);
+ }
+ }
+
+ private String _fixOfficalBugsHeader;
+ public String fixOfficalBugsHeader
+ {
+ get
+ {
+ return _fixOfficalBugsHeader;
+ }
+ set
+ {
+ RaiseAndSetIfChanged(ref _fixOfficalBugsHeader, value);
+ }
+ }
+ // Commands
public MiniCommand shutdownServerCommand { get; }
public MiniCommand createAccountCommand { get; }
public MiniCommand editServerPropertiesCommand { get; }
public MiniCommand openServerFolderCommand { get; }
- public MiniCommand toggleSwearFilter { get; }
public MiniCommand resetPasswordCommand { get; }
+ public MiniCommand toggleSwearFilter { get; }
+ public MiniCommand toggleCorrections { get; }
+ public MiniCommand toggleNonVioChecks { get; }
+ public MiniCommand toggleSpamFilter { get; }
+
+ public MiniCommand toggleAllUsersSubbed { get; }
+ public MiniCommand toggleFixOfficalBugs { get; }
+
+
}
}
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/HTTP/ContentServer.cs b/HorseIsleServer/N00BS/HTTP/ContentServer.cs
deleted file mode 100644
index 5640781..0000000
--- a/HorseIsleServer/N00BS/HTTP/ContentServer.cs
+++ /dev/null
@@ -1,296 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Net;
-using System.Net.Sockets;
-using System.Text;
-
-namespace HTTP
-{
- class ContentItem
- {
-
- public String name;
- public String filePath;
- public ContentItem(string Name,string FilePath)
- {
- if(File.Exists(FilePath))
- {
- filePath = FilePath;
- name = Name;
- }
- else
- {
- throw new FileNotFoundException();
- }
- }
-
- }
-
- class ContentClient
- {
-
- public ContentClient(ContentServer Server, Socket ClientSocket)
- {
- clientSock = ClientSocket;
- baseServ = Server;
- baseServ.WriteDebugOutput("Client Connected @ " + clientSock.RemoteEndPoint.ToString());
- ProcessRequests();
- clientSock.Close();
-
- }
-
- private ContentServer baseServ;
- private Socket clientSock;
-
-
- private byte[] ReadData()
- {
- while (clientSock.Available < 1) { }
- byte[] by = new byte[clientSock.Available];
- clientSock.Receive(by);
- return by;
- }
-
- private void SendString(string str)
- {
- byte[] response = Encoding.UTF8.GetBytes(str);
- clientSock.Send(response);
- }
-
- private string GenerateHeaders(string path, long content_length = 0)
- {
- string headers = "";
-
- if (path == "/")
- {
- headers += "HTTP/1.1 200 OK\r\n";
- headers += "Content-Type: text/html\r\n";
- headers += "Accept-Ranges: bytes\r\n";
- headers += "Server: ContentServer\r\n";
- headers += "Content-Length: " + content_length + "\r\n";
- headers += "Cache-Control: max-age=0\r\n";
- headers += "Connection: keep-alive\r\n";
- headers += "\r\n";
- }
- else if (File.Exists(path))
- {
- FileInfo info = new FileInfo(path);
- long length = info.Length;
-
- if (content_length != 0)
- length = content_length;
-
-
- headers += "HTTP/1.1 200 OK\r\n";
- headers += "Content-Type: application/x-shockwave-flash\r\n";
- headers += "Accept-Ranges: bytes\r\n";
- headers += "Server: ContentServer\r\n";
- headers += "Content-Length: " + length + "\r\n";
- headers += "Cache-Control: max-age=0\r\n";
- headers += "Connection: keep-alive\r\n";
- headers += "\r\n";
- }
- else
- {
- headers += "HTTP/1.1 404 Not Found\r\n";
- headers += "Content-Type: text/plain\r\n";
- headers += "Accept-Ranges: bytes\r\n";
- headers += "Server: ContentServer\r\n";
- headers += "Content-Length: " + content_length + "\r\n";
- headers += "Cache-Control: max-age=3600\r\n";
- headers += "Connection: keep-alive\r\n";
- headers += "\r\n";
- }
- return headers;
- }
-
- private void RespondGet(string name)
- {
- baseServ.WriteDebugOutput("GET " + name);
-
- if (ContentItemExists(name))
- {
- ContentItem ci = GetContentItem(name);
- FileStream fs = File.OpenRead(ci.filePath);
- try
- {
- string requestStr = GenerateHeaders(ci.filePath, fs.Length - fs.Position);
-
- SendString(requestStr);
-
- while(fs.Position < fs.Length)
- {
- int BUFFER_SIZE = 0x8500000;
- if(fs.Position + BUFFER_SIZE <= fs.Length)
- {
- byte[] buffer = new byte[BUFFER_SIZE];
- fs.Read(buffer, 0x00, BUFFER_SIZE);
- clientSock.Send(buffer);
- }
- else
- {
- byte[] buffer = new byte[fs.Length - fs.Position];
- fs.Read(buffer, 0x00, buffer.Length);
- clientSock.Send(buffer);
- }
-
- }
- }
- catch (Exception) {
- fs.Close();
- };
-
- }
- else
- {
- string body = GeneratePage(name);
- string requestStr = GenerateHeaders(name, body.Length);
- requestStr += body;
-
- SendString(requestStr);
- }
-
- }
-
- private void RespondHead(string path)
- {
- string name = Path.GetFileName(path);
- baseServ.WriteDebugOutput("HEAD " + path);
-
- if (ContentItemExists(name))
- {
- ContentItem ci = GetContentItem(name);
- string requestStr = GenerateHeaders(ci.filePath);
- SendString(requestStr);
- }
- else
- {
- string body = GeneratePage(path);
- string requestStr = GenerateHeaders(path, body.Length);
- SendString(requestStr);
- }
-
- }
-
- private bool ContentItemExists(string name)
- {
- bool exists = false;
-
-
- foreach (ContentItem ci in baseServ.Contents)
- {
- if (ci.name == name)
- {
- exists = true;
- }
- }
- return exists;
- }
-
- private ContentItem GetContentItem(string name)
- {
-
- foreach (ContentItem ci in baseServ.Contents)
- {
- if (ci.name == name)
- {
- return ci;
- }
- }
- throw new FileNotFoundException();
- }
-
- private string GeneratePage(string path)
- {
- if (path == "/")
- {
- string body = "Horse Isle Web Server..
Fork of SilicaAndPina's \"Content Server\"";
- return body;
- }
- else
- {
- string body = "File not found.";
- return body;
- }
- }
-
- private string ExtractPath(string relativeUri)
- {
- int questionIndex = relativeUri.IndexOf("?");
- if (questionIndex != -1)
- return relativeUri.Substring(0, questionIndex);
- else
- return relativeUri;
- }
- private string ExtractRelativeUrl(string header)
- {
- return header.Split(' ')[1];
- }
- private void ProcessRequests()
- {
- byte[] data = ReadData();
-
- // Parse Request
-
- string curReq = Encoding.UTF8.GetString(data);
-
- curReq = curReq.Replace("\r\n", "\n");
- string[] reqLines = curReq.Split('\n');
- foreach (string line in reqLines)
- {
- if (line.StartsWith("GET"))
- {
- string relUrl = ExtractRelativeUrl(line);
- string path = ExtractPath(relUrl);
- //Dictionary query = ExtractQuery(relUrl);
- RespondGet(path);
- return;
- }
- else if (line.StartsWith("HEAD"))
- {
- string relUrl = ExtractRelativeUrl(line);
- string path = ExtractPath(relUrl);
- RespondHead(path);
- return;
- }
- }
-
- }
- }
- class ContentServer
- {
- public List Contents = new List();
- public Socket ServerSocket;
- public void WriteDebugOutput(string txt)
- {
- Console.WriteLine("[HTTP] " + txt);
- }
-
- public void CreateClient(object sender, SocketAsyncEventArgs e)
- {
- do
- {
- Socket eSocket = e.AcceptSocket;
- if (eSocket != null)
- new ContentClient(this, eSocket);
- e.AcceptSocket = null;
- } while (!ServerSocket.AcceptAsync(e));
- }
- public ContentServer(string ip)
- {
-
- WriteDebugOutput("Listening for connections on port 80.");
- IPEndPoint ep = new IPEndPoint(IPAddress.Parse(ip), 80);
- ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- ServerSocket.Bind(ep);
- ServerSocket.Listen(0x7fffffff);
-
- SocketAsyncEventArgs e = new SocketAsyncEventArgs();
- e.Completed += CreateClient;
- CreateClient(this, e);
- }
-
-
- }
-}
diff --git a/HorseIsleServer/N00BS/LoadingForm.Designer.cs b/HorseIsleServer/N00BS/LoadingForm.Designer.cs
deleted file mode 100644
index 376416b..0000000
--- a/HorseIsleServer/N00BS/LoadingForm.Designer.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-namespace HISP.Noobs
-{
- partial class LoadingForm
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoadingForm));
- this.StepName = new System.Windows.Forms.Label();
- this.pictureBox1 = new System.Windows.Forms.PictureBox();
- this.StartProgress = new System.Windows.Forms.ProgressBar();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
- this.SuspendLayout();
- //
- // StepName
- //
- this.StepName.AutoSize = true;
- this.StepName.Location = new System.Drawing.Point(79, 22);
- this.StepName.Name = "StepName";
- this.StepName.Size = new System.Drawing.Size(92, 15);
- this.StepName.TabIndex = 0;
- this.StepName.Text = "Starting Server...";
- //
- // pictureBox1
- //
- this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
- this.pictureBox1.Location = new System.Drawing.Point(12, 12);
- this.pictureBox1.Name = "pictureBox1";
- this.pictureBox1.Size = new System.Drawing.Size(61, 73);
- this.pictureBox1.TabIndex = 1;
- this.pictureBox1.TabStop = false;
- //
- // StartProgress
- //
- this.StartProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.StartProgress.Location = new System.Drawing.Point(79, 40);
- this.StartProgress.Maximum = 19;
- this.StartProgress.Name = "StartProgress";
- this.StartProgress.Size = new System.Drawing.Size(618, 23);
- this.StartProgress.Step = 1;
- this.StartProgress.TabIndex = 2;
- //
- // LoadingForm
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(709, 101);
- this.Controls.Add(this.StartProgress);
- this.Controls.Add(this.pictureBox1);
- this.Controls.Add(this.StepName);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.MaximizeBox = false;
- this.MaximumSize = new System.Drawing.Size(725, 140);
- this.MinimumSize = new System.Drawing.Size(725, 140);
- this.Name = "LoadingForm";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "Starting Server...";
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private System.Windows.Forms.Label StepName;
- private System.Windows.Forms.PictureBox pictureBox1;
- public System.Windows.Forms.ProgressBar StartProgress;
- }
-}
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/LoadingForm.cs b/HorseIsleServer/N00BS/LoadingForm.cs
deleted file mode 100644
index 8c9bfa8..0000000
--- a/HorseIsleServer/N00BS/LoadingForm.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace HISP.Noobs
-{
- public partial class LoadingForm : Form
- {
- public LoadingForm()
- {
- InitializeComponent();
- }
- }
-}
diff --git a/HorseIsleServer/N00BS/LoadingForm.resx b/HorseIsleServer/N00BS/LoadingForm.resx
deleted file mode 100644
index fdf5538..0000000
--- a/HorseIsleServer/N00BS/LoadingForm.resx
+++ /dev/null
@@ -1,154 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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
-
-
-
-
- R0lGODlhOgBEAIYAAAAAAP///0kBPZyEmPsA7tEAxs8AxMoAv8gAv8EAuaEAmp8AmIoAhDIALzAALiUF
- I7cAtKAAmp4AmJ4AmpcAlJUAkpEAjZAAjYUAgIQAgHkAd1gAVVcAVFUAUlMAUE8ATUkARz0APDUAMzEA
- MC4ALf8n96gAposAioMAgWsAa0QAQzUANZkAnZUAmI4AkXMAdWEAZF8AYS8AMIgAjn4Ag3sAf1sAXlcA
- WzcAOWhAeE0wWKaJsZF4m35Lk6mpqXZ2dkBAQP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQB
- AABBACwAAAAAOgBEAAAI/wCDCBxIsKDBgwgLbkjIsKHDhwIXQpxIkWGJEhskVtxY8WJGjiAnFijwoCAQ
- ICFTEtww8oHLlydVytygoKbNlzJTPsho86bLnCF30lQwcmTNj0ApAnHJk2jRoxqTPnzZtGiBpkilNqQ6
- 1CrWqFoRCu1Zs+UDowqyhiW4dCxZs2jVrhXItWwBuyMJEIgLNmxdp3gL6OU7d+BftD3z7r2btm/Otky7
- Mk4seDHUtYcrQ6U8+KpjmZn1brapeKRcoKEJQM1YtejpnKlXsw78GnRTu6Ibrxx6WWrb205zqwVeO2hk
- zqp1K2SN+Thpzcp3F+eYo3oO51aFfw5r/brb7MmnQ//sbrD7jh3VgYPvnZJ8QfPoc6gvqr19jvPnu1fH
- v4MHj+o66ECZVexRdx9++h14nn8ACvgcgdFVtF9//vHAX4UVdhcgYk4RZuCCFV6I4X/WbThZh4yJx5AO
- I7aYoX4mogWhigmx6GKLCcbI2IzbObRBgAkGWWKAOnRmlYcVCQWkkEESWeRiR6bYY0JuOWnllU8G2Blu
- 4U1p0G9DYSlmlk/KCB2NbGFXwJIa6qCYXtVBqFiBD4FpF5tDvklAnE8F12VFdtqkV4A9FNrDD4gmahWf
- NW0ZYZ3ONUoAoYYmqmhRjCrgKJqGRRZBBAssYIABSyLqpA8+LJrDp6GO+mlGAij/9ZJQrIpKqg7VmUok
- qqrW6moEsMr6kgACcMDBBBMgoCwCAaLqrA811RpgBx0ccACyEkhgbKwTQfYAscYiuyyzOjyLarSgLjBt
- tddOkO22xELkLbEeeFBBBRZYcMEF+X7wQQYZBMjAwAxggEGA/iaQAAUU1Evsw/KWJBC99uKrL78W+Auw
- wAQbjPAHCjPs8MMQbyVxEMT6e8IJKLTsMgggELtuvf4SCzMEEKxcM8nxInQSThMLoDLLLrcMs8w6UEvz
- BzaDgLPOHwxEckI//xQ0sSqo8MILLLCggQZZ92xQ1iaY8LUKBk3tM2RSP5z11l2frYLYBZFtNtgI0W0S
- 21cLwxBCCC64MMMMKaQQgkMhtNBC4YcfpDdbSxWkduCDM4644oUn9PhAP0techAj0EBDDDHg4BAOMMCw
- AkObC9Q5QWqDLjrpD6Guet7cUh1532LLUEMNI0C0gg02yIB7QzG1HbvvwAtPvOO5O5R87AKRcMMNwTtE
- OgnHy4sSyp9Xf332DOGw/WPfUx+EA9c3cDrx3Ms0ffjrt/++DfEnpf4IAwwgwun9yx9Q1BeE/v3PIQEs
- zEFEYLqHjMABCjQIAyHyQJUEBAA7
-
-
-
-
- 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
-
-
-
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/MpOrSp.Designer.cs b/HorseIsleServer/N00BS/MpOrSp.Designer.cs
deleted file mode 100644
index def81cb..0000000
--- a/HorseIsleServer/N00BS/MpOrSp.Designer.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-namespace HISP
-{
- partial class MpOrSp
- {
- ///
- /// 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(MpOrSp));
- this.Singleplayer = new System.Windows.Forms.Button();
- this.Multiplayer = new System.Windows.Forms.Button();
- this.SuspendLayout();
- //
- // Singleplayer
- //
- this.Singleplayer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.Singleplayer.Location = new System.Drawing.Point(11, 12);
- this.Singleplayer.Name = "Singleplayer";
- this.Singleplayer.Size = new System.Drawing.Size(581, 32);
- this.Singleplayer.TabIndex = 0;
- this.Singleplayer.Text = "Play Singleplayer";
- this.Singleplayer.UseVisualStyleBackColor = true;
- this.Singleplayer.Click += new System.EventHandler(this.Singleplayer_Click);
- //
- // Multiplayer
- //
- this.Multiplayer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.Multiplayer.Location = new System.Drawing.Point(11, 50);
- this.Multiplayer.Name = "Multiplayer";
- this.Multiplayer.Size = new System.Drawing.Size(581, 32);
- this.Multiplayer.TabIndex = 1;
- this.Multiplayer.Text = "Play Multiplayer";
- this.Multiplayer.UseVisualStyleBackColor = true;
- this.Multiplayer.Click += new System.EventHandler(this.Multiplayer_Click);
- //
- // MpOrSp
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(604, 94);
- this.Controls.Add(this.Multiplayer);
- this.Controls.Add(this.Singleplayer);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.MaximizeBox = false;
- this.MinimumSize = new System.Drawing.Size(620, 133);
- this.Name = "MpOrSp";
- this.Text = "Select Mode";
- this.ResumeLayout(false);
-
- }
-
- #endregion
-
- private System.Windows.Forms.Button Singleplayer;
- private System.Windows.Forms.Button Multiplayer;
- }
-}
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/MpOrSp.cs b/HorseIsleServer/N00BS/MpOrSp.cs
deleted file mode 100644
index b825151..0000000
--- a/HorseIsleServer/N00BS/MpOrSp.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace HISP
-{
- public partial class MpOrSp : Form
- {
- public bool Mutliplayer = false;
-
- public MpOrSp()
- {
- InitializeComponent();
- }
-
- private void Singleplayer_Click(object sender, EventArgs e)
- {
- Mutliplayer = false;
- DialogResult = DialogResult.OK;
- }
-
- private void Multiplayer_Click(object sender, EventArgs e)
- {
- Mutliplayer = true;
- DialogResult = DialogResult.OK;
- }
-
- }
-}
diff --git a/HorseIsleServer/N00BS/MpOrSp.resx b/HorseIsleServer/N00BS/MpOrSp.resx
deleted file mode 100644
index 2fb02c8..0000000
--- a/HorseIsleServer/N00BS/MpOrSp.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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/N00BS.csproj b/HorseIsleServer/N00BS/N00BS.csproj
deleted file mode 100644
index 862dfad..0000000
--- a/HorseIsleServer/N00BS/N00BS.csproj
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
- WinExe
- HISP.Noobs
- 10.0
- true
- net7.0-windows
- x64;x86;AnyCPU
- Debug;Windows
-
-
-
- True
- True
- Resources.resx
-
-
- Form
-
-
-
-
- PreserveNewest
-
-
-
-
-
- PreserveNewest
- client\%(Filename)%(Extension)
-
-
-
-
-
- PreserveNewest
- client\map750.png
-
-
-
-
-
- PreserveNewest
- client\mod\%(Filename)%(Extension)
-
-
-
-
-
- PreserveNewest
- client\tack\%(Filename)%(Extension)
-
-
-
-
-
-
- PreserveNewest
- client\breed\%(Filename)%(Extension)
-
-
-
-
-
- PreserveNewest
- client\resource\%(Filename)%(Extension)
-
-
-
-
-
-
-
-
- false
- false
-
-
- false
- true
- icon.ico
- HISP.Noobs.Program
- OnBuildSuccess
- embedded
- False
- none
- False
- Public Domain, 2022
- https://islehorse.com
- https://github.com/islehorse/HISP
- git
-
-
-
- win-x86
- true
- x86
- OS_WINDOWS;ARCH_X86
- 3
- 1701;1702;2026
-
-
- win-x64
- true
- x64
- OS_WINDOWS;ARCH_X86_64
- 3
- 1701;1702;2026
-
-
-
- win-x86;win-x64
- True
- OS_ALL;ARCH_ANYCPU
-
-
-
- False
- DEBUG;TRACE;OS_DEBUG;ARCH_X86_64
- 3
- 1701;1702;2026
-
-
-
-
- False
- DEBUG;TRACE;OS_DEBUG;ARCH_X86
- 3
- 1701;1702;2026
-
-
-
-
- False
- OS_WINDOWS;ARCH_ANYCPU
- 3
- 1701;1702;2026
-
-
-
- 3
- 1701;1702;2026
- False
-
-
-
-
diff --git a/HorseIsleServer/N00BS/N00BS.csproj.user b/HorseIsleServer/N00BS/N00BS.csproj.user
deleted file mode 100644
index 3a78a43..0000000
--- a/HorseIsleServer/N00BS/N00BS.csproj.user
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- <_LastSelectedProfileId>C:\Users\Li\Documents\git\HISP\HorseIsleServer\N00BS\Properties\PublishProfiles\Win64.pubxml
-
-
-
- Form
-
-
- Form
-
-
- Form
-
-
- Form
-
-
- Form
-
-
-
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/Program.cs b/HorseIsleServer/N00BS/Program.cs
deleted file mode 100644
index 0aa1e67..0000000
--- a/HorseIsleServer/N00BS/Program.cs
+++ /dev/null
@@ -1,205 +0,0 @@
-// An HTTP Server, and Horse Isle Server, Flash Player, in a single package
-// Idea is to just be open and play.
-
-using HISP.Game;
-using HISP.Game.Chat;
-using HISP.Game.Horse;
-using HISP.Game.Items;
-using HISP.Game.Services;
-using HISP.Game.SwfModules;
-using HISP.Security;
-using HISP.Server;
-using HTTP;
-
-using System;
-using System.Diagnostics;
-using System.IO;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace HISP.Noobs
-{
- public static class Program
- {
- private static LoadingForm lfrm;
- public static string BaseDir;
- private static ContentServer cs;
- private static void addToList(string path)
- {
- string Name = path.Remove(0, Path.Combine(Directory.GetCurrentDirectory(), "client").Length);
- Name = Name.Replace("\\", "/");
-
- ContentItem ci = new ContentItem(Name, path);
- cs.Contents.Add(ci);
-
- }
-
- public static void OnShutdown()
- {
- if (!Process.GetCurrentProcess().CloseMainWindow())
- Process.GetCurrentProcess().Close();
- }
-
- public static void StartLRFrm()
- {
- if (lfrm.ShowDialog() == DialogResult.Cancel)
- {
- GameServer.ShutdownServer();
- }
- }
-
- public static void IncrementProgress()
- {
- if (lfrm.InvokeRequired)
- {
- lfrm.Invoke(() =>
- {
- lfrm.StartProgress.Increment(1);
- });
- }
- else
- {
- lfrm.StartProgress.Increment(1);
- }
- }
-
- public static void ShowCrash(bool error, string type, string text)
- {
- if (type == "CRASH")
- MessageBox.Show(text, type, MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
-
-
- public static void Main(string[] args)
- {
- BaseDir = Path.Combine(Environment.GetEnvironmentVariable("APPDATA"), "HISP", "N00BS");
- Directory.CreateDirectory(BaseDir);
-
-
- // Start Web Server
- try
- {
- cs = new ContentServer("127.0.0.1");
- string[] fileList = Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(), "client"), "*", SearchOption.AllDirectories);
- foreach (string file in fileList)
- addToList(file);
- }
- catch (Exception e)
- {
- MessageBox.Show("Web server failed to start: " + e.Message, "Error starting web server", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
-
- MpOrSp mporsp = new MpOrSp();
- if (mporsp.ShowDialog() != DialogResult.OK)
- return;
-
- if (mporsp.Mutliplayer)
- {
- ServerSelection ssel = new ServerSelection();
- ssel.ShowDialog();
- }
- else
- {
- lfrm = new LoadingForm();
- Task startForm = new Task(StartLRFrm);
- startForm.Start();
-
- Entry.RegisterCrashHandler();
- Logger.SetCallback(ShowCrash);
-
- ConfigReader.ConfigurationFileName = Path.Combine(BaseDir, "server.properties");
- ConfigReader.OpenConfig();
- ConfigReader.SqlLite = true;
- ConfigReader.LogLevel = 0;
- ConfigReader.CrossDomainPolicyFile = Path.Combine(BaseDir, "CrossDomainPolicy.xml");
-
- // Compatibility patch
- if (File.Exists(Path.Combine(BaseDir, "game1.db.db"))) {
- File.Move(Path.Combine(BaseDir, "game1.db.db"), Path.Combine(BaseDir, "game1.db"));
- }
-
- ConfigReader.DatabaseName = Path.Combine(BaseDir, "game1");
-
- IncrementProgress();
- Database.OpenDatabase();
- IncrementProgress();
-
-
- if (Database.GetUsers().Length <= 0)
- {
- RegisterForm rfrm = new RegisterForm();
- if (rfrm.ShowDialog() == DialogResult.Cancel)
- GameServer.ShutdownServer();
-
- }
-
-
- // Start HI1 Server
- IncrementProgress();
-
- Entry.SetShutdownCallback(OnShutdown);
- IncrementProgress();
-
- CrossDomainPolicy.GetPolicy();
- IncrementProgress();
-
- GameDataJson.ReadGamedata();
- IncrementProgress();
-
- Map.OpenMap();
- IncrementProgress();
-
- World.ReadWorldData();
- IncrementProgress();
-
- Treasure.Init();
- IncrementProgress();
-
- DroppedItems.Init();
- IncrementProgress();
-
- WildHorse.Init();
- IncrementProgress();
-
- Drawingroom.LoadAllDrawingRooms();
- IncrementProgress();
-
- Brickpoet.LoadPoetryRooms();
- IncrementProgress();
-
- Multiroom.CreateMultirooms();
- IncrementProgress();
-
- Auction.LoadAllAuctionRooms();
- IncrementProgress();
-
- Command.RegisterCommands();
- IncrementProgress();
-
- Item.DoSpecialCases();
- IncrementProgress();
- try
- {
- GameServer.StartServer();
- }
- catch (Exception e)
- {
- MessageBox.Show("Horse Isle server failed to start: " + e.Message, "Error starting hi1 server", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- IncrementProgress();
-
- lfrm.DialogResult = DialogResult.OK;
-
- SystemTrayIcon stry = new SystemTrayIcon();
- stry.ShowDialog();
-
- // Finally, shutdown server
- GameServer.ShutdownServer();
- }
-
-
- }
- }
-}
diff --git a/HorseIsleServer/N00BS/Properties/AssemblyInfo.cs b/HorseIsleServer/N00BS/Properties/AssemblyInfo.cs
deleted file mode 100644
index 21ce570..0000000
--- a/HorseIsleServer/N00BS/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("HISP Noobs")]
-[assembly: AssemblyDescription("Noob-Friendly One-Click Run HISP.")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Li")]
-[assembly: AssemblyProduct("HISP")]
-[assembly: AssemblyCopyright("Public Domain © 2022")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("72adebe4-f5d5-41e1-90d1-3ee7706a8fe3")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.7.103.0")]
-[assembly: AssemblyFileVersion("1.7.103.0")]
diff --git a/HorseIsleServer/N00BS/Properties/PublishProfiles/Win32.pubxml b/HorseIsleServer/N00BS/Properties/PublishProfiles/Win32.pubxml
deleted file mode 100644
index f4a2764..0000000
--- a/HorseIsleServer/N00BS/Properties/PublishProfiles/Win32.pubxml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- Windows
- x86
- bin\x86\Windows\net7.0\win-x86\publish\
- FileSystem
- net7.0-windows
- win-x86
- True
- True
- True
-
- OS_WINDOWS;ARCH_X86
-
-
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/Properties/PublishProfiles/Win64.pubxml b/HorseIsleServer/N00BS/Properties/PublishProfiles/Win64.pubxml
deleted file mode 100644
index 8fe4575..0000000
--- a/HorseIsleServer/N00BS/Properties/PublishProfiles/Win64.pubxml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- Windows
- x64
- bin\x64\Windows\net7.0\win-x64\publish\
- FileSystem
- net7.0-windows
- win-x64
- True
- True
- True
-
- OS_WINDOWS;ARCH_X86_64
-
-
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/Properties/Resources.Designer.cs b/HorseIsleServer/N00BS/Properties/Resources.Designer.cs
deleted file mode 100644
index cec9b10..0000000
--- a/HorseIsleServer/N00BS/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace HISPCli.Properties {
- using System;
-
-
- ///
- /// A strongly-typed resource public class, for looking up localized strings, etc.
- ///
- // This public class was auto-generated by the StronglyTypedResourceBuilder
- // public class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources() {
- }
-
- ///
- /// Returns the cached ResourceManager instance used by this public class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HISP.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- ///
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource public class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
-
- ///
- /// Looks up a localized string similar to <cross-domain-policy>
- /// <allow-access-from domain="*" to-ports="12321" secure="false"/>
- ///</cross-domain-policy>.
- ///
- internal static string DefaultCrossDomain {
- get {
- return ResourceManager.GetString("DefaultCrossDomain", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to # HorseIsleServer Default Configuration File
- ///
- ///# Ip address the server will bind to (default: 0.0.0.0 ALL INTERFACES)
- ///ip=0.0.0.0
- ///# Port the server will bind to (default: 12321)
- ///port=12321
- ///
- ///# MariaDB Database
- ///db_ip=127.0.0.1
- ///db_name=beta
- ///db_username=root
- ///db_password=test123
- ///db_port=3306
- ///
- ///# Map Data
- ///map=HI1.MAP
- ///
- ///# JSON Format Data
- ///
- ///gamedata=gamedata.json
- ///
- ///# Cross-Domain Policy File
- ///crossdomain=CrossDomainPolicy.xml
- ///
- ///# Red Text Stating "Todays Note:"
- ///motd=April 11, 2020. New breed, C [rest of string was truncated]";.
- ///
- internal static string DefaultServerProperties {
- get {
- return ResourceManager.GetString("DefaultServerProperties", resourceCulture);
- }
- }
-
- ///
- /// UNKNOWN COMMIT HASH
- ///
- internal static string GitCommit {
- get {
- return ResourceManager.GetString("GitCommit", resourceCulture);
- }
- }
-
- }
-}
diff --git a/HorseIsleServer/N00BS/Properties/Resources.resx b/HorseIsleServer/N00BS/Properties/Resources.resx
deleted file mode 100644
index 1af7de1..0000000
--- a/HorseIsleServer/N00BS/Properties/Resources.resx
+++ /dev/null
@@ -1,120 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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
-
-
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/Properties/launchSettings.json b/HorseIsleServer/N00BS/Properties/launchSettings.json
deleted file mode 100644
index 8f753d5..0000000
--- a/HorseIsleServer/N00BS/Properties/launchSettings.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "profiles": {
- "N00BS": {
- "commandName": "Project"
- }
- }
-}
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/RegisterForm.Designer.cs b/HorseIsleServer/N00BS/RegisterForm.Designer.cs
deleted file mode 100644
index 81fec78..0000000
--- a/HorseIsleServer/N00BS/RegisterForm.Designer.cs
+++ /dev/null
@@ -1,233 +0,0 @@
-namespace HISP.Noobs
-{
- 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.cs b/HorseIsleServer/N00BS/RegisterForm.cs
deleted file mode 100644
index 382967e..0000000
--- a/HorseIsleServer/N00BS/RegisterForm.cs
+++ /dev/null
@@ -1,169 +0,0 @@
-using System;
-using System.Text.RegularExpressions;
-using System.Windows.Forms;
-using HISP.Security;
-using HISP.Server;
-
-namespace HISP.Noobs
-{
- public partial class RegisterForm : Form
- {
- public RegisterForm()
- {
- InitializeComponent();
- }
-
- private void RegisterForm_Load(object sender, EventArgs e)
- {
- ValidateInput();
- }
-
- private void ValidateInput()
- {
- if(ValidateUsername() && ValidatePassword())
- CreateAccount.Enabled = true;
- else
- CreateAccount.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 is already in use.";
- 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 CreateAccount_Click(object sender, EventArgs e)
- {
- int newUserId = Database.GetNextFreeUserId();
-
- // Generate random salt
- byte[] salt = new byte[64];
- new Random(Guid.NewGuid().GetHashCode()).NextBytes(salt);
-
- // Hash password
- string saltText = BitConverter.ToString(salt).Replace("-", "");
- string hashsalt = BitConverter.ToString(Authentication.HashAndSalt(Password.Text, salt)).Replace("-", "");
-
- // Insert LGBT Patch here.
- string gender = "";
- if (BoySelecton.Checked)
- gender = "MALE";
-
- if (GirlSelection.Checked)
- gender = "FEMALE";
-
- Database.CreateUser(newUserId, Username.Text, hashsalt, saltText, gender, isAdmin.Checked, isMod.Checked);
- this.DialogResult = DialogResult.OK;
- }
-
- private void isAdmin_CheckedChanged(object sender, EventArgs e)
- {
- if (isAdmin.Checked)
- isMod.Checked = true;
- }
-
- private void isMod_CheckedChanged(object sender, EventArgs e)
- {
- if (!isMod.Checked)
- isAdmin.Checked = false;
- }
-
- private void Password_KeyPress(object sender, KeyPressEventArgs e)
- {
- if(e.KeyChar == (char)Keys.Return)
- {
- if (CreateAccount.Enabled)
- {
- e.Handled = true;
- CreateAccount_Click(null, null);
- }
-
- }
-
- }
-
- private void Username_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (e.KeyChar == (char)Keys.Return)
- {
- if (CreateAccount.Enabled)
- {
- e.Handled = true;
- CreateAccount_Click(null, null);
- }
-
- }
- }
-
- }
-}
diff --git a/HorseIsleServer/N00BS/RegisterForm.resx b/HorseIsleServer/N00BS/RegisterForm.resx
deleted file mode 100644
index 2fb02c8..0000000
--- a/HorseIsleServer/N00BS/RegisterForm.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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
deleted file mode 100644
index 224fb78..0000000
--- a/HorseIsleServer/N00BS/ResetForm.Designer.cs
+++ /dev/null
@@ -1,140 +0,0 @@
-namespace HISP.Noobs
-{
- 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
deleted file mode 100644
index 1ecde82..0000000
--- a/HorseIsleServer/N00BS/ResetForm.cs
+++ /dev/null
@@ -1,144 +0,0 @@
-using System;
-using System.Text.RegularExpressions;
-using System.Windows.Forms;
-using HISP.Security;
-using HISP.Server;
-
-namespace HISP.Noobs
-{
- 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
deleted file mode 100644
index 2fb02c8..0000000
--- a/HorseIsleServer/N00BS/ResetForm.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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/ServerSelection.Designer.cs b/HorseIsleServer/N00BS/ServerSelection.Designer.cs
deleted file mode 100644
index 3e8e1ea..0000000
--- a/HorseIsleServer/N00BS/ServerSelection.Designer.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-namespace HISP
-{
- partial class ServerSelection
- {
- ///
- /// 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(ServerSelection));
- this.joinServer = new System.Windows.Forms.Button();
- this.label2 = new System.Windows.Forms.Label();
- this.label1 = new System.Windows.Forms.Label();
- this.serverIp = new System.Windows.Forms.TextBox();
- this.portNumber = new System.Windows.Forms.NumericUpDown();
- ((System.ComponentModel.ISupportInitialize)(this.portNumber)).BeginInit();
- this.SuspendLayout();
- //
- // joinServer
- //
- this.joinServer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.joinServer.Location = new System.Drawing.Point(10, 34);
- this.joinServer.Name = "joinServer";
- this.joinServer.Size = new System.Drawing.Size(576, 31);
- this.joinServer.TabIndex = 0;
- this.joinServer.Text = "Join Server";
- this.joinServer.UseVisualStyleBackColor = true;
- this.joinServer.Click += new System.EventHandler(this.joinServer_Click);
- //
- // label2
- //
- this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(12, 9);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(55, 15);
- this.label2.TabIndex = 3;
- this.label2.Text = "Server IP:";
- //
- // label1
- //
- this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(389, 9);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(73, 15);
- this.label1.TabIndex = 4;
- this.label1.Text = "Server PORT:";
- //
- // severIp
- //
- this.serverIp.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.serverIp.Location = new System.Drawing.Point(73, 6);
- this.serverIp.Name = "severIp";
- this.serverIp.Size = new System.Drawing.Size(310, 23);
- this.serverIp.TabIndex = 5;
- this.serverIp.Text = "game.islehorse.com";
- //
- // portNumber
- //
- this.portNumber.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.portNumber.Location = new System.Drawing.Point(468, 6);
- this.portNumber.Maximum = new decimal(new int[] {
- 65565,
- 0,
- 0,
- 0});
- this.portNumber.Name = "portNumber";
- this.portNumber.Size = new System.Drawing.Size(120, 23);
- this.portNumber.TabIndex = 6;
- this.portNumber.Value = new decimal(new int[] {
- 12321,
- 0,
- 0,
- 0});
- //
- // ServerSelection
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(598, 77);
- this.Controls.Add(this.portNumber);
- this.Controls.Add(this.serverIp);
- this.Controls.Add(this.label1);
- this.Controls.Add(this.label2);
- this.Controls.Add(this.joinServer);
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.MinimumSize = new System.Drawing.Size(614, 116);
- this.Name = "ServerSelection";
- this.Text = "Server Selection";
- ((System.ComponentModel.ISupportInitialize)(this.portNumber)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private System.Windows.Forms.Button joinServer;
- private System.Windows.Forms.Label label2;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.TextBox serverIp;
- private System.Windows.Forms.NumericUpDown portNumber;
- }
-}
\ No newline at end of file
diff --git a/HorseIsleServer/N00BS/ServerSelection.cs b/HorseIsleServer/N00BS/ServerSelection.cs
deleted file mode 100644
index ac907ed..0000000
--- a/HorseIsleServer/N00BS/ServerSelection.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using HISP.Noobs;
-using System;
-using System.Diagnostics;
-using System.Windows.Forms;
-
-namespace HISP
-{
- public partial class ServerSelection : Form
- {
- public ServerSelection()
- {
- InitializeComponent();
- }
-
-
- public void clientExited(object sender, EventArgs e)
- {
- if (this.InvokeRequired)
- {
- this.Invoke(() =>
- {
- this.Close();
- });
- }
- else
- {
- this.Close();
- }
- }
- public void joinServer_Click(object sender, EventArgs e)
- {
- this.Hide();
- Process clientProcess = new Process();
- clientProcess.StartInfo.FileName = "flash.dll";
- clientProcess.StartInfo.Arguments = "http://127.0.0.1/horseisle.swf?SERVER=" + serverIp.Text + "&PORT=" + portNumber.Value.ToString();
-
- clientProcess.StartInfo.RedirectStandardOutput = true;
- clientProcess.StartInfo.RedirectStandardError = true;
-
- clientProcess.EnableRaisingEvents = true;
- clientProcess.Exited += clientExited;
- clientProcess.Start();
- clientProcess.WaitForExit();
- }
- }
-}
diff --git a/HorseIsleServer/N00BS/ServerSelection.resx b/HorseIsleServer/N00BS/ServerSelection.resx
deleted file mode 100644
index 2fb02c8..0000000
--- a/HorseIsleServer/N00BS/ServerSelection.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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
deleted file mode 100644
index 172990e..0000000
--- a/HorseIsleServer/N00BS/SystemTrayIcon.Designer.cs
+++ /dev/null
@@ -1,244 +0,0 @@
-namespace HISP.Noobs
-{
- 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(178, 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(178, 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";
- this.editServerPropertiesToolStripMenuItem.Click += new System.EventHandler(this.editServerPropertiesToolStripMenuItem_Click);
- //
- // openServerFolderToolStripMenuItem
- //
- this.openServerFolderToolStripMenuItem.Name = "openServerFolderToolStripMenuItem";
- this.openServerFolderToolStripMenuItem.Size = new System.Drawing.Size(184, 22);
- this.openServerFolderToolStripMenuItem.Text = "Open server folder";
- this.openServerFolderToolStripMenuItem.Click += new System.EventHandler(this.openServerFolderToolStripMenuItem_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;
- 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
deleted file mode 100644
index 1636f38..0000000
--- a/HorseIsleServer/N00BS/SystemTrayIcon.cs
+++ /dev/null
@@ -1,174 +0,0 @@
-using HISP.Server;
-using System;
-using System.Diagnostics;
-using System.IO;
-using System.Windows.Forms;
-
-namespace HISP.Noobs
-{
- public partial class SystemTrayIcon : Form
- {
- Process clientProcess = new Process();
-
- public SystemTrayIcon()
- {
- InitializeComponent();
- disableSwearFilterToolStripMenuItem.Checked = !ConfigReader.EnableSwearFilter;
- disableCorrectionsToolStripMenuItem.Checked = !ConfigReader.EnableCorrections;
- disableNonvioChecksToolStripMenuItem.Checked = !ConfigReader.EnableNonViolations;
- disableSpamFilterToolStripMenuItem.Checked = !ConfigReader.EnableSpamFilter;
-
- allUsersSubscribedToolStripMenuItem.Checked = ConfigReader.AllUsersSubbed;
- fixOfficalBugsToolStripMenuItem.Checked = ConfigReader.FixOfficalBugs;
- }
-
- private void createNewUserToolStripMenuItem_Click(object sender, EventArgs e)
- {
- RegisterForm frm = new RegisterForm();
- frm.ShowDialog();
- }
-
- private void closeServerToolStripMenuItem_Click(object sender, EventArgs e)
- {
- this.Close();
- }
-
- private void SystemTrayIcon_Load(object sender, EventArgs e)
- {
- clientProcess.StartInfo.FileName = "flash.dll";
-
- string serverIp = ConfigReader.BindIP;
- if (serverIp == "0.0.0.0")
- serverIp = "127.0.0.1";
-
- clientProcess.StartInfo.Arguments = "http://127.0.0.1/horseisle.swf?SERVER=" + serverIp + "&PORT=" + ConfigReader.Port;
-
- clientProcess.StartInfo.RedirectStandardOutput = true;
- clientProcess.StartInfo.RedirectStandardError = true;
-
- clientProcess.EnableRaisingEvents = true;
- clientProcess.Exited += clientExited;
- clientProcess.Start();
-
- }
-
- private void clientExited(object sender, EventArgs e)
- {
- if (this.InvokeRequired)
- {
- this.Invoke(() =>
- {
- this.Close();
- });
- }
- else
- {
- 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 = Path.Combine(Program.BaseDir, "server.properties");
- p.StartInfo.UseShellExecute = true;
- p.Start();
-
- }
-
- private void openServerFolderToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Process p = new Process();
- p.StartInfo.FileName = Program.BaseDir;
- p.StartInfo.UseShellExecute = true;
- 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.EnableSwearFilter = enab;
- }
-
- private void disableCorrectionsToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
- {
- bool enab = !disableCorrectionsToolStripMenuItem.Checked;
- ModifyConfig("enable_corrections", enab.ToString().ToLowerInvariant());
- ConfigReader.EnableCorrections = enab;
- }
-
- private void disableNonvioChecksToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
- {
- bool enab = !disableNonvioChecksToolStripMenuItem.Checked;
- ModifyConfig("enable_non_violation_check", enab.ToString().ToLowerInvariant());
- ConfigReader.EnableNonViolations = 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
deleted file mode 100644
index 54769b7..0000000
--- a/HorseIsleServer/N00BS/SystemTrayIcon.resx
+++ /dev/null
@@ -1,135 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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
diff --git a/HorseIsleServer/N00BS/flash.dll b/HorseIsleServer/N00BS/flash.dll
deleted file mode 100644
index 6e7210d3bab3c909548f816f311355ca69733abb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 10182024
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
z