MudEngine:

- Removed the need for the old CommandResult Type to be a returned value on all commands. Command.Execute() is now just void.
 - All commands updated to now return a value. They use player.Send() to direct messages to the player instead.
 - Removed CommandClear from the project and made it a script so that developers can see how to write custom command scripts.
This commit is contained in:
Scionwest_cp 2010-08-15 13:06:51 -07:00
parent 9792bfcd32
commit bbd411fdd1
14 changed files with 35 additions and 77 deletions

View file

@ -1,27 +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
{
public class CommandClear : IGameCommand
{
public Boolean Override { get; set; }
public String Name { get; set; }
public CommandResults Execute(String command, BaseCharacter player)
{
player.FlushConsole();
return new CommandResults();
}
}
}

View file

@ -17,7 +17,7 @@ namespace MudEngine.Commands
public Boolean Override { get; set; }
public String Name { get; set; }
public CommandResults Execute(String command, BaseCharacter player)
public void Execute(String command, BaseCharacter player)
{
if (player.ActiveGame.IsMultiplayer)
{
@ -46,7 +46,6 @@ namespace MudEngine.Commands
player.Save(player.ActiveGame.DataPaths.Players);
player.ActiveGame.Shutdown();
}
return new CommandResults();
}
}
}

View file

@ -13,12 +13,9 @@ namespace MudEngine.Commands
public Boolean Override { get; set; }
public MudEngine.GameManagement.CommandResults Execute(String command, BaseCharacter player)
public void Execute(String command, BaseCharacter player)
{
player.Send(player.ActiveGame.WorldTime.GetCurrentWorldTime());
return new GameManagement.CommandResults();
}
}
}

View file

@ -16,14 +16,12 @@ namespace MudEngine.Commands
public Boolean Override { get; set; }
public String Name { get; set; }
public CommandResults Execute(String command, BaseCharacter player)
public void Execute(String command, BaseCharacter player)
{
String path = player.ActiveGame.DataPaths.Players;
String filename = Path.Combine(path, player.Filename);
player.Load(filename);
return new CommandResults();
}
}
}

View file

@ -17,7 +17,7 @@ namespace MudEngine.Commands
public Boolean Override { get; set; }
public String Name { get; set; }
public CommandResults Execute(String command, BaseCharacter player)
public void Execute(String command, BaseCharacter player)
{
player.Send(player.ActiveGame.GameTitle);
player.Send(player.ActiveGame.Version);
@ -131,8 +131,6 @@ namespace MudEngine.Commands
}
}
}
return new CommandResults();
}
}
}

View file

@ -17,11 +17,12 @@ namespace MudEngine.Commands
public String Name { get; set; }
public Boolean Override { get; set; }
public CommandResults Execute(String command, BaseCharacter player)
public void Execute(String command, BaseCharacter player)
{
if (player.CurrentRoom == null)
{
return new CommandResults("Not within a created Room.");
player.Send("You are not within any Room.");
return;
}
if (player.CurrentRoom.DetailedDescription.Count == 0)
@ -33,8 +34,6 @@ namespace MudEngine.Commands
player.Send(entry);
}
}
return new CommandResults();
}
}
}

View file

@ -21,7 +21,7 @@ namespace MudEngine.Commands
public String Name { get; set; }
public Boolean Override { get; set; }
public CommandResults Execute(String command, BaseCharacter player)
public void Execute(String command, BaseCharacter player)
{
if (player.Role == SecurityRoles.Admin)
{
@ -41,11 +41,13 @@ namespace MudEngine.Commands
player.ActiveGame.Server.Initialize(555, ref player.ActiveGame.PlayerCollection);
*/
Console.WriteLine("Server Restart Completed.");
Log.Write("Server Restart Completed.");
//This is never printed as CommandResults is no longer outputted to the player console, player.Send is used
return new CommandResults("Server Restarted.");
player.Send("Server Restarted.");
return;
}
return new CommandResults("Access Denied.");
player.Send("Access Denied.");
}
}
}

