Merge pull request #468 from Scavenger3/CommandEvent

Added PlayerCommand Event
This commit is contained in:
Lucas Nicodemus 2013-01-13 01:17:57 -08:00
commit 2e13cae16f
2 changed files with 33 additions and 0 deletions

View file

@ -241,6 +241,9 @@ namespace TShockAPI
string cmdName = args[0].ToLower();
args.RemoveAt(0);
if (Hooks.PlayerHooks.OnPlayerCommand(player, cmdName, cmdText, args))
return true;
IEnumerable<Command> cmds = ChatCommands.Where(c => c.HasAlias(cmdName));
if (cmds.Count() == 0)

View file

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
@ -14,10 +15,21 @@ namespace TShockAPI.Hooks
}
}
public class PlayerCommandEventArgs : HandledEventArgs
{
public TSPlayer Player { get; set; }
public string CommandName { get; set; }
public string CommandText { get; set; }
public List<string> Parameters { get; set; }
}
public static class PlayerHooks
{
public delegate void PlayerLoginD(PlayerLoginEventArgs e);
public static event PlayerLoginD PlayerLogin;
public delegate void PlayerCommandD(PlayerCommandEventArgs e);
public static event PlayerCommandD PlayerCommand;
public static void OnPlayerLogin(TSPlayer ply)
{
if(PlayerLogin == null)
@ -28,5 +40,23 @@ namespace TShockAPI.Hooks
PlayerLoginEventArgs args = new PlayerLoginEventArgs(ply);
PlayerLogin(args);
}
public static bool OnPlayerCommand(TSPlayer player, string cmdName, string cmdText, List<string> args)
{
if (PlayerCommand == null)
{
return false;
}
PlayerCommandEventArgs playerCommandEventArgs = new PlayerCommandEventArgs()
{
Player = player,
CommandName = cmdName,
CommandText = cmdText,
Parameters = args
};
PlayerCommand(playerCommandEventArgs);
return playerCommandEventArgs.Handled;
}
}
}