internal static void KillHandler( Player player, Command cmd )
{
string name = cmd.Next();
string OReason = cmd.NextAll();
if ( name == null ) {
player.Message( "Please enter a name" );
return;
}
Player target = Server.FindPlayerOrPrintMatches( player, name, false, true );
if ( target == null )
return;
if ( target.Immortal ) {
player.Message( "&SYou failed to kill {0}&S, they are immortal", target.ClassyName );
return;
}
if ( target == player ) {
player.Message( "You suicidal bro?" );
return;
}
double time = ( DateTime.UtcNow - player.Info.LastUsedKill ).TotalSeconds;
if ( time < 10 ) {
player.Message( "&WYou can use /Kill again in " + Math.Round( 10 - time ) + " seconds." );
return;
}
if ( target == null ) {
player.Message( "You need to enter a player name to Kill" );
return;
} else {
if ( player.Can( Permission.Kill, target.Info.Rank ) ) {
target.TeleportTo( player.World.Map.Spawn );
player.Info.LastUsedKill = DateTime.UtcNow;
if ( !string.IsNullOrWhiteSpace( OReason ) ) {
Server.Players.CanSee( target ).Union( target ).Message( "{0}&C was &4Killed&C by {1}&W: {2}", target.ClassyName, player.ClassyName, OReason );
} else {
Server.Players.CanSee( target ).Union( target ).Message( "{0}&C was &4Killed&C by {1}", target.ClassyName, player.ClassyName );
}
return;
} else {
player.Message( "You can only Kill players ranked {0}&S or lower",
player.Info.Rank.GetLimit( Permission.Kill ).ClassyName );
player.Message( "{0}&S is ranked {1}", target.ClassyName, target.Info.Rank.ClassyName );
}
}
}