Public Class Terminal Public command As String Public DefaultPrompt As String Public TrackPos As Integer Public AdvancedCommand As Boolean Public BadCommand As Boolean Private Sub Terminal_Load(sender As Object, e As EventArgs) Handles MyBase.Load FormBorderStyle = FormBorderStyle.None WindowState = FormWindowState.Maximized If Strings.IsFree = True Then Strings.ComputerInfo(0) = "shiftos" Strings.ComputerInfo(1) = "user" Strings.ComputerInfo(2) = 0 PrintPrompt() AssignPrompt() Else End If TextBox1.Select(TextBox1.TextLength, 0) TextBox1.ScrollToCaret() End Sub Public Sub PrintPrompt() If TextBox1.Text = Nothing Then If Strings.OnceInfo(0) = "Yes" Then TextBox1.Text = "root@" & Strings.ComputerInfo(0) & " #> " Else TextBox1.Text = Strings.ComputerInfo(1) & "@" & Strings.ComputerInfo(0) & " $> " End If Else If Strings.OnceInfo(0) = "Yes" Then TextBox1.Text = TextBox1.Text & Environment.NewLine & "root@" & Strings.ComputerInfo(0) & " #> " Else TextBox1.Text = TextBox1.Text & Environment.NewLine & Strings.ComputerInfo(1) & "@" & Strings.ComputerInfo(0) & " $> " End If End If End Sub Public Sub AssignPrompt() If Strings.OnceInfo(0) = "Yes" Then DefaultPrompt = "root@" & Strings.ComputerInfo(0) & " #> " Else DefaultPrompt = Strings.ComputerInfo(1) & "@" & Strings.ComputerInfo(0) & " $> " End If End Sub Private Sub Undeveloped() TextBox1.Text = TextBox1.Text & Environment.NewLine & "Oopsie! It's only for newer version" End Sub Private Sub ReadCommand() command = TextBox1.Lines(TextBox1.Lines.Length - 1) command = command.Replace(DefaultPrompt, "") command = command.ToLower() End Sub Private Sub DoCommand() AdvancedCommand = True BadCommand = True Select Case command Case "" AdvancedCommand = False BadCommand = False Case "clear" If Strings.AvailableFeature(1) = "1" Then TextBox1.Text = Nothing AdvancedCommand = False BadCommand = False End If Case "codepoint" TextBox1.Text = TextBox1.Text & Environment.NewLine & Strings.ComputerInfo(2) & " Codepoint(s) available in your wallet" AdvancedCommand = False BadCommand = False Case "guess" 'AppHost("gtn") Undeveloped() Case "gimme" Dim TempCP As Integer = Convert.ToInt32(Strings.ComputerInfo(2)) TempCP = TempCP + 50 Strings.ComputerInfo(2) = Convert.ToString(TempCP) TextBox1.Text = TextBox1.Text & Environment.NewLine & "you cheater!" Case "help" TextBox1.Text = TextBox1.Text & Environment.NewLine & "ShiftOS Help Manual" & Environment.NewLine & Environment.NewLine & "You can type 'help' to get all available commands and its corresponding action." If Strings.AvailableFeature(0) = 1 Then TextBox1.Text = TextBox1.Text & Environment.NewLine & "To get help on each command, you can type 'man [command]'" & Environment.NewLine Else TextBox1.Text = TextBox1.Text & Environment.NewLine End If If Strings.AvailableFeature(1) = 1 Then TextBox1.Text = TextBox1.Text & Environment.NewLine & "CLEAR Clear the terminal" End If TextBox1.Text = TextBox1.Text & Environment.NewLine & "CODEPOINT Display Codepoint(s) from your wallet" TextBox1.Text = TextBox1.Text & Environment.NewLine & "HELP Shows all commands available and its corresponding action" If Strings.AvailableFeature(0) = 1 Then TextBox1.Text = TextBox1.Text & Environment.NewLine & "MAN Shows a command, its corresponding action, and its example usage" End If TextBox1.Text = TextBox1.Text & Environment.NewLine & "SHIFTORIUM Terminate ShiftOS session" TextBox1.Text = TextBox1.Text & Environment.NewLine & "SHUTDOWN Terminate ShiftOS session" TextBox1.Text = TextBox1.Text & Environment.NewLine & "SU Runs terminal as super user" TextBox1.Text = TextBox1.Text & Environment.NewLine & "VER Printing current version of ShiftOS TheRevival" TextBox1.Text = TextBox1.Text & Environment.NewLine AdvancedCommand = False BadCommand = False Case "su" If Strings.OnceInfo(0) = "Yes" Then TextBox1.Text = TextBox1.Text & Environment.NewLine & "You already in root mode!" Else Strings.OnceInfo(0) = "Yes" AssignPrompt() End If AdvancedCommand = False BadCommand = False Case "shutdown", "shut down" ShiftOSMenu.Show() Close() Case "ver" TextBox1.Text = TextBox1.Text & Environment.NewLine & "ShiftOS TheRevival version 0.1.1" AdvancedCommand = False BadCommand = False End Select If AdvancedCommand = True Then If command Like "man *" Then If Strings.AvailableFeature(0) = "1" Then 'MAN command starts with this kinda format 'ShiftOS Help Manual ' ''command' Usage: [switch/value if needed] ' 'Summary of the command's action ' 'Example usage : command TextBox1.Text = TextBox1.Text & Environment.NewLine & "ShiftOS Help Manual" & Environment.NewLine 'TextBox1.Text = TextBox1.Text & Environment.NewLine & command.Substring(4) Dim mancommand As String = command.Replace("man ", "") Dim TempUsage As String = "'" & mancommand & "' Usage: " Select Case mancommand Case "clear" TempUsage = TempUsage & "clear" TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & "Clears all contents of the terminal" & Environment.NewLine BadCommand = False Case "codepoint" TempUsage = TempUsage & "codepoint" TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & "Shows the value of codepoint in your wallet" & Environment.NewLine BadCommand = False Case "help" TempUsage = TempUsage & "help" TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & "Shows all commands available in the terminal and its brief explanation of action" & Environment.NewLine BadCommand = False Case "man" TempUsage = TempUsage & "man [command]" TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & "Shows up a manual on each corresponding command and its example of action" & Environment.NewLine & Environment.NewLine & "[COMMAND] Any command that you want to get the manual for" & Environment.NewLine & Environment.NewLine & "Example: man help" BadCommand = False Case "shutdown" TempUsage = TempUsage & "shutdown" TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & "Terminate ShiftOS session" & Environment.NewLine BadCommand = False Case "ver" TempUsage = TempUsage & "ver" TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & "Displays current version of ShiftOS TheRevival" & Environment.NewLine BadCommand = False Case Else TextBox1.Text = TextBox1.Text & Environment.NewLine & "MAN : Invalid command" End Select End If End If If command Like "shiftorium *" Then Dim prompt As String = command.Replace("shiftorium ", "") TextBox1.Text = TextBox1.Text & Environment.NewLine & "Shiftorium ShiftOS Center" If prompt Like "info *" Then prompt = command.Replace("shiftorium info ", "") 'ManHeader is for the ShiftOS Help Manual header and the 'Cost' footer, kinda like template-ish Dim ManHeader(1) As String 'ManHeader(0) = Insert any feature here for the Case prompt ManHeader(1) = "Cost: " Select Case prompt Case "man" ManHeader(0) = "ShiftOS Help Manual (command: man)" ManHeader(1) = "20 CP" TextBox1.Text = TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows up any further help instruction on each command, its corresponding action and its example if necessary" & Environment.NewLine & Environment.NewLine & ManHeader(1) BadCommand = False Case "clear" ManHeader(0) = "Clear Terminal Screen (command: clear)" ManHeader(1) = "25 CP" TextBox1.Text = TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Clears the terminal screen" & Environment.NewLine & Environment.NewLine & ManHeader(1) BadCommand = False Case Else BadCommand = False TextBox1.Text = TextBox1.Text & Environment.NewLine & "Shiftorium: Bad command or not available" End Select End If If prompt Like "install *" Then prompt = command.Replace("shiftorium install ", "") Select Case prompt Case "man" InstallFeature(True, "man", 20) BadCommand = False Case "clear" InstallFeature(True, "clear", 25) BadCommand = False Case Else BadCommand = False TextBox1.Text = TextBox1.Text & Environment.NewLine & "Shiftorium: Bad command or not available" End Select End If If prompt = "list" Then TextBox1.Text = TextBox1.Text & Environment.NewLine & "Shiftorium Available Feature(s)" & Environment.NewLine If Strings.AvailableFeature(0) = "0" Then TextBox1.Text = TextBox1.Text & Environment.NewLine & "ShiftOS Help Manual (20 CP)" End If If Strings.AvailableFeature(1) = "0" Then TextBox1.Text = TextBox1.Text & Environment.NewLine & "Clear Terminal Screen (25 CP)" End If BadCommand = False End If End If If command Like "print *" Then TextBox1.Text = TextBox1.Text & Environment.NewLine & command.Substring(6) Dim printed As String = command.Replace("print ", "") ''It has the same issue, only displays in lowercase 'TextBox1.Text = TextBox1.Text & Environment.NewLine & printed BadCommand = False End If AdvancedCommand = False End If If BadCommand = True Then TextBox1.Text = TextBox1.Text & Environment.NewLine & "Bad command or wrong file name" End If End Sub Private Sub txtterm_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown If e.KeyCode = Keys.T AndAlso e.Control Then Me.Hide() e.SuppressKeyPress = True End If Select Case e.KeyCode Case Keys.ShiftKey TrackPos = TrackPos - 1 Case Keys.Alt TrackPos = TrackPos - 1 Case Keys.CapsLock TrackPos = TrackPos - 1 Case Keys.ControlKey TrackPos = TrackPos - 1 Case Keys.LWin TrackPos = TrackPos - 1 Case Keys.RWin TrackPos = TrackPos - 1 Case Keys.Right If TextBox1.SelectionStart = TextBox1.TextLength Then TrackPos = TrackPos - 1 End If Case Keys.Left If TrackPos < 1 Then e.SuppressKeyPress = True TrackPos = TrackPos - 1 Else TrackPos = TrackPos - 2 End If Case Keys.Up e.SuppressKeyPress = True TrackPos = TrackPos - 1 Case Keys.Down e.SuppressKeyPress = True TrackPos = TrackPos - 1 End Select If e.KeyCode = Keys.Enter Then e.SuppressKeyPress = True ReadCommand() DoCommand() If command = "clear" Then PrintPrompt() TextBox1.Select(TextBox1.Text.Length, 0) Else PrintPrompt() TextBox1.Select(TextBox1.Text.Length, 0) End If TrackPos = 0 Else If e.KeyCode = Keys.Back Then Else TrackPos = TrackPos + 1 End If End If If e.KeyCode = Keys.Back Then If TrackPos < 1 Then e.SuppressKeyPress = True Else If TextBox1.SelectedText.Length < 1 Then TrackPos = TrackPos - 1 Else e.SuppressKeyPress = True End If End If End If TextBox1.Select(TextBox1.TextLength, 0) TextBox1.ScrollToCaret() End Sub Private Sub TextBox1_Click(sender As Object, e As EventArgs) Handles TextBox1.Click, TextBox1.MouseDoubleClick TextBox1.Select(TextBox1.TextLength, 0) TextBox1.ScrollToCaret() End Sub End Class