diff options
author | Jesse Plamondon-Willard <github@jplamondonw.com> | 2017-09-23 20:53:12 -0400 |
---|---|---|
committer | Jesse Plamondon-Willard <github@jplamondonw.com> | 2017-09-23 20:53:12 -0400 |
commit | 2d36105c33ffba77eb979ef6ef0d2e7d906b09bc (patch) | |
tree | fe74c3eb7dea4e6e7d59c00cab2e2308c43da3d0 /src/StardewModdingAPI/Command.cs | |
parent | a149f82b7a00d1ebf5ab33e529be93ce70873947 (diff) | |
download | SMAPI-2d36105c33ffba77eb979ef6ef0d2e7d906b09bc.tar.gz SMAPI-2d36105c33ffba77eb979ef6ef0d2e7d906b09bc.tar.bz2 SMAPI-2d36105c33ffba77eb979ef6ef0d2e7d906b09bc.zip |
drop support for SMAPI 1.x (#360)
Diffstat (limited to 'src/StardewModdingAPI/Command.cs')
-rw-r--r-- | src/StardewModdingAPI/Command.cs | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/src/StardewModdingAPI/Command.cs b/src/StardewModdingAPI/Command.cs deleted file mode 100644 index 76c85287..00000000 --- a/src/StardewModdingAPI/Command.cs +++ /dev/null @@ -1,159 +0,0 @@ -#if SMAPI_1_x -using System; -using System.Collections.Generic; -using StardewModdingAPI.Events; -using StardewModdingAPI.Framework; - -namespace StardewModdingAPI -{ - /// <summary>A command that can be submitted through the SMAPI console to interact with SMAPI.</summary> - [Obsolete("Use " + nameof(IModHelper) + "." + nameof(IModHelper.ConsoleCommands))] - public class Command - { - /********* - ** Properties - *********/ - /// <summary>The commands registered with SMAPI.</summary> - private static readonly IDictionary<string, Command> LegacyCommands = new Dictionary<string, Command>(StringComparer.InvariantCultureIgnoreCase); - - /// <summary>Manages console commands.</summary> - private static CommandManager CommandManager; - - /// <summary>Manages deprecation warnings.</summary> - private static DeprecationManager DeprecationManager; - - /// <summary>Tracks the installed mods.</summary> - private static ModRegistry ModRegistry; - - - /********* - ** Accessors - *********/ - /// <summary>The event raised when this command is submitted through the console.</summary> - public event EventHandler<EventArgsCommand> CommandFired; - - /**** - ** Command - ****/ - /// <summary>The name of the command.</summary> - public string CommandName; - - /// <summary>A human-readable description of what the command does.</summary> - public string CommandDesc; - - /// <summary>A human-readable list of accepted arguments.</summary> - public string[] CommandArgs; - - /// <summary>The actual submitted argument values.</summary> - public string[] CalledArgs; - - - /********* - ** Public methods - *********/ - /**** - ** Command - ****/ - /// <summary>Injects types required for backwards compatibility.</summary> - /// <param name="commandManager">Manages console commands.</param> - /// <param name="deprecationManager">Manages deprecation warnings.</param> - /// <param name="modRegistry">Tracks the installed mods.</param> - internal static void Shim(CommandManager commandManager, DeprecationManager deprecationManager, ModRegistry modRegistry) - { - Command.CommandManager = commandManager; - Command.DeprecationManager = deprecationManager; - Command.ModRegistry = modRegistry; - } - - /// <summary>Construct an instance.</summary> - /// <param name="name">The name of the command.</param> - /// <param name="description">A human-readable description of what the command does.</param> - /// <param name="args">A human-readable list of accepted arguments.</param> - public Command(string name, string description, string[] args = null) - { - this.CommandName = name; - this.CommandDesc = description; - if (args == null) - args = new string[0]; - this.CommandArgs = args; - } - - /// <summary>Trigger this command.</summary> - public void Fire() - { - if (this.CommandFired == null) - throw new InvalidOperationException($"Can't run command '{this.CommandName}' because it has no registered handler."); - this.CommandFired.Invoke(this, new EventArgsCommand(this)); - } - - - /**** - ** SMAPI - ****/ - /// <summary>Parse a command string and invoke it if valid.</summary> - /// <param name="input">The command to run, including the command name and any arguments.</param> - /// <param name="monitor">Encapsulates monitoring and logging.</param> - public static void CallCommand(string input, IMonitor monitor) - { - Command.DeprecationManager.Warn("Command.CallCommand", "1.9", DeprecationLevel.PendingRemoval); - Command.CommandManager.Trigger(input); - } - - /// <summary>Register a command with SMAPI.</summary> - /// <param name="name">The name of the command.</param> - /// <param name="description">A human-readable description of what the command does.</param> - /// <param name="args">A human-readable list of accepted arguments.</param> - public static Command RegisterCommand(string name, string description, string[] args = null) - { - name = name?.Trim().ToLower(); - - // raise deprecation warning - Command.DeprecationManager.Warn("Command.RegisterCommand", "1.9", DeprecationLevel.PendingRemoval); - - // validate - if (Command.LegacyCommands.ContainsKey(name)) - throw new InvalidOperationException($"The '{name}' command is already registered!"); - - // add command - string modName = Command.ModRegistry.GetModFromStack() ?? "<unknown mod>"; - string documentation = args?.Length > 0 - ? $"{description} - {string.Join(", ", args)}" - : description; - Command.CommandManager.Add(modName, name, documentation, Command.Fire); - - // add legacy command - Command command = new Command(name, description, args); - Command.LegacyCommands.Add(name, command); - return command; - } - - /// <summary>Find a command with the given name.</summary> - /// <param name="name">The command name to find.</param> - public static Command FindCommand(string name) - { - Command.DeprecationManager.Warn("Command.FindCommand", "1.9", DeprecationLevel.PendingRemoval); - if (name == null) - return null; - - Command command; - Command.LegacyCommands.TryGetValue(name.Trim(), out command); - return command; - } - - - /********* - ** Private methods - *********/ - /// <summary>Trigger this command.</summary> - /// <param name="name">The command name.</param> - /// <param name="args">The command arguments.</param> - private static void Fire(string name, string[] args) - { - Command command; - if (!Command.LegacyCommands.TryGetValue(name, out command)) - throw new InvalidOperationException($"Can't run command '{name}' because there's no such legacy command."); - command.Fire(); - } - } -} -#endif
\ No newline at end of file |