View file

@ -16,22 +16,9 @@ namespace MudEngine.Commands
public Boolean Override { get; set; }
public String Name { get; set; }
public CommandResults Execute(String command, BaseCharacter player)
public void Execute(String command, BaseCharacter player)
{
/*
if (player.ActiveGame.PlayerCollection.Length != 0)
{
if (player.GetType().Name != "BaseCharacter")
{
Scripting.GameObject obj = player.ActiveGame.scriptEngine.GetObject(player.ActiveGame.PlayerCollection.GetType().Name);
obj.InvokeMethod("Save", new object[] { player.ActiveGame.DataPaths.Players });
}
}
else */
player.Save(player.ActiveGame.DataPaths.Players);
return new CommandResults();
}
}
}

View file

@ -17,14 +17,12 @@ namespace MudEngine.Commands
public Boolean Override { get; set; }
public String Name { get; set; }
public CommandResults Execute(String command, BaseCharacter player)
public void Execute(String command, BaseCharacter player)
{
if ((player.Role == SecurityRoles.Admin) || (player.Role == SecurityRoles.GM))
{
player.ActiveGame.Save();
}
return new CommandResults();
}
}
}

View file

@ -17,13 +17,16 @@ namespace MudEngine.Commands
public String Name { get; set; }
public Boolean Override { get; set; }
public CommandResults Execute(String command, BaseCharacter player)
public void Execute(String command, BaseCharacter player)
{
String[] words = command.Split(' ');
List<String> directions = new List<String>();
if (words.Length == 1)
return new CommandResults("No direction supplied");
{
player.Send("No direction provided!");
return;
}
else
{
foreach (Door door in player.CurrentRoom.Doorways)
@ -38,13 +41,11 @@ namespace MudEngine.Commands
if (player.ActiveGame.AutoSave)
player.Save(player.ActiveGame.DataPaths.Players);
return null;
return;
}
}
}
player.Send("Unable to travel in that direction.");
return null;
}
}
}

View file

@ -70,7 +70,7 @@ namespace MudEngine.GameManagement
/// <param name="Name"></param>
/// <param name="Parameter"></param>
/// <returns></returns>
public CommandResults ExecuteCommand(String command, BaseCharacter player)
public void ExecuteCommand(String command, BaseCharacter player)
{
String commandKey = command.Insert(0, "Command");
@ -79,13 +79,10 @@ namespace MudEngine.GameManagement
if (commandKey.ToLower().Contains(key.ToLower()))
{
IGameCommand cmd = CommandEngine.CommandCollection[key];
return cmd.Execute(command, player);
//return player.CommandSystem._Commands[key].Execute(command, player);
//return player.Commands.ExecuteCommand[key.ToLower()]Execute(command, player);
cmd.Execute(command, player);
return;
}
}
return new CommandResults();
}
public static void LoadBaseCommands()

View file

@ -19,6 +19,6 @@ namespace MudEngine.GameManagement
//Used to override commands with the same name
Boolean Override { get; set; }
//Executes the command.
CommandResults Execute(String command, BaseCharacter player);
void Execute(String command, BaseCharacter player);
}
}

View file

@ -58,7 +58,6 @@
<Compile Include="Commands\CommandWalk.cs" />
<Compile Include="Commands\CommandLoad.cs" />
<Compile Include="Commands\CommandLogin.cs" />
<Compile Include="Commands\CommandClear.cs" />
<Compile Include="Commands\CommandSaveWorld.cs" />
<Compile Include="FileSystem\SaveDataPaths.cs" />
<Compile Include="GameManagement\CommandEngine.cs" />

View file

@ -0,0 +1,10 @@
public class CommandClear : IGameCommand
{
public Boolean Override { get; set; }
public String Name { get; set; }
public void Execute(String command, BaseCharacter player)
{
player.FlushConsole();
}
}