summaryrefslogtreecommitdiff
path: root/src/TrainerMod/Framework/Commands/Player/SetStyleCommand.cs
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <github@jplamondonw.com>2017-07-02 02:45:02 -0400
committerJesse Plamondon-Willard <github@jplamondonw.com>2017-07-02 02:45:02 -0400
commit2ca49fba62f59135c2ed3ec7958cb78073ff486b (patch)
tree5b4e5251606622f615b105b683a2722f4e6b046c /src/TrainerMod/Framework/Commands/Player/SetStyleCommand.cs
parentf9482906ae7ce4dfd41bb4236e094be5d4fa7689 (diff)
downloadSMAPI-2ca49fba62f59135c2ed3ec7958cb78073ff486b.tar.gz
SMAPI-2ca49fba62f59135c2ed3ec7958cb78073ff486b.tar.bz2
SMAPI-2ca49fba62f59135c2ed3ec7958cb78073ff486b.zip
encapsulate TrainerMod's argument parsing (#302)
Diffstat (limited to 'src/TrainerMod/Framework/Commands/Player/SetStyleCommand.cs')
-rw-r--r--src/TrainerMod/Framework/Commands/Player/SetStyleCommand.cs24
1 files changed, 7 insertions, 17 deletions
diff --git a/src/TrainerMod/Framework/Commands/Player/SetStyleCommand.cs b/src/TrainerMod/Framework/Commands/Player/SetStyleCommand.cs
index 9ef5f88b..96e34af2 100644
--- a/src/TrainerMod/Framework/Commands/Player/SetStyleCommand.cs
+++ b/src/TrainerMod/Framework/Commands/Player/SetStyleCommand.cs
@@ -17,22 +17,16 @@ namespace TrainerMod.Framework.Commands.Player
/// <param name="monitor">Writes messages to the console and log file.</param>
/// <param name="command">The command name.</param>
/// <param name="args">The command arguments.</param>
- public override void Handle(IMonitor monitor, string command, string[] args)
+ public override void Handle(IMonitor monitor, string command, ArgumentParser args)
{
- // validate
- if (args.Length <= 1)
- {
- this.LogArgumentsInvalid(monitor, command);
+ // parse arguments
+ if (!args.TryGet(0, "target", out string target, oneOf: new[] { "hair", "shirt", "acc", "skin", "shoe", "swim", "gender" }))
return;
- }
- if (!int.TryParse(args[1], out int styleID))
- {
- this.LogArgumentsInvalid(monitor, command);
+ if (!args.TryGetInt(1, "style ID", out int styleID))
return;
- }
// handle
- switch (args[0])
+ switch (target)
{
case "hair":
Game1.player.changeHairStyle(styleID);
@@ -71,7 +65,7 @@ namespace TrainerMod.Framework.Commands.Player
monitor.Log("OK, you're now in your swimming suit.", LogLevel.Info);
break;
default:
- this.LogUsageError(monitor, "The swim value should be 0 (no swimming suit) or 1 (swimming suit).", command);
+ this.LogUsageError(monitor, "The swim value should be 0 (no swimming suit) or 1 (swimming suit).");
break;
}
break;
@@ -88,14 +82,10 @@ namespace TrainerMod.Framework.Commands.Player
monitor.Log("OK, you're now female.", LogLevel.Info);
break;
default:
- this.LogUsageError(monitor, "The gender value should be 0 (male) or 1 (female).", command);
+ this.LogUsageError(monitor, "The gender value should be 0 (male) or 1 (female).");
break;
}
break;
-
- default:
- this.LogArgumentsInvalid(monitor, command);
- break;
}
}
}