#nullable disable
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);
}
}
}