private static void BindHandler( Player player, Command cmd )
{
string originalBlockName = cmd.Next();
if ( originalBlockName == null ) {
player.Message( "All bindings have been reset." );
player.ResetAllBinds();
return;
}
Block originalBlock = Map.GetBlockByName( originalBlockName );
if ( originalBlock == Block.Undefined ) {
player.Message( "Bind: Unrecognized block name: {0}", originalBlockName );
return;
}
string replacementBlockName = cmd.Next();
if ( replacementBlockName == null ) {
if ( player.GetBind( originalBlock ) != originalBlock ) {
player.Message( "{0} is no longer bound to {1}",
originalBlock,
player.GetBind( originalBlock ) );
player.ResetBind( originalBlock );
} else {
player.Message( "{0} is not bound to anything.",
originalBlock );
}
return;
}
if ( cmd.HasNext ) {
CdBind.PrintUsage( player );
return;
}
Block replacementBlock = Map.GetBlockByName( replacementBlockName );
if ( replacementBlock == Block.Undefined ) {
player.Message( "Bind: Unrecognized block name: {0}", replacementBlockName );
} else {
Permission permission = Permission.Build;
switch ( replacementBlock ) {
case Block.Grass:
permission = Permission.PlaceGrass;
break;
case Block.Admincrete:
permission = Permission.PlaceAdmincrete;
break;
case Block.Water:
permission = Permission.PlaceWater;
break;
case Block.Lava:
permission = Permission.PlaceLava;
break;
}
if ( player.Can( permission ) ) {
player.Bind( originalBlock, replacementBlock );
player.Message( "{0} is now replaced with {1}", originalBlock, replacementBlock );
} else {
player.Message( "&WYou do not have {0} permission.", permission );
}
}
}