#region Arthea License /*********************************************************************** * Arthea MUD by R. Jennings (2007) http://arthea.googlecode.com/ * * By using this code you comply with the Artistic and GPLv2 Licenses. * ***********************************************************************/ #endregion using Arthea.Connections.Colors; using Arthea.Connections.Players; namespace Arthea.Commands.PlayerCommands { /// <summary> /// Implementation of a color command. /// </summary> public class ColorCommand : Command { #region [rgn] Constructors (1) /// <summary> /// Initializes a new instance of the <see cref="ColorCommand"/> class. /// </summary> public ColorCommand() : base("color", "Turns color on or sets a custom color") { } #endregion [rgn] #region [rgn] Methods (1) // [rgn] Public Methods (1) /// <summary> /// Processes the command for a player. /// </summary> /// <param name="player">The player.</param> /// <param name="argument">The argument.</param> public override void Process(Player player, String argument) { if (!argument) { player.Config.Toggle(PlayerConfig.Color); player.WriteLine("Color {0}abled.", player.Config.Has(PlayerConfig.Color) ? "en" : "dis"); return; } String arg = argument.FirstArg(); CustomColor ccolor = CustomColor.Parse(arg); if (ccolor == null) { player.WriteLine("Valid custom colors are:"); foreach (string color in CustomColor.GetNames()) { player.WriteLine(color); } Syntax(player, string.Format("<type> <[{0}{1}]code>", Color.CODE, Color.CODE)); return; } if (argument[0] == Color.CODE) player.Colors[ccolor].Set(argument[1]); else player.Colors[ccolor].Set(argument[0]); player.WriteLine(ccolor + "{0} color set.~X", CustomColor.GetName(ccolor)); } #endregion [rgn] } }