using System.Diagnostics.CodeAnalysis; using StardewValley; namespace StardewModdingAPI.Mods.ConsoleCommands.Framework.Commands.Other { /// A command which sends a debug command to the game. [SuppressMessage("ReSharper", "UnusedMember.Global", Justification = "Loaded using reflection")] internal class DebugCommand : ConsoleCommand { /********* ** 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, ArgumentParser 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); } } }