From f9482906ae7ce4dfd41bb4236e094be5d4fa7689 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 2 Jul 2017 01:32:07 -0400 Subject: split TrainerMod commands into separate classes (#302) --- .../Framework/Commands/Other/DebugCommand.cs | 33 ++++++++++++++++++++++ .../Commands/Other/ShowDataFilesCommand.cs | 26 +++++++++++++++++ .../Commands/Other/ShowGameFilesCommand.cs | 26 +++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 src/TrainerMod/Framework/Commands/Other/DebugCommand.cs create mode 100644 src/TrainerMod/Framework/Commands/Other/ShowDataFilesCommand.cs create mode 100644 src/TrainerMod/Framework/Commands/Other/ShowGameFilesCommand.cs (limited to 'src/TrainerMod/Framework/Commands/Other') diff --git a/src/TrainerMod/Framework/Commands/Other/DebugCommand.cs b/src/TrainerMod/Framework/Commands/Other/DebugCommand.cs new file mode 100644 index 00000000..ad38d1ba --- /dev/null +++ b/src/TrainerMod/Framework/Commands/Other/DebugCommand.cs @@ -0,0 +1,33 @@ +using StardewModdingAPI; +using StardewValley; + +namespace TrainerMod.Framework.Commands.Other +{ + /// A command which sends a debug command to the game. + internal class DebugCommand : TrainerCommand + { + /********* + ** Public methods + *********/ + /// Construct an instance. + public DebugCommand() + : base("debug", "Run one of the game's debug commands; for example, 'debug warp FarmHouse 1 1' warps the player to the farmhouse.") { } + + /// Handle the command. + /// Writes messages to the console and log file. + /// The command name. + /// The command arguments. + public override void Handle(IMonitor monitor, string command, string[] args) + { + // submit command + string debugCommand = string.Join(" ", args); + string oldOutput = Game1.debugOutput; + Game1.game1.parseDebugInput(debugCommand); + + // show result + monitor.Log(Game1.debugOutput != oldOutput + ? $"> {Game1.debugOutput}" + : "Sent debug command to the game, but there was no output.", LogLevel.Info); + } + } +} diff --git a/src/TrainerMod/Framework/Commands/Other/ShowDataFilesCommand.cs b/src/TrainerMod/Framework/Commands/Other/ShowDataFilesCommand.cs new file mode 100644 index 00000000..b2985bb1 --- /dev/null +++ b/src/TrainerMod/Framework/Commands/Other/ShowDataFilesCommand.cs @@ -0,0 +1,26 @@ +using System.Diagnostics; +using StardewModdingAPI; + +namespace TrainerMod.Framework.Commands.Other +{ + /// A command which shows the data files. + internal class ShowDataFilesCommand : TrainerCommand + { + /********* + ** Public methods + *********/ + /// Construct an instance. + public ShowDataFilesCommand() + : base("show_data_files", "Opens the folder containing the save and log files.") { } + + /// Handle the command. + /// Writes messages to the console and log file. + /// The command name. + /// The command arguments. + public override void Handle(IMonitor monitor, string command, string[] args) + { + Process.Start(Constants.DataPath); + monitor.Log($"OK, opening {Constants.DataPath}.", LogLevel.Info); + } + } +} diff --git a/src/TrainerMod/Framework/Commands/Other/ShowGameFilesCommand.cs b/src/TrainerMod/Framework/Commands/Other/ShowGameFilesCommand.cs new file mode 100644 index 00000000..5695ce9a --- /dev/null +++ b/src/TrainerMod/Framework/Commands/Other/ShowGameFilesCommand.cs @@ -0,0 +1,26 @@ +using System.Diagnostics; +using StardewModdingAPI; + +namespace TrainerMod.Framework.Commands.Other +{ + /// A command which shows the game files. + internal class ShowGameFilesCommand : TrainerCommand + { + /********* + ** Public methods + *********/ + /// Construct an instance. + public ShowGameFilesCommand() + : base("show_game_files", "Opens the game folder.") { } + + /// Handle the command. + /// Writes messages to the console and log file. + /// The command name. + /// The command arguments. + public override void Handle(IMonitor monitor, string command, string[] args) + { + Process.Start(Constants.ExecutionPath); + monitor.Log($"OK, opening {Constants.ExecutionPath}.", LogLevel.Info); + } + } +} -- cgit From 2ca49fba62f59135c2ed3ec7958cb78073ff486b Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 2 Jul 2017 02:45:02 -0400 Subject: encapsulate TrainerMod's argument parsing (#302) --- src/TrainerMod/Framework/Commands/Other/DebugCommand.cs | 2 +- src/TrainerMod/Framework/Commands/Other/ShowDataFilesCommand.cs | 2 +- src/TrainerMod/Framework/Commands/Other/ShowGameFilesCommand.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/TrainerMod/Framework/Commands/Other') diff --git a/src/TrainerMod/Framework/Commands/Other/DebugCommand.cs b/src/TrainerMod/Framework/Commands/Other/DebugCommand.cs index ad38d1ba..8c6e9f3b 100644 --- a/src/TrainerMod/Framework/Commands/Other/DebugCommand.cs +++ b/src/TrainerMod/Framework/Commands/Other/DebugCommand.cs @@ -17,7 +17,7 @@ namespace TrainerMod.Framework.Commands.Other /// Writes messages to the console and log file. /// The command name. /// The command arguments. - public override void Handle(IMonitor monitor, string command, string[] args) + public override void Handle(IMonitor monitor, string command, ArgumentParser args) { // submit command string debugCommand = string.Join(" ", args); diff --git a/src/TrainerMod/Framework/Commands/Other/ShowDataFilesCommand.cs b/src/TrainerMod/Framework/Commands/Other/ShowDataFilesCommand.cs index b2985bb1..367a70c6 100644 --- a/src/TrainerMod/Framework/Commands/Other/ShowDataFilesCommand.cs +++ b/src/TrainerMod/Framework/Commands/Other/ShowDataFilesCommand.cs @@ -17,7 +17,7 @@ namespace TrainerMod.Framework.Commands.Other /// Writes messages to the console and log file. /// The command name. /// The command arguments. - public override void Handle(IMonitor monitor, string command, string[] args) + public override void Handle(IMonitor monitor, string command, ArgumentParser args) { Process.Start(Constants.DataPath); monitor.Log($"OK, opening {Constants.DataPath}.", LogLevel.Info); diff --git a/src/TrainerMod/Framework/Commands/Other/ShowGameFilesCommand.cs b/src/TrainerMod/Framework/Commands/Other/ShowGameFilesCommand.cs index 5695ce9a..67fa83a3 100644 --- a/src/TrainerMod/Framework/Commands/Other/ShowGameFilesCommand.cs +++ b/src/TrainerMod/Framework/Commands/Other/ShowGameFilesCommand.cs @@ -17,7 +17,7 @@ namespace TrainerMod.Framework.Commands.Other /// Writes messages to the console and log file. /// The command name. /// The command arguments. - public override void Handle(IMonitor monitor, string command, string[] args) + public override void Handle(IMonitor monitor, string command, ArgumentParser args) { Process.Start(Constants.ExecutionPath); monitor.Log($"OK, opening {Constants.ExecutionPath}.", LogLevel.Info); -- cgit