diff --git a/README.md b/README.md index c09e3fb..f258260 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,22 @@ # ShiftOS +[![Discord](https://discordapp.com/api/guilds/234414439330349056/widget.png?style=shield)] +(https://discord.gg/Kd8BJ93) + The official, open-source, C# revamp of ShiftOS by Michael VanOverbeek and the ShiftOS devs. + +## Repository status: + +AppVeyor build status: +[![Build status](https://ci.appveyor.com/api/projects/status/ktdv3nt6c3q88g2t?svg=true)](https://ci.appveyor.com/project/ComputeLinux/shiftos) + +## License + +We are licensed under the MIT license. All we ask is that you: + +1. Don't steal our code and call it yours +2. If you fork us, please leave any copyright statements and license info at the top of all .cs files. You can use the InsertLicense executable to insert the statement into any code files missing the copyright statement. + + +## Using our code for your own front-end project + +You may use the ShiftOS.Engine, ShiftOS.Objects, and ShiftOS.Server projects to create your own games. Just, please, include our original license and linkback to us in your game. After all, we spend a lot of time working on this! diff --git a/ShiftOS.MFSProfiler/Form1.Designer.cs b/ShiftOS.MFSProfiler/Main.Designer.cs similarity index 99% rename from ShiftOS.MFSProfiler/Form1.Designer.cs rename to ShiftOS.MFSProfiler/Main.Designer.cs index 2fbdb4a..85f1310 100644 --- a/ShiftOS.MFSProfiler/Form1.Designer.cs +++ b/ShiftOS.MFSProfiler/Main.Designer.cs @@ -24,7 +24,7 @@ namespace ShiftOS.MFSProfiler { - partial class Form1 + partial class Main { /// /// Required designer variable. diff --git a/ShiftOS.MFSProfiler/Form1.cs b/ShiftOS.MFSProfiler/Main.cs similarity index 98% rename from ShiftOS.MFSProfiler/Form1.cs rename to ShiftOS.MFSProfiler/Main.cs index 2262fa2..dbfe276 100644 --- a/ShiftOS.MFSProfiler/Form1.cs +++ b/ShiftOS.MFSProfiler/Main.cs @@ -39,9 +39,9 @@ using System.Threading; namespace ShiftOS.MFSProfiler { - public partial class Form1 : Form + public partial class Main : Form { - public Form1() + public Main() { InitializeComponent(); SetupTree(); diff --git a/ShiftOS.MFSProfiler/Form1.resx b/ShiftOS.MFSProfiler/Main.resx similarity index 100% rename from ShiftOS.MFSProfiler/Form1.resx rename to ShiftOS.MFSProfiler/Main.resx diff --git a/ShiftOS.MFSProfiler/Program.cs b/ShiftOS.MFSProfiler/Program.cs index ef34d38..b30e7eb 100644 --- a/ShiftOS.MFSProfiler/Program.cs +++ b/ShiftOS.MFSProfiler/Program.cs @@ -40,7 +40,7 @@ namespace ShiftOS.MFSProfiler { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); + Application.Run(new Main()); } } } diff --git a/ShiftOS.MFSProfiler/ShiftOS.MFSProfiler.csproj b/ShiftOS.MFSProfiler/ShiftOS.MFSProfiler.csproj index ce02df2..6e98065 100644 --- a/ShiftOS.MFSProfiler/ShiftOS.MFSProfiler.csproj +++ b/ShiftOS.MFSProfiler/ShiftOS.MFSProfiler.csproj @@ -46,16 +46,16 @@ - + Form - - Form1.cs + + Main.cs - - Form1.cs + + Main.cs ResXFileCodeGenerator diff --git a/ShiftOS.Objects/ClientSave.cs b/ShiftOS.Objects/ClientSave.cs new file mode 100644 index 0000000..08f7a09 --- /dev/null +++ b/ShiftOS.Objects/ClientSave.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ShiftOS.Objects +{ + public class ClientSave + { + public string Username { get; set; } + public string Password { get; set; } + } +} diff --git a/ShiftOS.Objects/Exploit.cs b/ShiftOS.Objects/Exploit.cs new file mode 100644 index 0000000..7b220f1 --- /dev/null +++ b/ShiftOS.Objects/Exploit.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ShiftOS.Objects +{ + public abstract class Exploit + { + public void BeginExploit(string remote_user, bool isMud) + { + var ctx = new ExploitContext(); + SendToMUD(remote_user, "hack_getcontext"); + MessageReceived += (u, c, j) => + { + + }; + ThisContext = ctx; + } + + public ExploitContext ThisContext { get; internal set; } + + public virtual void SendToMUD(string target_user, string command, string json = "") + { + ThisContext.IsMUDHack = false; + if (command == "hack_getcontext") + { + MessageReceived?.Invoke(target_user, "context_info", ExploitContext.CreateRandom()); + } + } + + public event MUDMessageEventHandler MessageReceived; + + + public abstract void OnRun(ExploitContext ctx); + } +} diff --git a/ShiftOS.Objects/ExploitContext.cs b/ShiftOS.Objects/ExploitContext.cs new file mode 100644 index 0000000..5d8f378 --- /dev/null +++ b/ShiftOS.Objects/ExploitContext.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ShiftOS.Objects +{ + public class ExploitContext + { + public static string CreateRandom() + { + //We can't use JSON.NET. We must construct the JSON ourselves. + StringBuilder jBuilder = new StringBuilder(); + jBuilder.AppendLine("{"); + jBuilder.Append("\tIsMUDHack: \"false\","); + + jBuilder.AppendLine("}"); + return jBuilder.ToString(); + } + + /// + /// Gets or sets whether or not this exploit context belongs to a MUD hack session. + /// + public bool IsMUDHack { get; set; } + + /// + /// Gets or sets the target username for this exploit context. Used for talking with the MUD about it. + /// + public string TargetUsername { get; set; } + + /// + /// Gets or sets the target's locks. + /// + public List TargetLocks { get; set; } + + } +} diff --git a/ShiftOS.Objects/Hack.cs b/ShiftOS.Objects/Hack.cs index 0884a53..c1791ec 100644 --- a/ShiftOS.Objects/Hack.cs +++ b/ShiftOS.Objects/Hack.cs @@ -30,67 +30,11 @@ using System.Threading.Tasks; namespace ShiftOS.Objects { - public abstract class Exploit - { - public void BeginExploit(string remote_user, bool isMud) - { - var ctx = new ExploitContext(); - SendToMUD(remote_user, "hack_getcontext"); - MessageReceived += (u, c, j) => - { - - }; - ThisContext = ctx; - } - - public ExploitContext ThisContext { get; internal set; } - - public virtual void SendToMUD(string target_user, string command, string json = "") - { - ThisContext.IsMUDHack = false; - if (command == "hack_getcontext") - { - MessageReceived?.Invoke(target_user, "context_info", ExploitContext.CreateRandom()); - } - } - - public event MUDMessageEventHandler MessageReceived; - - - public abstract void OnRun(ExploitContext ctx); - } + public delegate void MUDMessageEventHandler(string target_user, string command, string json); - public class ExploitContext - { - public static string CreateRandom() - { - //We can't use JSON.NET. We must construct the JSON ourselves. - StringBuilder jBuilder = new StringBuilder(); - jBuilder.AppendLine("{"); - jBuilder.Append("\tIsMUDHack: \"false\","); - - jBuilder.AppendLine("}"); - return jBuilder.ToString(); - } - - /// - /// Gets or sets whether or not this exploit context belongs to a MUD hack session. - /// - public bool IsMUDHack { get; set; } - - /// - /// Gets or sets the target username for this exploit context. Used for talking with the MUD about it. - /// - public string TargetUsername { get; set; } - - /// - /// Gets or sets the target's locks. - /// - public List TargetLocks { get; set; } - - } + public abstract class Lock { diff --git a/ShiftOS.Objects/Legion.cs b/ShiftOS.Objects/Legion.cs new file mode 100644 index 0000000..0bd4d37 --- /dev/null +++ b/ShiftOS.Objects/Legion.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ShiftOS.Objects +{ + public enum LegionRole + { + Admin, + Manager, + Committed, + Trainee, + AwaitingInvite + } + + public enum LegionPublicity + { + Public, //Will display on the 'Join Legion' page, anyone can join + PublicInviteOnly, //Will display on the 'Join Legion' page but you must be invited + Unlisted, //Won't display on 'Join Legion', but anyone can join + UnlistedInviteOnly //Won't display in 'Join Legion', and admin/manager invitation is required. + } + + public class Legion + { + public string Name { get; set; } + public LegionPublicity Publicity { get; set; } + public ConsoleColor BannerColor { get; set; } + public string Description { get; set; } + public string ShortName { get; set; } + + public Dictionary Roles { get; set; } + public Dictionary RoleNames { get; set; } + + + } +} diff --git a/ShiftOS.Objects/Objects.cs b/ShiftOS.Objects/Objects.cs index 4c1abcc..bcd476f 100644 --- a/ShiftOS.Objects/Objects.cs +++ b/ShiftOS.Objects/Objects.cs @@ -30,37 +30,6 @@ using System.Threading.Tasks; namespace ShiftOS.Objects { - public enum LegionRole - { - Admin, - Manager, - Committed, - Trainee, - AwaitingInvite - } - - public enum LegionPublicity - { - Public, //Will display on the 'Join Legion' page, anyone can join - PublicInviteOnly, //Will display on the 'Join Legion' page but you must be invited - Unlisted, //Won't display on 'Join Legion', but anyone can join - UnlistedInviteOnly //Won't display in 'Join Legion', and admin/manager invitation is required. - } - - public class Legion - { - public string Name { get; set; } - public LegionPublicity Publicity { get; set; } - public ConsoleColor BannerColor { get; set; } - public string Description { get; set; } - public string ShortName { get; set; } - - public Dictionary Roles { get; set; } - public Dictionary RoleNames { get; set; } - - - } - public class MUDMemo { public string UserFrom { get; set; } @@ -70,12 +39,6 @@ namespace ShiftOS.Objects public string Subject { get; set; } } - public class ClientSave - { - public string Username { get; set; } - public string Password { get; set; } - } - public enum MemoType { Regular, @@ -121,45 +84,4 @@ namespace ShiftOS.Objects public string Contents { get; set; } public string GUID { get; set; } } - - //Better to store this stuff server-side so we can do some neat stuff with hacking... - public class Save - { - public string Username { get; set; } - public int Codepoints { get; set; } - public Dictionary Upgrades { get; set; } - public int StoryPosition { get; set; } - public string Language { get; set; } - - public List CurrentLegions { get; set; } - - public int MajorVersion { get; set; } - public int MinorVersion { get; set; } - public int Revision { get; set; } - - public string Password { get; set; } - public string SystemName { get; set; } - - public string DiscourseName { get; set; } - - /// - /// If the user has entered their Discourse account into ShiftOS, this is the password they gave. - /// - /// ANY developer caught abusing this property will have their dev status revoked and their account PERMANENTLY SUSPENDED. - Michael - /// - public string DiscoursePass { get; set; } - - - public int CountUpgrades() - { - int count = 0; - foreach (var upg in Upgrades) - { - if (upg.Value == true) - count++; - } - return count; - } - } - } diff --git a/ShiftOS.Objects/Save.cs b/ShiftOS.Objects/Save.cs new file mode 100644 index 0000000..ff4bf53 --- /dev/null +++ b/ShiftOS.Objects/Save.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ShiftOS.Objects +{ + //Better to store this stuff server-side so we can do some neat stuff with hacking... + public class Save + { + public string Username { get; set; } + public int Codepoints { get; set; } + public Dictionary Upgrades { get; set; } + public int StoryPosition { get; set; } + public string Language { get; set; } + + public List CurrentLegions { get; set; } + + public int MajorVersion { get; set; } + public int MinorVersion { get; set; } + public int Revision { get; set; } + + public string Password { get; set; } + public string SystemName { get; set; } + + public string DiscourseName { get; set; } + + /// + /// If the user has entered their Discourse account into ShiftOS, this is the password they gave. + /// + /// ANY developer caught abusing this property will have their dev status revoked and their account PERMANENTLY SUSPENDED. - Michael + /// + public string DiscoursePass { get; set; } + + + public int CountUpgrades() + { + int count = 0; + foreach (var upg in Upgrades) + { + if (upg.Value == true) + count++; + } + return count; + } + } +} diff --git a/ShiftOS.Objects/ShiftOS.Objects.csproj b/ShiftOS.Objects/ShiftOS.Objects.csproj index 84d7ea8..adbe161 100644 --- a/ShiftOS.Objects/ShiftOS.Objects.csproj +++ b/ShiftOS.Objects/ShiftOS.Objects.csproj @@ -54,10 +54,15 @@ + + + + + diff --git a/ShiftOS.Server/Properties/Resources.resx b/ShiftOS.Server/Properties/Resources.resx index cd10c06..dacce92 100644 --- a/ShiftOS.Server/Properties/Resources.resx +++ b/ShiftOS.Server/Properties/Resources.resx @@ -119,9 +119,9 @@ - ..\Resources\Home.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 + ..\Resources\index.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 - ..\Resources\NotFound.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 + ..\Resources\404.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 - \ No newline at end of file + diff --git a/ShiftOS.Server/Resources/NotFound.txt b/ShiftOS.Server/Resources/404.html similarity index 71% rename from ShiftOS.Server/Resources/NotFound.txt rename to ShiftOS.Server/Resources/404.html index cd65829..8f998fc 100644 --- a/ShiftOS.Server/Resources/NotFound.txt +++ b/ShiftOS.Server/Resources/404.html @@ -1,9 +1,11 @@ - + +

