#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 System; using Arthea.Connections.Players; using Arthea.Continents; using Arthea.Continents.Areas; using Arthea.Continents.Areas.Characters; using Arthea.Continents.Areas.Items; using Arthea.Continents.Areas.Rooms; using Arthea.Creation; using Arthea.Environment; namespace Arthea.Commands.Admin { /// <summary> /// Implementation of a create command. /// </summary> public class CreateCommand : Command { #region [rgn] Fields (1) private static readonly Type[] creatables = { typeof (Room), typeof (ItemIndex), typeof (CharIndex), typeof (Area), typeof (Continent), typeof (Help), typeof (Social) }; #endregion [rgn] #region [rgn] Constructors (1) /// <summary> /// Initializes a new instance of the <see cref="CreateCommand"/> class. /// </summary> public CreateCommand() : base("create", "creates a new object", Levels.Admin) { } #endregion [rgn] #region [rgn] Methods (2) // [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) { String arg = argument.FirstArg(); Olc.Create(player, GetCreateType(arg), argument); } // [rgn] Private Methods (1) /// <summary> /// Gets the type of object specified by an argument. /// </summary> /// <param name="arg">The arg.</param> /// <returns>a type of object that can be created.</returns> private static Type GetCreateType(String arg) { foreach (Type type in creatables) { if (arg.IsPrefixOf(type.Name)) return type; } return null; } #endregion [rgn] } }