diff --git a/MudEngine/Commands/CommandList.cs b/MudEngine/Commands/CommandList.cs deleted file mode 100644 index 75f54e0..0000000 --- a/MudEngine/Commands/CommandList.cs +++ /dev/null @@ -1,157 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.IO; -using System.Text; - -using MudEngine.FileSystem; -using MudEngine.GameObjects.Characters; -using MudEngine.GameManagement; -using MudEngine.Commands; -using MudEngine.GameObjects.Environment; - -namespace MudEngine.Commands -{ - /// - /// The List command is used to list filenames of a specified object type. - /// - public class CommandList : IGameCommand - { - /// - /// Used by the Command Engine to allow for overriding any other commands that contain the same name. - /// TODO: Does Overriding Commands still work? This is part of some old code I wrote several years back and might be broke. - /// - public Boolean Override { get; set; } - - /// - /// The name of the command. - /// If Override is set to true, this command will override any other command that contains the same name. - /// - public String Name { get; set; } - - /// - /// A collection of strings that contains helpfull information for this Command. - /// When the user enteres 'Help Exit' the game will print the content of this collection. - /// This is treated like a virtual book, each entry in the collection is printed as a new line. - /// - public List Help { get; set; } - - public CommandList() - { - Help = new List(); - Help.Add("Using the List command, you can view a generated list of filenames that pertain to a supplied object type."); - Help.Add("Usage: List 'ItemType'"); - Help.Add("Usage: List 'ItemName>ItemType'"); - Help.Add(""); - Help.Add("Supported Listable ItemTypes are as follows:"); - Help.Add("Players"); - Help.Add("Realms"); - Help.Add("Zones"); - Help.Add("RealmName>Rooms"); - Help.Add("RealmName>Zones"); - Help.Add("RealmName>ZoneName>Rooms"); - } - - public void Execute(String command, BaseCharacter player) - { - if ((player.Role == SecurityRoles.Admin) || (player.Role == SecurityRoles.GM)) - { - //Player must be a admin or GM to view all the objects on the server like this. - - command = command.Substring("List".Length).Trim(); - String[] data = command.ToLower().Split('>'); - - if ((data.Length == 0) || (String.IsNullOrEmpty(data[0]))) - { - player.Send("Invalid command usage. Enter 'help List' for usage examples."); - return; - } - else if (data.Length == 1) - { - switch (data[0]) - { - case "realms": - player.Send("Currently loaded Realm files:"); - foreach (Realm r in player.ActiveGame.World.RealmCollection) - player.Send(r.Filename + " | ", false); - break; - case "players": - player.Send("Players with created characters:"); - BaseCharacter p = new BaseCharacter(player.ActiveGame); - foreach (String file in Directory.GetFiles(player.ActiveGame.DataPaths.Players, "*.character")) - { - p.Load(file); - player.Send(p.Name + " | ", false); - } - break; - case "zones": - player.Send("Currently loaded Zones. This spans across every Realm in the world."); - foreach (Realm r in player.ActiveGame.World.RealmCollection) - { - foreach (Zone z in r.ZoneCollection) - { - player.Send(Path.GetFileNameWithoutExtension(r.Filename) + ">" + Path.GetFileNameWithoutExtension(z.Filename)); - } - } - break; - default: - player.Send("Invalid token supplied. Enter 'Help List' for usage examples."); - break; - } - } - else if (data.Length == 2) - { - if (data[1] == "zones") - { - if (player.ActiveGame.World.GetRealm(data[0] + ".realm") == null) - { - player.Send("Invalid Realm, unable to list Zones."); - return; - } - player.Send("Displaying Currently loaded Zones within Realm " + data[0]); - foreach (Zone z in player.ActiveGame.World.GetRealm(data[0] + ".realm").ZoneCollection) - player.Send(z.Filename + " | ", false); - } - else if (data[1] == "rooms") - { - if (player.ActiveGame.World.GetRealm(data[0] + ".realm") == null) - { - player.Send("Invalid Realm, unable to list Rooms."); - return; - } - - player.Send("Displaying currently loaded Rooms within Realm " + data[0] + ". These Rooms span multiple Zones."); - foreach (Zone z in player.ActiveGame.World.GetRealm(data[0] + ".realm").ZoneCollection) - { - foreach (Room r in z.RoomCollection) - { - player.Send(Path.GetFileNameWithoutExtension(z.Filename) + ">" + Path.GetFileNameWithoutExtension(r.Filename)); - } - } - } - } - else if (data.Length == 3) - { - if (data[2] == "rooms") - { - if (player.ActiveGame.World.GetRealm(data[0] + ".realm") == null) - { - player.Send("Invalid Realm, unable to list Rooms."); - return; - } - - if (player.ActiveGame.World.GetRealm(data[0] + ".realm").GetZone(data[1] + ".zone")[0] == null) - { - player.Send("Invalid Zone, unable to list Rooms."); - return; - } - - player.Send("Displaying Currently loaded Rooms within " + data[0] + ">" + data[1]); - foreach (Room r in player.ActiveGame.World.GetRealm(data[0] + ".realm").GetZone(data[1] + ".zone")[0].RoomCollection) - player.Send(r.Filename + " | ", false); - } - } - } - } - } -} diff --git a/MudGame/Scripts/CommandCreate.cs b/MudGame/Scripts/CommandCreate.cs index ecb2992..b8deb53 100644 --- a/MudGame/Scripts/CommandCreate.cs +++ b/MudGame/Scripts/CommandCreate.cs @@ -108,6 +108,8 @@ public class CommandCreate : IGameCommand player.Send(env[0] + " created."); Log.Write(player.Name + " created a Realm called " + realm.Filename); } + + //Check if this Zone is a valid Zone. if it returns true, then the 'zone' field will reference the new Zone Boolean validZone = ValidateZone(env[0], env[1], player); if (validZone) diff --git a/MudGame/Scripts/CommandSay.cs b/MudGame/Scripts/CommandSay.cs index c6847d0..2034259 100644 --- a/MudGame/Scripts/CommandSay.cs +++ b/MudGame/Scripts/CommandSay.cs @@ -43,7 +43,8 @@ public class CommandSay : IGameCommand if (command.Length <= 4) { //If no message content, print the help for the command to the player. - player.ExecuteCommand("Help Say"); + CommandHelp help = new CommandHelp(); + help.Execute("Help Say", player); return; //nothing to say, don't say anything at all. }