This page wasn't found.

We couldn't find this page...

- \ No newline at end of file + diff --git a/ShiftOS.Server/Resources/Home.txt b/ShiftOS.Server/Resources/index.html similarity index 65% rename from ShiftOS.Server/Resources/Home.txt rename to ShiftOS.Server/Resources/index.html index 41c8995..27fa97c 100644 --- a/ShiftOS.Server/Resources/Home.txt +++ b/ShiftOS.Server/Resources/index.html @@ -1,17 +1,16 @@ - + + ShiftOS Multi-User Domain • Admin Panel - - - - + + +
- {BODY} -

MUD server on {IP_ADDR}:{PORT}

- \ No newline at end of file + diff --git a/ShiftOS.WinForms/Applications/Chat.Designer.cs b/ShiftOS.WinForms/Applications/Chat.Designer.cs index d2284f2..f2c0a70 100644 --- a/ShiftOS.WinForms/Applications/Chat.Designer.cs +++ b/ShiftOS.WinForms/Applications/Chat.Designer.cs @@ -93,7 +93,7 @@ namespace ShiftOS.WinForms.Applications this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.panel1); this.Name = "Chat"; - this.Text = "Chat"; + this.Text = "{CHAT_NAME}"; this.Size = new System.Drawing.Size(633, 318); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); diff --git a/ShiftOS.WinForms/Applications/ColorPicker.Designer.cs b/ShiftOS.WinForms/Applications/ColorPicker.Designer.cs index 487dd4b..9f0abf0 100644 --- a/ShiftOS.WinForms/Applications/ColorPicker.Designer.cs +++ b/ShiftOS.WinForms/Applications/ColorPicker.Designer.cs @@ -3266,7 +3266,7 @@ namespace ShiftOS.WinForms.Applications this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.pgcontents); this.Name = "ColorPicker"; - this.Text = "Color Picker"; + this.Text = "{COLOR_PICKER_NAME}"; this.Size = new System.Drawing.Size(552, 657); this.Load += new System.EventHandler(this.Color_Picker_Load); this.pgcontents.ResumeLayout(false); diff --git a/ShiftOS.WinForms/Applications/Dialog.Designer.cs b/ShiftOS.WinForms/Applications/Dialog.Designer.cs index 41619ea..7f9a9b2 100644 --- a/ShiftOS.WinForms/Applications/Dialog.Designer.cs +++ b/ShiftOS.WinForms/Applications/Dialog.Designer.cs @@ -54,7 +54,7 @@ namespace ShiftOS.WinForms.Applications { this.components = new System.ComponentModel.Container(); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Text = "Dialog"; + this.Text = "{DIALOG_NAME}"; } #endregion diff --git a/ShiftOS.WinForms/Applications/FileDialog.Designer.cs b/ShiftOS.WinForms/Applications/FileDialog.Designer.cs index f43d473..467e0c0 100644 --- a/ShiftOS.WinForms/Applications/FileDialog.Designer.cs +++ b/ShiftOS.WinForms/Applications/FileDialog.Designer.cs @@ -149,7 +149,7 @@ namespace ShiftOS.WinForms.Applications this.ClientSize = new System.Drawing.Size(634, 369); this.Controls.Add(this.panel1); this.Name = "FileDialog"; - this.Text = "File Dialog"; + this.Text = "{FILE_DIALOG_NAME}"; this.panel1.ResumeLayout(false); this.pnlfiletype.ResumeLayout(false); this.pnlfiletype.PerformLayout(); diff --git a/ShiftOS.WinForms/Applications/FileSkimmer.Designer.cs b/ShiftOS.WinForms/Applications/FileSkimmer.Designer.cs index 7067387..df31977 100644 --- a/ShiftOS.WinForms/Applications/FileSkimmer.Designer.cs +++ b/ShiftOS.WinForms/Applications/FileSkimmer.Designer.cs @@ -94,7 +94,7 @@ namespace ShiftOS.WinForms.Applications this.ClientSize = new System.Drawing.Size(634, 369); this.Controls.Add(this.panel1); this.Name = "FileSkimmer"; - this.Text = "File Skimmer"; + this.Text = "{FILE_SKIMMER_NAME}"; this.Load += new System.EventHandler(this.FileSkimmer_Load); this.panel1.ResumeLayout(false); this.ResumeLayout(false); diff --git a/ShiftOS.WinForms/Applications/GraphicPicker.Designer.cs b/ShiftOS.WinForms/Applications/GraphicPicker.Designer.cs index 04ee3d2..988acbd 100644 --- a/ShiftOS.WinForms/Applications/GraphicPicker.Designer.cs +++ b/ShiftOS.WinForms/Applications/GraphicPicker.Designer.cs @@ -252,7 +252,7 @@ namespace ShiftOS.WinForms.Applications this.ClientSize = new System.Drawing.Size(390, 383); this.Controls.Add(this.pgcontents); this.Name = "GraphicPicker"; - this.Text = "Graphic Picker"; + this.Text = "{GRAPHIC_PICKER_NAME}"; this.Load += new System.EventHandler(this.Graphic_Picker_Load); this.pgcontents.ResumeLayout(false); this.pgcontents.PerformLayout(); diff --git a/ShiftOS.WinForms/Applications/MUDAuthenticator.Designer.cs b/ShiftOS.WinForms/Applications/MUDAuthenticator.Designer.cs index 7e8a451..154cfe4 100644 --- a/ShiftOS.WinForms/Applications/MUDAuthenticator.Designer.cs +++ b/ShiftOS.WinForms/Applications/MUDAuthenticator.Designer.cs @@ -206,7 +206,7 @@ namespace ShiftOS.WinForms.Applications this.ClientSize = new System.Drawing.Size(622, 430); this.Controls.Add(this.panel1); this.Name = "MUDAuthenticator"; - this.Text = "Multi-User Domain Admin Panel"; + this.Text = "{MUD_AUTHENTICATOR_NAME}"; this.panel1.ResumeLayout(false); this.pnlmain.ResumeLayout(false); this.pnlusers.ResumeLayout(false); diff --git a/ShiftOS.WinForms/Applications/MUDControlCentre.Designer.cs b/ShiftOS.WinForms/Applications/MUDControlCentre.Designer.cs index 8938c27..2843fc0 100644 --- a/ShiftOS.WinForms/Applications/MUDControlCentre.Designer.cs +++ b/ShiftOS.WinForms/Applications/MUDControlCentre.Designer.cs @@ -748,6 +748,7 @@ namespace ShiftOS.WinForms.Applications this.Controls.Add(this.toolStripContainer1); this.ForeColor = System.Drawing.Color.White; this.Name = "MUDControlCentre"; + this.Text = "{MUD_CONTROL_CENTRE_NAME}"; this.Size = new System.Drawing.Size(756, 488); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); diff --git a/ShiftOS.WinForms/Applications/Shifter.Designer.cs b/ShiftOS.WinForms/Applications/Shifter.Designer.cs index a5ea55b..44045b5 100644 --- a/ShiftOS.WinForms/Applications/Shifter.Designer.cs +++ b/ShiftOS.WinForms/Applications/Shifter.Designer.cs @@ -162,7 +162,7 @@ namespace ShiftOS.WinForms.Applications this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.panel1); this.Name = "Shifter"; - this.Text = "Shifter"; + this.Text = "{SHIFTER_NAME}"; this.Size = new System.Drawing.Size(893, 539); this.Load += new System.EventHandler(this.Shifter_Load); this.panel1.ResumeLayout(false); diff --git a/ShiftOS.WinForms/Applications/ShiftoriumFrontend.cs b/ShiftOS.WinForms/Applications/ShiftoriumFrontend.cs index 74e6482..bb6d93e 100644 --- a/ShiftOS.WinForms/Applications/ShiftoriumFrontend.cs +++ b/ShiftOS.WinForms/Applications/ShiftoriumFrontend.cs @@ -85,6 +85,7 @@ namespace ShiftOS.WinForms.Applications lbupgrades.Items.Clear(); upgrades.Clear(); Timer(); + label2.Text = "You have: " + SaveSystem.CurrentSave.Codepoints.ToString() + " Codepoints"; foreach (var upg in backend.GetAvailable()) { diff --git a/ShiftOS.WinForms/Applications/Skin Loader.Designer.cs b/ShiftOS.WinForms/Applications/Skin Loader.Designer.cs index 62a5bc1..ef5be7e 100644 --- a/ShiftOS.WinForms/Applications/Skin Loader.Designer.cs +++ b/ShiftOS.WinForms/Applications/Skin Loader.Designer.cs @@ -426,7 +426,7 @@ namespace ShiftOS.WinForms.Applications this.Controls.Add(this.pnlborder); this.Controls.Add(this.pnldesktop); this.Name = "Skin_Loader"; - this.Text = "Skin Loader"; + this.Text = "{SKIN_LOADER_NAME}"; this.pnldesktop.ResumeLayout(false); this.pnlborder.ResumeLayout(false); this.flbuttons.ResumeLayout(false); diff --git a/ShiftOS.WinForms/Applications/VirusScanner.Designer.cs b/ShiftOS.WinForms/Applications/VirusScanner.Designer.cs index 54c8c63..3d6088d 100644 --- a/ShiftOS.WinForms/Applications/VirusScanner.Designer.cs +++ b/ShiftOS.WinForms/Applications/VirusScanner.Designer.cs @@ -199,7 +199,7 @@ namespace ShiftOS.WinForms.Applications this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.pgcontents); this.Name = "VirusScanner"; - this.Text = "Virus Scanner"; + this.Text = "{VIRUS_SCANNER_NAME}"; this.Size = new System.Drawing.Size(565, 343); this.Load += new System.EventHandler(this.VirusScanner_Load); this.grpresults.ResumeLayout(false); diff --git a/ShiftOS.WinForms/Resources/strings_de.txt b/ShiftOS.WinForms/Resources/strings_de.txt index 3cd11e4..5661c45 100644 --- a/ShiftOS.WinForms/Resources/strings_de.txt +++ b/ShiftOS.WinForms/Resources/strings_de.txt @@ -224,4 +224,17 @@ Wenn eine Systemdatei von dem Virenscanner erkannt wird, wird sie ersetzt.", "{WAV_PLAYER_NAME}":"WAV Player", "{SHIFTORIUM_NAME}":"Shiftorium", "{TEXTPAD_NAME}":"TextPad", + "{VIRUS_SCANNER_NAME}":"Virus Scanner", + "{SKIN_LOADER_NAME}":"Skin Loader", + "{SHIFTER_NAME}":"Shifter", + "{NAME_CHANGER_NAME}":"Name Changer", + "{MUD_PASSWORD_CRACKER_NAME}":"Multi-User Domain Password Cracker v1.0", + "{MUD_CONTROL_CENTRE_NAME}":"MUD Control Centre", + "{MUD_AUTHENTICATOR_NAME}":"Multi-User Domain Admin Panel", + "{GRAPHIC_PICKER_NAME}":"Graphic Picker", + "{FILE_SKIMMER_NAME}":"File Skimmer", + "{FILE_DIALOG_NAME}":"File Dialog", + "{DIALOG_NAME}":"Dialog", + "{COLOR_PICKER_NAME}":"Color Picker", + "{CHAT_NAME}":"Chat", } \ No newline at end of file diff --git a/ShiftOS.WinForms/Resources/strings_en.txt b/ShiftOS.WinForms/Resources/strings_en.txt index 267724a..032a554 100644 --- a/ShiftOS.WinForms/Resources/strings_en.txt +++ b/ShiftOS.WinForms/Resources/strings_en.txt @@ -223,4 +223,17 @@ If a system file is deleted by the virus scanner, it will be replaced.", "{WAV_PLAYER_NAME}":"WAV Player", "{SHIFTORIUM_NAME}":"Shiftorium", "{TEXTPAD_NAME}":"TextPad", + "{VIRUS_SCANNER_NAME}":"Virus Scanner", + "{SKIN_LOADER_NAME}":"Skin Loader", + "{SHIFTER_NAME}":"Shifter", + "{NAME_CHANGER_NAME}":"Name Changer", + "{MUD_PASSWORD_CRACKER_NAME}":"Multi-User Domain Password Cracker v1.0", + "{MUD_CONTROL_CENTRE_NAME}":"MUD Control Centre", + "{MUD_AUTHENTICATOR_NAME}":"Multi-User Domain Admin Panel", + "{GRAPHIC_PICKER_NAME}":"Graphic Picker", + "{FILE_SKIMMER_NAME}":"File Skimmer", + "{FILE_DIALOG_NAME}":"File Dialog", + "{DIALOG_NAME}":"Dialog", + "{COLOR_PICKER_NAME}":"Color Picker", + "{CHAT_NAME}":"Chat", } \ No newline at end of file diff --git a/ShiftOS_TheReturn/Commands.cs b/ShiftOS_TheReturn/Commands.cs index d2bfbfd..4571387 100644 --- a/ShiftOS_TheReturn/Commands.cs +++ b/ShiftOS_TheReturn/Commands.cs @@ -169,6 +169,13 @@ namespace ShiftOS.Engine { AppearanceManager.ConsoleOut.Clear(); return true; } + + [Command("echo")] + [RequiresArgument("text")] + public static bool Echo(Dictionary args) { + Console.WriteLine(args["text"]); + return true; + } } #if DEVEL diff --git a/ShiftOS_TheReturn/Infobox.cs b/ShiftOS_TheReturn/Infobox.cs index e45ac69..4e7a87b 100644 --- a/ShiftOS_TheReturn/Infobox.cs +++ b/ShiftOS_TheReturn/Infobox.cs @@ -36,25 +36,41 @@ namespace ShiftOS.Engine { public class Infobox { + // Set the infobox's interface to null private static IInfobox _infobox = null; - + + /// + /// Creates a new infobox + /// + /// Infobox title + /// Infobox message [Obsolete("Please use Infobox.Show instead.")] public Infobox(string title, string message) { Infobox.Show(title, message); } - + + /// + /// Shows an infobox + /// + /// Infobox title + /// Infobox message public static void Show(string title, string message) { _infobox.Open(title, message); } - + + /// + /// Inits an infobox + /// + /// Interface for infobox public static void Init(IInfobox info) { _infobox = info; } } - + + // Infobox Interface public interface IInfobox { void Open(string title, string msg);