diff options
| -rw-r--r-- | ShiftOS.Server/Program.cs | 6 | ||||
| -rw-r--r-- | ShiftOS.Server/SaveManager.cs | 15 | ||||
| -rw-r--r-- | ShiftOS.WinForms/Resources/Shiftorium.txt | 3 | ||||
| -rw-r--r-- | ShiftOS_TheReturn/UserManagementCommands.cs | 238 |
4 files changed, 24 insertions, 238 deletions
diff --git a/ShiftOS.Server/Program.cs b/ShiftOS.Server/Program.cs index 75af56f..c880321 100644 --- a/ShiftOS.Server/Program.cs +++ b/ShiftOS.Server/Program.cs @@ -86,6 +86,12 @@ namespace ShiftOS.Server /// <param name="args">The command-line arguments.</param> public static void Main(string[] args) { + Thread.Sleep(2000); + AppDomain.CurrentDomain.UnhandledException += (o, a) => + { + System.Diagnostics.Process.Start("ShiftOS.Server.exe"); + Environment.Exit(0); + }; UserConfig.Get(); System.Timers.Timer tmr = new System.Timers.Timer(5000); tmr.Elapsed += (o, a) => diff --git a/ShiftOS.Server/SaveManager.cs b/ShiftOS.Server/SaveManager.cs index d81a1a7..acf28a5 100644 --- a/ShiftOS.Server/SaveManager.cs +++ b/ShiftOS.Server/SaveManager.cs @@ -216,6 +216,21 @@ namespace ShiftOS.Server WriteEncFile(savefile, JsonConvert.SerializeObject(save)); } + try + { + var wr = System.Net.HttpWebRequest.Create("http://getshiftos.ml/API/GetCodepoints"); + wr.Headers.Add("Authentication: Token " + save.UniteAuthToken); + var response = wr.GetResponse(); + using (var rstr = response.GetResponseStream()) + { + using (var sreader = new StreamReader(rstr)) + { + long cp = Convert.ToInt64(sreader.ReadToEnd()); + save.Codepoints = cp; + } + } + } + catch { } Program.server.DispatchTo(new Guid(guid), new NetObject("mud_savefile", new ServerMessage { diff --git a/ShiftOS.WinForms/Resources/Shiftorium.txt b/ShiftOS.WinForms/Resources/Shiftorium.txt index cc68c6f..4bd2e8d 100644 --- a/ShiftOS.WinForms/Resources/Shiftorium.txt +++ b/ShiftOS.WinForms/Resources/Shiftorium.txt @@ -8,6 +8,8 @@ Category: "Enhancements", }, { +<<<<<<< HEAD +======= Name: "Shift Progress Bar", Cost: 150, Description: "Want to customize the look of all ShiftOS Progress Bars? Buy this upgrade today and you'll get the ability to set the foreground and background color of the progress bar, and many more things!.", @@ -22,6 +24,7 @@ Category: "Customization" }, { +>>>>>>> 9999324bd7751f536741c108322766421dae1a52 Name: "GUI Based Login Screen", Cost: 500, Description: "Tired of using the text-based login screen in ShiftOS? Well, we have a functioning window manager, and a functioning desktop, why not use these tools to create a functioning and awesome-looking login screen?", diff --git a/ShiftOS_TheReturn/UserManagementCommands.cs b/ShiftOS_TheReturn/UserManagementCommands.cs deleted file mode 100644 index a64c99c..0000000 --- a/ShiftOS_TheReturn/UserManagementCommands.cs +++ /dev/null @@ -1,238 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using ShiftOS.Objects; - -namespace ShiftOS.Engine -{ - /// <summary> - /// Administrative user management terminal commands. - /// </summary> - [Namespace("admin")] - [KernelMode] - [RequiresUpgrade("mud_fundamentals")] - public static class AdminUserManagementCommands - { - /// <summary> - /// Add a user to the system. - /// </summary> - /// <param name="args">Command arguments.</param> - /// <returns>Command result.</returns> - [Command("add", description = "Add a user to the system.", usage ="name:")] - [RequiresArgument("name")] - public static bool AddUser(Dictionary<string, object> args) - { - string name = args["name"].ToString(); - if(SaveSystem.CurrentSave.Users.FirstOrDefault(x=>x.Username==name) != null) - { - Console.WriteLine("Error: User already exists."); - return true; - } - - var user = new ClientSave - { - Username = name, - Password = "", - Permissions = UserPermissions.User - }; - SaveSystem.CurrentSave.Users.Add(user); - Console.WriteLine($"Creating new user \"{name}\" with no password and User permissions."); - SaveSystem.SaveGame(); - return true; - } - - /// <summary> - /// Remove a user from the system. - /// </summary> - /// <param name="args">Command arguments.</param> - /// <returns>Command result.</returns> - - [Command("remove", description = "Remove a user from the system.", usage = "name:")] - [RequiresArgument("name")] - public static bool RemoveUser(Dictionary<string, object> args) - { - string name = args["name"].ToString(); - if (SaveSystem.CurrentSave.Users.FirstOrDefault(x => x.Username == name) == null) - { - Console.WriteLine("Error: User doesn't exist."); - return true; - } - - var user = SaveSystem.CurrentSave.Users.FirstOrDefault(x => x.Username == name); - if(user.Username != SaveSystem.CurrentUser.Username) - { - Console.WriteLine("Error: Cannot remove yourself."); - return true; - } - SaveSystem.CurrentSave.Users.Remove(user); - Console.WriteLine($"Removing user \"{name}\" from system..."); - SaveSystem.SaveGame(); - return true; - } - - - - /// <summary> - /// Set access control level for a user. - /// </summary> - /// <param name="args">Command arguments.</param> - /// <returns>Command result.</returns> - - [Command("set_acl")] - [RequiresArgument("user")] - [RequiresArgument("val")] - public static bool SetUserPermission(Dictionary<string, object> args) - { - int permission = 0; - string username = args["user"].ToString(); - try - { - permission = Convert.ToInt32(args["val"].ToString()); - } - catch - { - Console.WriteLine("Error: Permission value must be an integer."); - return true; - } - - if(SaveSystem.CurrentSave.Users.FirstOrDefault(x=>x.Username==username) == null) - { - Console.WriteLine("Error: User not found."); - return true; - } - - UserPermissions uperm = UserPermissions.Guest; - - switch (permission) - { - case 0: - uperm = UserPermissions.Guest; - break; - case 1: - uperm = UserPermissions.User; - break; - case 2: - uperm = UserPermissions.Admin; - break; - case 3: - uperm = UserPermissions.Root; - break; - default: - Console.WriteLine("Permission value must be between 0 and 4."); - return true; - } - - //Permissions are backwards... oops... - if(uperm < SaveSystem.CurrentUser.Permissions) - { - Console.WriteLine("Error: Cannot set user permissions to values greater than your own!"); - return true; - } - - var oldperm = SaveSystem.Users.FirstOrDefault(x => x.Username == username).Permissions; - if (SaveSystem.CurrentUser.Permissions > oldperm) - { - Console.WriteLine("Error: Can't set the permission of this user. They have more rights than you."); - return true; - } - - SaveSystem.CurrentSave.Users.FirstOrDefault(x => x.Username == username).Permissions = uperm; - Console.WriteLine("User permissions updated."); - return true; - } - - /// <summary> - /// List all users in the system. - /// </summary> - /// <param name="args">Command arguments.</param> - /// <returns>Command result.</returns> - - [Command("users", description = "Get a list of all users on the system.")] - public static bool GetUsers() - { - foreach (var u in SaveSystem.CurrentSave.Users) - { - if (u.Username == SaveSystem.CurrentUser.Username) - { - ConsoleEx.ForegroundColor = ConsoleColor.Magenta; - ConsoleEx.Bold = true; - } - else - { - ConsoleEx.ForegroundColor = ConsoleColor.Gray; - ConsoleEx.Bold = false; - } - Console.WriteLine(u.Username); - } - return true; - } - } - - /// <summary> - /// Non-administrative user management terminal commands. - /// </summary> - [Namespace("user")] - [RequiresUpgrade("mud_fundamentals")] - public static class UserManagementCommands - { - /// <summary> - /// Log in as another user. - /// </summary> - /// <param name="args">Command arguments.</param> - /// <returns>Command result.</returns> - [Command("login", description = "Log in as another user.")] - [RequiresArgument("user")] - [RequiresArgument("pass")] - public static bool Login(Dictionary<string, object> args) - { - string user = args["user"].ToString(); - string pass = args["pass"].ToString(); - - var usr = SaveSystem.CurrentSave.Users.FirstOrDefault(x => x.Username == user); - if(usr==null) - { - Console.WriteLine("Error: No such user."); - return true; - } - - if (usr.Password != pass) - { - Console.WriteLine("Access denied."); - return true; - } - - SaveSystem.CurrentUser = usr; - Console.WriteLine("Access granted."); - return true; - } - - /// <summary> - /// Set the password for the current user. - /// </summary> - /// <param name="args">Command arguments.</param> - /// <returns>Command result.</returns> - [Command("setpass", description ="Allows you to set your password to a new value.", usage ="old:,new:")] - [RequiresArgument("old")] - [RequiresArgument("new")] - public static bool SetPassword(Dictionary<string, object> args) - { - string old = args["old"].ToString(); - string newpass = args["new"].ToString(); - - if(old == SaveSystem.CurrentUser.Password) - { - SaveSystem.CurrentUser.Password = newpass; - SaveSystem.CurrentSave.Users.FirstOrDefault(x => x.Username == SaveSystem.CurrentUser.Username).Password = newpass; - Console.WriteLine("Password set successfully."); - SaveSystem.SaveGame(); - } - else - { - Console.WriteLine("Passwords do not match."); - } - return true; - } - } -} |
