private static void UnbanIPHandler( Player player, Command cmd )
{
string targetNameOrIP = cmd.Next();
if ( targetNameOrIP == null ) {
CdUnbanIP.PrintUsage( player );
return;
}
string reason = cmd.NextAll();
try {
IPAddress targetAddress;
if ( Server.IsIP( targetNameOrIP ) && IPAddress.TryParse( targetNameOrIP, out targetAddress ) ) {
targetAddress.UnbanIP( player, reason, true, true );
} else {
PlayerInfo target = PlayerDB.FindPlayerInfoOrPrintMatches( player, targetNameOrIP );
if ( target == null )
return;
if ( target.LastIP.Equals( IPAddress.Any ) || target.LastIP.Equals( IPAddress.None ) ) {
target.Unban( player, reason, true, true );
} else {
target.UnbanIP( player, reason, true, true );
}
}
} catch ( PlayerOpException ex ) {
player.Message( ex.MessageColored );
}
}