private static bool SetPlayerInfoField( [NotNull] Player player, [NotNull] string fieldName, [NotNull] IClassy info,
[CanBeNull] string oldValue, [CanBeNull] string newValue)
{
if ( player == null )
throw new ArgumentNullException( "player" );
if ( fieldName == null )
throw new ArgumentNullException( "fieldName" );
if ( info == null )
throw new ArgumentNullException( "info" );
if ( newValue == oldValue ) {
if ( newValue == null ) {
player.Message( "SetInfo: {0} for {1}&S is not set.",
fieldName, info.ClassyName );
} else {
player.Message( "SetInfo: {0} for {1}&S is already set to \"{2}&S\"",
fieldName, info.ClassyName, oldValue );
}
return false;
}
if ( oldValue == null ) {
player.Message( "SetInfo: {0} for {1}&S set to \"{2}&S\"",
fieldName, info.ClassyName, newValue );
} else if ( newValue == null ) {
player.Message( "SetInfo: {0} for {1}&S was reset (was \"{2}&S\")",
fieldName, info.ClassyName, oldValue );
} else {
player.Message( "SetInfo: {0} for {1}&S changed from \"{2}&S\" to \"{3}&S\"",
fieldName, info.ClassyName,
oldValue, newValue );
}
return true;
}