diff options
| author | pfg <[email protected]> | 2017-03-12 09:29:17 -0700 |
|---|---|---|
| committer | pfg <[email protected]> | 2017-03-12 09:29:17 -0700 |
| commit | 6460ccee378e15408768337dcdc1bc77da07da53 (patch) | |
| tree | f32e7a443d23492343fec0881115cbcad15f6324 /ShiftOS.WinForms/Applications/Terminal.cs | |
| parent | b20d77edd1227b2ce53b65b0752972bd65a36e84 (diff) | |
| download | shiftos_thereturn-6460ccee378e15408768337dcdc1bc77da07da53.tar.gz shiftos_thereturn-6460ccee378e15408768337dcdc1bc77da07da53.tar.bz2 shiftos_thereturn-6460ccee378e15408768337dcdc1bc77da07da53.zip | |
Custom Command Syntax
Diffstat (limited to 'ShiftOS.WinForms/Applications/Terminal.cs')
| -rw-r--r-- | ShiftOS.WinForms/Applications/Terminal.cs | 282 |
1 files changed, 99 insertions, 183 deletions
diff --git a/ShiftOS.WinForms/Applications/Terminal.cs b/ShiftOS.WinForms/Applications/Terminal.cs index 7bab213..9bd9f3c 100644 --- a/ShiftOS.WinForms/Applications/Terminal.cs +++ b/ShiftOS.WinForms/Applications/Terminal.cs @@ -44,13 +44,11 @@ using static ShiftOS.Engine.SkinEngine; using ShiftOS.Engine; using ShiftOS.Objects; -namespace ShiftOS.WinForms.Applications -{ +namespace ShiftOS.WinForms.Applications { [Launcher("Terminal", false, null, "Utilities")] [WinOpen("terminal")] [DefaultIcon("iconTerminal")] - public partial class Terminal : UserControl, IShiftOSWindow - { + public partial class Terminal : UserControl, IShiftOSWindow { public static Stack<string> ConsoleStack = new Stack<string>(); public static System.Windows.Forms.Timer ti = new System.Windows.Forms.Timer(); @@ -62,81 +60,63 @@ namespace ShiftOS.WinForms.Applications public static string RemoteGuid = ""; [Obsolete("This is used for compatibility with old parts of the backend. Please use TerminalBackend instead.")] - public static bool PrefixEnabled - { - get - { + public static bool PrefixEnabled { + get { return TerminalBackend.PrefixEnabled; } - set - { + set { TerminalBackend.PrefixEnabled = value; } } [Obsolete("This is used for compatibility with old parts of the backend. Please use TerminalBackend instead.")] - public static bool InStory - { - get - { + public static bool InStory { + get { return TerminalBackend.InStory; } - set - { + set { TerminalBackend.InStory = value; } } [Obsolete("This is used for compatibility with old parts of the backend. Please use TerminalBackend instead.")] - public static string LastCommand - { - get - { + public static string LastCommand { + get { return TerminalBackend.LastCommand; } - set - { + set { TerminalBackend.LastCommand = value; } } - public int TutorialProgress - { - get - { + public int TutorialProgress { + get { throw new NotImplementedException(); } - set - { + set { throw new NotImplementedException(); } } [Obsolete("This is used for compatibility with old parts of the backend. Please use TerminalBackend instead.")] - public static void InvokeCommand(string text) - { - + public static void InvokeCommand(string text) { + TerminalBackend.InvokeCommand(text); } - public Terminal() - { + public Terminal() { InitializeComponent(); - SaveSystem.GameReady += () => - { - try - { - this.Invoke(new Action(() => - { + SaveSystem.GameReady += () => { + try { + this.Invoke(new Action(() => { ResetAllKeywords(); rtbterm.Text = ""; TerminalBackend.PrefixEnabled = true; TerminalBackend.InStory = false; Console.Write($"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ "); - if (Shiftorium.UpgradeInstalled("wm_free_placement")) - { + if (Shiftorium.UpgradeInstalled("wm_free_placement")) { this.ParentForm.Width = 640; this.ParentForm.Height = 480; this.ParentForm.Left = (Screen.PrimaryScreen.Bounds.Width - 640) / 2; @@ -144,8 +124,7 @@ namespace ShiftOS.WinForms.Applications } })); - } - catch { } + } catch { } }; @@ -153,32 +132,21 @@ namespace ShiftOS.WinForms.Applications } - public void FocusOnTerminal() - { + public void FocusOnTerminal() { rtbterm.Focus(); } - public static string GetTime() - { + public static string GetTime() { var time = DateTime.Now; - if (ShiftoriumFrontend.UpgradeInstalled("full_precision_time")) - { + if (ShiftoriumFrontend.UpgradeInstalled("full_precision_time")) { return DateTime.Now.ToString("h:mm:ss tt"); - } - else if (ShiftoriumFrontend.UpgradeInstalled("clock_am_and_pm")) - { + } else if (ShiftoriumFrontend.UpgradeInstalled("clock_am_and_pm")) { return time.TimeOfDay.TotalHours > 12 ? $"{time.Hour - 12} PM" : $"{time.Hour} AM"; - } - else if (ShiftoriumFrontend.UpgradeInstalled("clock_hours")) - { + } else if (ShiftoriumFrontend.UpgradeInstalled("clock_hours")) { return ((int)time.TimeOfDay.TotalHours).ToString(); - } - else if (ShiftoriumFrontend.UpgradeInstalled("clock_minutes")) - { + } else if (ShiftoriumFrontend.UpgradeInstalled("clock_minutes")) { return ((int)time.TimeOfDay.TotalMinutes).ToString(); - } - else if (ShiftoriumFrontend.UpgradeInstalled("clock")) - { + } else if (ShiftoriumFrontend.UpgradeInstalled("clock")) { return ((int)time.TimeOfDay.TotalSeconds).ToString(); } @@ -188,8 +156,7 @@ namespace ShiftOS.WinForms.Applications public static event TextSentEventHandler TextSent; - public void ResetAllKeywords() - { + public void ResetAllKeywords() { string primary = SaveSystem.CurrentSave.Username + " "; string secondary = "shiftos "; @@ -198,27 +165,18 @@ namespace ShiftOS.WinForms.Applications var types = asm.GetTypes(); - foreach (var type in types) - { - foreach (var a in type.GetCustomAttributes(false)) - { - if (ShiftoriumFrontend.UpgradeAttributesUnlocked(type)) - { - if (a is Namespace) - { + foreach (var type in types) { + foreach (var a in type.GetCustomAttributes(false)) { + if (ShiftoriumFrontend.UpgradeAttributesUnlocked(type)) { + if (a is Namespace) { var ns = a as Namespace; - if (!primary.Contains(ns.name)) - { + if (!primary.Contains(ns.name)) { primary += ns.name + " "; } - foreach (var method in type.GetMethods(BindingFlags.Public | BindingFlags.Static)) - { - if (ShiftoriumFrontend.UpgradeAttributesUnlocked(method)) - { - foreach (var ma in method.GetCustomAttributes(false)) - { - if (ma is Command) - { + foreach (var method in type.GetMethods(BindingFlags.Public | BindingFlags.Static)) { + if (ShiftoriumFrontend.UpgradeAttributesUnlocked(method)) { + foreach (var ma in method.GetCustomAttributes(false)) { + if (ma is Command) { var cmd = ma as Command; if (!secondary.Contains(cmd.name)) secondary += cmd.name + " "; @@ -234,19 +192,14 @@ namespace ShiftOS.WinForms.Applications } - public static void MakeWidget(Controls.TerminalBox txt) - { + public static void MakeWidget(Controls.TerminalBox txt) { AppearanceManager.StartConsoleOut(); - txt.GotFocus += (o, a) => - { + txt.GotFocus += (o, a) => { AppearanceManager.ConsoleOut = txt; }; - txt.KeyDown += (o, a) => - { - if (a.KeyCode == Keys.Enter) - { - try - { + txt.KeyDown += (o, a) => { + if (a.KeyCode == Keys.Enter) { + try { a.SuppressKeyPress = true; Console.WriteLine(""); var text = txt.Lines.ToArray(); @@ -254,60 +207,55 @@ namespace ShiftOS.WinForms.Applications var text3 = ""; var text4 = Regex.Replace(text2, @"\t|\n|\r", ""); - if (IsInRemoteSystem == true) - { - ServerManager.SendMessage("trm_invcmd", JsonConvert.SerializeObject(new - { + if (IsInRemoteSystem == true) { + ServerManager.SendMessage("trm_invcmd", JsonConvert.SerializeObject(new { guid = RemoteGuid, command = text4 })); - } - else - { - if (TerminalBackend.PrefixEnabled) - { + } else { + if (TerminalBackend.PrefixEnabled) { text3 = text4.Remove(0, $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ ".Length); } TerminalBackend.LastCommand = text3; TextSent?.Invoke(text4); - if (TerminalBackend.InStory == false) - { - TerminalBackend.InvokeCommand(text3); + if (TerminalBackend.InStory == false) { + if(text3 == "stop theme") { + CurrentCommandParser.parser = null; + }else { + if(CurrentCommandParser.parser == null) { + TerminalBackend.InvokeCommand(text3); + } else { + var result = CurrentCommandParser.parser.ParseCommand(text3); + + if (result.Equals(default(KeyValuePair<KeyValuePair<string, string>, Dictionary<string, string>>))) { + Console.WriteLine("Syntax Error: Syntax Error"); + } else { + TerminalBackend.InvokeCommand(result.Key.Key, result.Key.Value, result.Value); + } + } + } } - if (TerminalBackend.PrefixEnabled) - { + if (TerminalBackend.PrefixEnabled) { Console.Write($"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ "); } } + } catch { } - catch - { - } - } - else if (a.KeyCode == Keys.Back) - { - try - { + } else if (a.KeyCode == Keys.Back) { + try { var tostring3 = txt.Lines[txt.Lines.Length - 1]; var tostringlen = tostring3.Length + 1; var workaround = $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ "; var derp = workaround.Length + 1; - if (tostringlen != derp) - { + if (tostringlen != derp) { AppearanceManager.CurrentPosition--; - } - else - { + } else { a.SuppressKeyPress = true; } - } - catch - { + } catch { Debug.WriteLine("Drunky alert in terminal."); } - } - else if (a.KeyCode == Keys.Left) - { + } else if (a.KeyCode == Keys.Left) { var getstring = txt.Lines[txt.Lines.Length - 1]; var stringlen = getstring.Length + 1; var header = $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ "; @@ -316,28 +264,19 @@ namespace ShiftOS.WinForms.Applications var remstrlen = txt.TextLength - stringlen; var finalnum = selstart - remstrlen; - if (finalnum != headerlen) - { + if (finalnum != headerlen) { AppearanceManager.CurrentPosition--; - } - else - { + } else { a.SuppressKeyPress = true; } - } - //( ͡° ͜ʖ ͡° ) You found the lennyface without looking at the commit message. Message Michael in the #shiftos channel on Discord saying "ladouceur" somewhere in your message if you see this. - else if (a.KeyCode == Keys.Up) - { + } else if (a.KeyCode == Keys.Up) { var tostring3 = txt.Lines[txt.Lines.Length - 1]; if (tostring3 == $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ ") Console.Write(TerminalBackend.LastCommand); a.SuppressKeyPress = true; - } - else - { - if (TerminalBackend.InStory) - { + } else { + if (TerminalBackend.InStory) { a.SuppressKeyPress = true; } AppearanceManager.CurrentPosition++; @@ -346,7 +285,7 @@ namespace ShiftOS.WinForms.Applications }; AppearanceManager.ConsoleOut = txt; - + txt.Focus(); txt.Font = LoadedSkin.TerminalFont; @@ -355,17 +294,12 @@ namespace ShiftOS.WinForms.Applications } - private void Terminal_Load(object sender, EventArgs e) - { - ServerManager.MessageReceived += (msg) => - { - if(msg.Name == "trm_handshake_guid") - { + private void Terminal_Load(object sender, EventArgs e) { + ServerManager.MessageReceived += (msg) => { + if (msg.Name == "trm_handshake_guid") { IsInRemoteSystem = true; RemoteGuid = msg.GUID; - } - else if(msg.Name == "trm_handshake_stop") - { + } else if (msg.Name == "trm_handshake_stop") { IsInRemoteSystem = false; RemoteGuid = ""; } @@ -373,21 +307,17 @@ namespace ShiftOS.WinForms.Applications } - private void Terminal_FormClosing(object sender, FormClosingEventArgs e) - { + private void Terminal_FormClosing(object sender, FormClosingEventArgs e) { ti.Stop(); IsInRemoteSystem = false; RemoteGuid = ""; } - public void OnLoad() - { + public void OnLoad() { MakeWidget(rtbterm); - if (SaveSystem.CurrentSave != null) - { - if (!ShiftoriumFrontend.UpgradeInstalled("window_manager")) - { + if (SaveSystem.CurrentSave != null) { + if (!ShiftoriumFrontend.UpgradeInstalled("window_manager")) { rtbterm.Text = AppearanceManager.LastTerminalText; rtbterm.Select(rtbterm.TextLength, 0); } @@ -398,42 +328,30 @@ namespace ShiftOS.WinForms.Applications } - public void OnSkinLoad() - { - try - { + public void OnSkinLoad() { + try { rtbterm.Font = LoadedSkin.TerminalFont; rtbterm.ForeColor = LoadedSkin.TerminalForeColor; rtbterm.BackColor = LoadedSkin.TerminalBackColor; - } - catch - { + } catch { } } - public bool OnUnload() - { - if (SaveSystem.ShuttingDown == false) - { - if (!ShiftoriumFrontend.UpgradeInstalled("desktop")) - { - if (AppearanceManager.OpenForms.Count <= 1) - { + public bool OnUnload() { + if (SaveSystem.ShuttingDown == false) { + if (!ShiftoriumFrontend.UpgradeInstalled("desktop")) { + if (AppearanceManager.OpenForms.Count <= 1) { Console.WriteLine(""); Console.WriteLine("{WIN_CANTCLOSETERMINAL}"); - try - { + try { Console.WriteLine(""); - if (TerminalBackend.PrefixEnabled) - { + if (TerminalBackend.PrefixEnabled) { Console.Write($"{SaveSystem.CurrentSave.Username}@shiftos:~$ "); } - } - catch (Exception ex) - { + } catch (Exception ex) { Console.WriteLine(ex); } return false; @@ -443,15 +361,13 @@ namespace ShiftOS.WinForms.Applications return true; } - public void OnUpgrade() - { + public void OnUpgrade() { } - private void rtbterm_TextChanged(object sender, EventArgs e) - { + private void rtbterm_TextChanged(object sender, EventArgs e) { } - + } } //lol you found this comment i made so i chould push a change to make a point.
\ No newline at end of file |
