ShiftOS-TheRevival-Old/ShiftOS-TheRevival/MainForms/Terminal.vb
2022-11-09 06:30:53 +07:00

957 lines
No EOL
49 KiB
VB.net

Imports System.IO
Public Class Terminal
Public TrackPos As Integer
Public RawCommand As String
Public command As String
Public DefaultPrompt As String
Public AdvancedCommand As Boolean
Public BadCommand As Boolean
Public DisplayStory As Integer
Public StoryToTell As String
Public ChangeInterpreter As Boolean = False
Public CurrentInterpreter As String = "terminal"
Public CurrentDirectory As String
Public Pseudodir As String
Public StayAtChapter As Boolean = False
Public ToolBarUse As Boolean = False
Public ReleaseCursor As Boolean = False
Public ShOSKey As String
Private Sub Terminal_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FormBorderStyle = FormBorderStyle.None
WindowState = FormWindowState.Maximized
Cursor.Hide()
InitializeTerminal()
End Sub
Public Sub InitializeTerminal()
Strings.OnceInfo(1) = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\ShiftFS"
Strings.OnceInfo(4) = "!"
Strings.OnceInfo(7) = Width
Strings.OnceInfo(8) = Height
If Strings.IsFree = True Then
Strings.ComputerInfo(0) = "shiftos"
Strings.ComputerInfo(1) = "user"
CheckFeature()
PrintPrompt()
AssignPrompt()
Else
If StayAtChapter = True Then
LoadGame()
CheckFeature()
PrintPrompt()
AssignPrompt()
Else
If Strings.ComputerInfo(3) = "0" Then
TextBox1.ReadOnly = True
StayAtChapter = True
StoryOnlyTimer.Start()
Else
LoadGame()
CheckFeature()
PrintPrompt()
AssignPrompt()
End If
End If
End If
CurrentDirectory = Strings.OnceInfo(1)
Pseudodir = CurrentDirectory.Replace(Strings.OnceInfo(1), "!\")
TextBox1.Select(TextBox1.TextLength, 0)
TextBox1.ScrollToCaret()
End Sub
Public Sub CheckFeature()
If Strings.AvailableFeature(4) = "1" Then
If ToolBarUse = True Then
If Strings.OnceInfo(2) = "True" Then
InfoBarTimer.Start()
TextBox1.Dock = DockStyle.None
ToolBar.Visible = True
ToolBar.SendToBack()
InfoBar.Visible = True
InfoBar.SendToBack()
TextBox1.Dock = DockStyle.Fill
Else
TextBox1.Dock = DockStyle.None
InfoBar.Visible = False
ToolBar.Visible = True
ToolBar.SendToBack()
TextBox1.Dock = DockStyle.Fill
End If
Else
If Strings.OnceInfo(2) = "True" Then
InfoBarTimer.Start()
TextBox1.Dock = DockStyle.None
InfoBar.Visible = True
InfoBar.SendToBack()
ToolBar.Visible = False
TextBox1.Dock = DockStyle.Fill
Else
TextBox1.Dock = DockStyle.None
InfoBar.Visible = False
ToolBar.Visible = False
TextBox1.Dock = DockStyle.Fill
End If
End If
Else
TextBox1.Dock = DockStyle.None
InfoBar.Visible = False
TextBox1.Dock = DockStyle.Fill
End If
End Sub
Public Sub PrintPrompt()
If TextBox1.Text = Nothing Then
If ChangeInterpreter = True Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & DefaultPrompt
Else
If Strings.OnceInfo(0) = "Yes" Then
TextBox1.Text = "root@" & Strings.ComputerInfo(0) & " #> "
Else
TextBox1.Text = Strings.ComputerInfo(1) & "@" & Strings.ComputerInfo(0) & " $> "
End If
End If
Else
If ChangeInterpreter = True Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & DefaultPrompt
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 If
End Sub
Public Sub AssignPrompt()
If ChangeInterpreter = False Then
If Strings.OnceInfo(0) = "Yes" Then
DefaultPrompt = "root@" & Strings.ComputerInfo(0) & " #> "
Else
DefaultPrompt = Strings.ComputerInfo(1) & "@" & Strings.ComputerInfo(0) & " $> "
End If
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)
If DefaultPrompt = Nothing Then
Else
command = command.Replace(DefaultPrompt, "")
End If
RawCommand = command
command = command.ToLower()
End Sub
Private Sub DoCommand()
AdvancedCommand = True
BadCommand = True
Select Case command
Case ""
AdvancedCommand = False
BadCommand = False
Case "bc"
If Strings.AvailableFeature(9) = "1" Then
ChangeInterpreter = True
AppHost("bc", False)
AdvancedCommand = False
BadCommand = False
End If
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 "colors"
DisplayColors()
AdvancedCommand = False
BadCommand = False
Case "dir"
If Strings.AvailableFeature(16) = "1" Then
TerminalDirectories(CurrentDirectory)
AdvancedCommand = False
BadCommand = False
End If
Case "exit su"
If Strings.OnceInfo(0) = "No" Then
Else
AdvancedCommand = False
BadCommand = False
TextBox1.Text = TextBox1.Text & Environment.NewLine & "Exitting root mode..."
Strings.OnceInfo(0) = "No"
AssignPrompt()
End If
Case "guess"
ChangeInterpreter = True
AppHost("guess", False)
AdvancedCommand = False
BadCommand = False
'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(9) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "BC Basic Calculator for simple calculation"
End If
If Strings.AvailableFeature(16) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "CD Changes directory to a selected one"
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 & "COLOR Changes Terminal Text and Background color to the corresponding choice"
TextBox1.Text = TextBox1.Text & Environment.NewLine & "COLORS Shows available colors support for the terminal"
If Strings.AvailableFeature(16) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "DEL Delete a selected file from the directory"
TextBox1.Text = TextBox1.Text & Environment.NewLine & "DIR Displays subdirectories and files in a directory"
End If
TextBox1.Text = TextBox1.Text & Environment.NewLine & "GUESS Runs 'Guess the Number' application"
TextBox1.Text = TextBox1.Text & Environment.NewLine & "HELP Shows all commands available and its corresponding action"
If Strings.AvailableFeature(20) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "HOSTNAME Sets the name of current hostname/computer name with a new one"
End If
If Strings.AvailableFeature(4) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "INFOBAR Displays informations about current session such as current app, current user, current time, etc."
End If
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
If Strings.AvailableFeature(16) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "MKDIR Creating a directory"
End If
If Strings.AvailableFeature(16) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "PWD Display current directory navigated on ShiftOS"
End If
If Strings.AvailableFeature(2) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "PRINT Prints a corresponding text entered in the command"
End If
TextBox1.Text = TextBox1.Text & Environment.NewLine & "REBOOT Terminate and re-run ShiftOS session"
If Strings.AvailableFeature(16) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "RMDIR Deleting a directory"
End If
If Strings.AvailableFeature(8) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "SHIFTFETCH Shows informations about your computer"
End If
TextBox1.Text = TextBox1.Text & Environment.NewLine & "SHIFTORIUM A software center for upgrading features on ShiftOS"
TextBox1.Text = TextBox1.Text & Environment.NewLine & "SHUTDOWN Terminate ShiftOS session"
TextBox1.Text = TextBox1.Text & Environment.NewLine & "SU Runs terminal as super user"
If Strings.AvailableFeature(17) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "TEXTPAD Simple text-editor for ShiftOS"
End If
If Strings.AvailableFeature(5) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "TIME Display the current time in the form of seconds since midnight"
ElseIf Strings.AvailableFeature(5) = 3 Then
If Strings.AvailableFeature(6) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "TIME Display the current time in the form of minutes since midnight"
ElseIf Strings.AvailableFeature(6) = 3 Then
If Strings.AvailableFeature(7) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "TIME Display the current time in the form of hours since midnight"
ElseIf Strings.AvailableFeature(7) = 3 Then
If Strings.AvailableFeature(12) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "TIME Display the current time in the form of PM and AM format"
End If
End If
End If
End If
If Strings.AvailableFeature(20) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "USERNAME Sets the name of current user with a new one"
End If
TextBox1.Text = TextBox1.Text & Environment.NewLine & "VER Printing current version of ShiftOS TheRevival"
TextBox1.Text = TextBox1.Text & Environment.NewLine
AdvancedCommand = False
BadCommand = False
Case "infobar"
If Strings.AvailableFeature(4) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & My.Resources.man_infobar
End If
Case "pwd"
If Strings.AvailableFeature(16) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & CurrentDirectory.Replace(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\ShiftFS", "!")
AdvancedCommand = False
BadCommand = False
End If
Case "reboot"
TextBox1.Text = Nothing
AdvancedCommand = False
BadCommand = False
InitializeTerminal()
Case "shiftorium"
TextBox1.Text = TextBox1.Text & Environment.NewLine & My.Resources.man_shiftorium
AdvancedCommand = False
BadCommand = False
Case "shiftfetch"
If Strings.AvailableFeature(8) = "1" Then
If Strings.OnceInfo(0) = "Yes" Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & Environment.NewLine & " :^!7?JJJJJ?7!^: root@shiftos"
Else
TextBox1.Text = TextBox1.Text & Environment.NewLine & Environment.NewLine & " :^!7?JJJJJ?7!^: user@shiftos"
End If
TextBox1.Text = TextBox1.Text & Environment.NewLine & " .~?PB###BGP555PGB###BP?~. ----------------------"
TextBox1.Text = TextBox1.Text & Environment.NewLine & " .!P#&B57^..::^~~!!~^::~7YG&#5!. OS: ShiftOS TheRevival"
TextBox1.Text = TextBox1.Text & Environment.NewLine & " .?#@G7: .^ :^::!5&#?. Host: " & Environment.MachineName
TextBox1.Text = TextBox1.Text & Environment.NewLine & " .?#@5^ ! .^!!..J&#? Kernel: " & My.Resources.CurrentVersion
TextBox1.Text = TextBox1.Text & Environment.NewLine & " ^B@G^ .J :7?..J@G: Uptime: N/A"
TextBox1.Text = TextBox1.Text & Environment.NewLine & " ~&@Y 7 ~PB&#Y:. ~G7 ~&&^ Packages: " & Strings.ComputerInfo(4)
TextBox1.Text = TextBox1.Text & Environment.NewLine & " ^&@Y Y 5#5??YB@&B~ .GJ :&&: Shell: sos-justshell"
TextBox1.Text = TextBox1.Text & Environment.NewLine & " G@B ? 5P ^YB! .#! ~@G Window Manager: -"
TextBox1.Text = TextBox1.Text & Environment.NewLine & " ^@@! : @Y .:::^~:. 7# Y@^ Window Manager Theme: -"
TextBox1.Text = TextBox1.Text & Environment.NewLine & " 7@@: ! B@&BBBBGPPB@#Y. :&^ ^@? Terminal: shiftos-terminal"
TextBox1.Text = TextBox1.Text & Environment.NewLine & " ?@@: 7 :??7~:. 5@@5 :&^ .&? Terminal Font: Consolas, 11pt"
TextBox1.Text = TextBox1.Text & Environment.NewLine & " ~@@! !@ G#&B!. Y@@B 7#. Y~ CPU: " & My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0", "ProcessorNameString", Nothing)
TextBox1.Text = TextBox1.Text & Environment.NewLine & " B@G B@J ...~&G. 7@@@? .#? 7 GPU: N/A"
Dim TripleDigitRAM As String
TripleDigitRAM = (My.Computer.Info.TotalPhysicalMemory / 1024 / 1024 / 1024)
TextBox1.Text = TextBox1.Text & Environment.NewLine & " ~&@? ^@Y !G#57~~!YB@#Y^ .GP .. Memory: " & TripleDigitRAM.Substring(0, 4) & " GB"
TextBox1.Text = TextBox1.Text & Environment.NewLine & " !@@7 ~#J 5#&&BG57^ ~BY Codepoint: " & Strings.ComputerInfo(2)
TextBox1.Text = TextBox1.Text & Environment.NewLine & " ~#@Y .5P~ ^5G~ "
TextBox1.Text = TextBox1.Text & Environment.NewLine & " .J&#! ^JY!:. ^?P5! "
TextBox1.Text = TextBox1.Text & Environment.NewLine & " :J&B?..!JYY7!~::...::~!7Y5Y7: "
TextBox1.Text = TextBox1.Text & Environment.NewLine & " .7PBP?^::~!?JJJJJJJ?7~: "
TextBox1.Text = TextBox1.Text & Environment.NewLine & " .~?55Y?!^:... "
TextBox1.Text = TextBox1.Text & Environment.NewLine & " .:~~^~^^::. "
AdvancedCommand = False
BadCommand = False
End If
Case "shiftoriumfx"
'ChangeInterpreter = True
'AppHost("shiftoriumfx")
AdvancedCommand = False
BadCommand = False
Undeveloped()
Case "shutdown", "shut down"
TextBox1.Text = TextBox1.Text & Environment.NewLine & "Saving game..."
If Strings.OnceInfo(6) = "story" Then
SaveGame()
End If
Cursor.Show()
ShiftOSMenu.Show()
Close()
Case "textpad"
If Strings.AvailableFeature(17) = "1" Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "Type any filename after 'textpad'!, ex: textpad text.txt"
AdvancedCommand = False
BadCommand = False
End If
Case "time"
If Strings.AvailableFeature(5) = "1" Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & Math.Floor(Date.Now.Subtract(Date.Today).TotalSeconds) & " seconds passed since midnight"
ElseIf Strings.AvailableFeature(5) = "3" Then
If Strings.AvailableFeature(6) = "1" Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & Math.Floor(Date.Now.Subtract(Date.Today).TotalMinutes) & " minutes passed since midnight"
ElseIf Strings.AvailableFeature(6) = "3" Then
If Strings.AvailableFeature(7) = "1" Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & Math.Floor(Date.Now.Subtract(Date.Today).TotalHours) & " hours passed since midnight"
ElseIf Strings.AvailableFeature(7) = "3" Then
If Strings.AvailableFeature(12) = "1" Then
If Date.Now.Hour < 12 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "The time is " & TimeOfDay.Hour & " AM"
Else
TextBox1.Text = TextBox1.Text & Environment.NewLine & "The time is " & TimeOfDay.Hour - 12 & " PM"
End If
End If
End If
End If
End If
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 "ver"
TextBox1.Text = TextBox1.Text & Environment.NewLine & "ShiftOS TheRevival version " & My.Resources.CurrentVersion
AdvancedCommand = False
BadCommand = False
End Select
If AdvancedCommand = True Then
If command Like "cat *" Then
If Strings.AvailableFeature(16) = 1 Then
CatFile(command.Substring(4))
AdvancedCommand = False
BadCommand = False
End If
End If
If command Like "cd *" Then
If Strings.AvailableFeature(16) = 1 Then
NavigateDir(command.Replace("cd ", ""))
AdvancedCommand = False
BadCommand = False
End If
End If
If command Like "color *" Then
GetColor("terminal", command.Substring(6, 1), command.Substring(7, 1))
BadCommand = False
End If
If command Like "cowsay *" Then
If Strings.AvailableFeature(22) = 1 Then
Cowsay_Say(RawCommand.Substring(7))
BadCommand = False
End If
End If
If command Like "del *" Then
If Strings.AvailableFeature(16) = 1 Then
DeleteFile(RawCommand.Substring(4))
AdvancedCommand = False
BadCommand = False
End If
End If
If command Like "hostname *" Then
If Strings.AvailableFeature(20) = 1 Then
Strings.ComputerInfo(0) = command.Substring(command.LastIndexOf(" ") + 1, command.Length - (command.LastIndexOf(" ") + 1))
AssignPrompt()
AdvancedCommand = False
BadCommand = False
End If
End If
If command Like "infobar *" Then
If Strings.AvailableFeature(4) = "1" Then
'Infobar panel-ish and some sort
Dim infobarcommand As String = command.Replace("infobar ", "")
Dim advancedtool As Boolean = True
Select Case infobarcommand
Case "on"
Strings.OnceInfo(2) = "True"
CheckFeature()
BadCommand = False
advancedtool = False
Case "off"
Strings.OnceInfo(2) = "False"
CheckFeature()
BadCommand = False
advancedtool = False
End Select
If advancedtool = True Then
If infobarcommand Like "color *" Then
GetColor("infobar", infobarcommand.Substring(6, 1), infobarcommand.Substring(7, 1))
BadCommand = False
End If
End If
End If
End If
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
'In process to convert every command from printing from code to printing from text file
Case "bc"
If Strings.AvailableFeature(9) = "1" Then
TempUsage = TempUsage & "bc"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_bc & Environment.NewLine
BadCommand = False
End If
Case "cd"
If Strings.AvailableFeature(16) = "1" Then
TempUsage = TempUsage & "cd [DIRECTORY]"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_cd & Environment.NewLine
BadCommand = False
End If
Case "clear"
If Strings.AvailableFeature(1) = "1" Then
TempUsage = TempUsage & "clear"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_clear & Environment.NewLine
BadCommand = False
End If
Case "color"
TempUsage = TempUsage & "color [bg][fg]"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_color & Environment.NewLine
BadCommand = False
Case "colors"
TempUsage = TempUsage & "colors"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_colors & Environment.NewLine
BadCommand = False
Case "codepoint"
TempUsage = TempUsage & "codepoint"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_codepoint & Environment.NewLine
BadCommand = False
Case "dir"
If Strings.AvailableFeature(16) = "1" Then
TempUsage = TempUsage & "dir"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_dir & Environment.NewLine
BadCommand = False
End If
Case "guess"
TempUsage = TempUsage & "guess"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_guess & Environment.NewLine
BadCommand = False
Case "help"
TempUsage = TempUsage & "help"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_help & Environment.NewLine
BadCommand = False
Case "infobar"
If Strings.AvailableFeature(4) = 1 Then
TempUsage = TempUsage & "infbar [ON|OFF] [OPTION]"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_infobar & Environment.NewLine
BadCommand = False
End If
Case "man"
If Strings.AvailableFeature(0) = "1" Then
TempUsage = TempUsage & "man [command]"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_man & Environment.NewLine
BadCommand = False
End If
Case "mkdir"
If Strings.AvailableFeature(16) = "1" Then
TempUsage = TempUsage & "mkdir [DIRECTORY]"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_mkdir & Environment.NewLine
BadCommand = False
End If
Case "print"
If Strings.AvailableFeature(2) = "1" Then
TempUsage = TempUsage & "print [text]"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_print & Environment.NewLine
BadCommand = False
End If
Case "pwd"
If Strings.AvailableFeature(16) = "1" Then
TempUsage = TempUsage & "pwd"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_pwd & Environment.NewLine
BadCommand = False
End If
Case "reboot"
TempUsage = TempUsage & "reboot"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_reboot & Environment.NewLine
BadCommand = False
Case "rmdir"
If Strings.AvailableFeature(16) = "1" Then
TempUsage = TempUsage & "rmdir [DIRECTORY]"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_rmdir & Environment.NewLine
BadCommand = False
End If
Case "shiftfetch"
If Strings.AvailableFeature(8) = "1" Then
TempUsage = TempUsage & "shiftfetch"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_shiftfetch & Environment.NewLine
BadCommand = False
End If
Case "shiftorium"
TempUsage = TempUsage & "shiftorium [option] [featureName]"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_shiftorium & Environment.NewLine
BadCommand = False
Case "shutdown"
TempUsage = TempUsage & "shutdown"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_shutdown & Environment.NewLine
BadCommand = False
Case "ver"
TempUsage = TempUsage & "ver"
TextBox1.Text = TextBox1.Text & TempUsage & Environment.NewLine & Environment.NewLine & My.Resources.man_ver & Environment.NewLine
BadCommand = False
Case Else
TextBox1.Text = TextBox1.Text & Environment.NewLine & "MAN : Invalid command"
End Select
End If
End If
If command Like "mkdir *" Then
If Strings.AvailableFeature(16) Then
CreateDir(command.Replace("mkdir ", ""))
AdvancedCommand = False
BadCommand = False
End If
End If
If command Like "print *" Then
If Strings.AvailableFeature(2) = "1" Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & RawCommand.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
AdvancedCommand = False
End If
End If
If command Like "rev *" Then
If Strings.AvailableFeature(21) = 1 Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & StrReverse(RawCommand.Substring(4))
BadCommand = False
AdvancedCommand = False
End If
End If
If command Like "rmdir *" Then
If Strings.AvailableFeature(16) = 1 Then
RemoveDir(command.Replace("rmdir ", ""))
AdvancedCommand = False
BadCommand = False
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
Shiftoriums.prompt = command.Replace("shiftorium info ", "")
Shiftorium_InformationFeatures()
End If
If prompt Like "install *" Then
Shiftoriums.prompt = command.Replace("shiftorium install ", "")
Shiftorium_DetectInstallFeatures()
End If
If prompt = "list" Then
Shiftorium_ListFeatures()
BadCommand = False
End If
End If
If command Like "textpad *" Then
If Strings.AvailableFeature(17) = 1 Then
ChangeInterpreter = True
command = RawCommand.Replace("textpad ", "")
AppHost("textpad", True)
AdvancedCommand = False
BadCommand = False
End If
End If
If command Like "username *" Then
If Strings.AvailableFeature(19) = 1 Then
If command.Substring(9) = "root" Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "This username is already taken!"
Else
Strings.ComputerInfo(1) = command.Substring(command.LastIndexOf(" ") + 1, command.Length - (command.LastIndexOf(" ") + 1))
AssignPrompt()
End If
AdvancedCommand = False
BadCommand = False
End If
End If
End If
If BadCommand = True Then
TextBox1.Text = TextBox1.Text & Environment.NewLine & "Bad command or wrong file name"
End If
End Sub
Public Sub TextRebind()
TextBox1.Select(TextBox1.Text.Length, 0)
TextBox1.ScrollToCaret()
End Sub
Private Sub txtterm_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
TerminalApps.KeyInput = e.KeyData
Select Case e.KeyData
Case (Keys.Control + Keys.Q)
If CurrentInterpreter = "terminal" Then
Else
TerminateApp(TerminalApps.KeyInput)
TextRebind()
End If
Case Else
CaptureKeyBinding(TerminalApps.KeyInput)
End Select
'If ReleaseCursor = True Then
'Else
' 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
'End If
'If e.KeyCode = Keys.Enter Then
' e.SuppressKeyPress = True
' If TextBox1.ReadOnly = True Then
' Else
' ReadCommand()
' If ChangeInterpreter = True Then
' DoChildCommand()
' PrintPrompt()
' TextBox1.Select(TextBox1.Text.Length, 0)
' Else
' DoCommand()
' PrintPrompt()
' TextBox1.Select(TextBox1.Text.Length, 0)
' End If
' End If
' '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 ReleaseCursor = True Then
' Else
' If e.KeyCode = Keys.Back Then
' Else
' TrackPos = TrackPos + 1
' End If
' 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()
If ReleaseCursor = True Then
Else
Select Case e.KeyData
Case Keys.Enter
e.SuppressKeyPress = True
If TextBox1.ReadOnly = True Then
Else
ReadCommand()
If Strings.AvailableFeature(18) = 1 Then
ShOSKey_InputCommand(command)
End If
If ChangeInterpreter = True Then
DoChildCommand()
PrintPrompt()
TextRebind()
Else
DoCommand()
PrintPrompt()
TextRebind()
End If
End If
TrackPos = 0
Case Keys.ShiftKey, Keys.Alt, Keys.ControlKey, Keys.LWin, Keys.RWin
e.SuppressKeyPress = True
Case Keys.Back
If TrackPos <= 0 Then
e.SuppressKeyPress = True
Else
TrackPos = TrackPos - 1
'If TextBox1.SelectedText.Length < 1 Then
' TrackPos = TrackPos - 1
'Else
' e.SuppressKeyPress = True
'End If
End If
Case Keys.Right
If TextBox1.SelectionStart = TextBox1.TextLength Then
Else
TrackPos = TrackPos + 1
End If
'If TrackPos <= 0 Then
' Dim CommandChar As String
' CommandChar = TextBox1.Lines(TextBox1.Lines.Length - 1)
' CommandChar = CommandChar.Replace(DefaultPrompt, "")
' TrackPos = CommandChar.Length - 1
' TextBox1.Select(TextBox1.TextLength, 0)
' TextBox1.ScrollToCaret()
'End If
Case Keys.Left
If TextBox1.SelectionStart = 0 Then
e.SuppressKeyPress = True
Else
TrackPos = TrackPos - 1
End If
If TrackPos <= 0 Then
Dim CommandChar As String
CommandChar = TextBox1.Lines(TextBox1.Lines.Length - 1)
CommandChar = CommandChar.Replace(DefaultPrompt, "")
TrackPos = CommandChar.Length - 1
TextBox1.Select(TextBox1.TextLength, 0)
TextBox1.ScrollToCaret()
End If
'If TrackPos < 1 Then
' e.SuppressKeyPress = True
' TrackPos = TrackPos - 1
'Else
' TrackPos = TrackPos - 2
'End If
Case Keys.Up
e.SuppressKeyPress = True
If Strings.AvailableFeature(18) = 1 Then
ShOSKey_Display()
TextRebind()
End If
Case Keys.Down
e.SuppressKeyPress = True
If Strings.AvailableFeature(18) = 1 Then
ShOSKey_Display()
TextRebind()
End If
Case Else
TrackPos = TrackPos + 1
End Select
End If
'If e.KeyCode = Keys.Enter Then
' 'If command = "clear" Then
' ' txtterm.Text = txtterm.Text + ShiftOSDesktop.username & "@" & ShiftOSDesktop.osname & " $> "
' ' txtterm.Select(txtterm.Text.Length, 0)
' 'Else
' ' txtterm.Text = txtterm.Text + Environment.NewLine & ShiftOSDesktop.username & "@" & ShiftOSDesktop.osname & " $> "
' ' txtterm.Select(txtterm.Text.Length, 0)
' 'End If
'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
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
Private Sub StoryOnlyTimer_Tick(sender As Object, e As EventArgs) Handles StoryOnlyTimer.Tick
Select Case Strings.ComputerInfo(3)
Case "0"
Select Case DisplayStory
Case 5
TextBox1.Text = "Connected to <null>"
Case 25
TextBox1.Text = TextBox1.Text & Environment.NewLine & "<null>: Hey there, Unknown user!"
Case 60
TextBox1.Text = TextBox1.Text & Environment.NewLine & "<null>: Congratulaions! You have been involuntarily selected for a test on my experimental operating system, ShiftOS."
Case 125
TextBox1.Text = TextBox1.Text & Environment.NewLine & "<null>: ShiftOS is an operating system that will evolve itself as you use it as I progressively add more features into ShiftOS."
Case 160
TextBox1.Text = TextBox1.Text & Environment.NewLine & "<null>: Currently ShiftOS isn't much from a basic command-line operating system."
Case 210
TextBox1.Text = TextBox1.Text & Environment.NewLine & "<null>: I don't wish to reveal my indentity at this point in time."
Case 270
TextBox1.Text = TextBox1.Text & Environment.NewLine & "<null>: I will install ShiftOS on your system once I leave while I work on... something else."
Case 335
TextBox1.Text = TextBox1.Text & Environment.NewLine & "<null>: Once you have ShiftOS rich feature enough, I will come back to you. In the mean time, goodbye!"
Case 400
TextBox1.Text = TextBox1.Text & Environment.NewLine & "<null> Disconnected"
Case 430
TextBox1.Text = "Installing ShiftOS..."
Case 550
TextBox1.Text = "ShiftOS Installed, The computer will restart in a few seconds"
Case 600
StoryOnlyTimer.Stop()
TextBox1.Text = Nothing
TextBox1.ReadOnly = False
Strings.ComputerInfo(0) = "shiftos"
Strings.ComputerInfo(1) = "user"
CheckFeature()
PrintPrompt()
AssignPrompt()
TextBox1.Select(TextBox1.TextLength, 0)
TextBox1.ScrollToCaret()
End Select
End Select
DisplayStory = DisplayStory + 1
End Sub
Private Sub InfoBarTimer_Tick(sender As Object, e As EventArgs) Handles InfoBarTimer.Tick
InfoBar.Text = "|"
If Strings.AvailableFeature(5) = "1" Then
InfoBar.Text = InfoBar.Text & " " & Math.Floor(Date.Now.Subtract(Date.Today).TotalSeconds) & " |"
ElseIf Strings.AvailableFeature(5) = "3" Then
If Strings.AvailableFeature(6) = "1" Then
InfoBar.Text = InfoBar.Text & " " & Math.Floor(Date.Now.Subtract(Date.Today).TotalMinutes) & " |"
ElseIf Strings.AvailableFeature(6) = "3" Then
If Strings.AvailableFeature(7) = "1" Then
InfoBar.Text = InfoBar.Text & " " & Math.Floor(Date.Now.Subtract(Date.Today).TotalHours) & " |"
ElseIf Strings.AvailableFeature(7) = "3" Then
If Strings.AvailableFeature(12) = "1" Then
If Date.Now.Hour < 12 Then
InfoBar.Text = InfoBar.Text & Environment.NewLine & " " & TimeOfDay.Hour & " AM |"
Else
InfoBar.Text = InfoBar.Text & Environment.NewLine & " " & TimeOfDay.Hour - 12 & " PM |"
End If
End If
End If
End If
End If
If Strings.OnceInfo(0) = "Yes" Then
InfoBar.Text = InfoBar.Text & " root |"
Else
InfoBar.Text = InfoBar.Text & " user |"
End If
InfoBar.Text = InfoBar.Text & " " & CurrentInterpreter & " |"
InfoBar.Text = InfoBar.Text & " " & Strings.ComputerInfo(2) & " CP |"
InfoBar.Text = InfoBar.Text & " " & TrackPos & " |"
End Sub
Private Sub TextBox1_Click(sender As Object, e As MouseEventArgs) Handles TextBox1.MouseDoubleClick, TextBox1.Click
End Sub
End Class