fCraft.PlayerInfo.Unfreeze C# (CSharp) Method

Unfreeze() public method

Unfreezes this player. Throws PlayerOpException on problems.
public Unfreeze ( [ player, bool announce, bool raiseEvents ) : void
player [ Player who is doing the unfreezing.
announce bool Whether to announce freezing publicly on the server.
raiseEvents bool Whether to raise PlayerInfo.FreezeChanging and PlayerInfo.FreezeChanged events.
return void
        public void Unfreeze( [NotNull] Player player, bool announce, bool raiseEvents )
        {
            if ( player == null )
                throw new ArgumentNullException( "player" );

            // Check if player is trying to freeze self
            if ( player.Info == this ) {
                PlayerOpException.ThrowCannotTargetSelf( player, this, "unfreeze" );
            }

            lock ( actionLock ) {
                // Check if player can freeze in general
                if ( !player.Can( Permission.Freeze ) ) {
                    PlayerOpException.ThrowPermissionMissing( player, this, "unfreeze", Permission.Freeze );
                }

                // Check if target is already frozen
                if ( !IsFrozen ) {
                    string msg = String.Format( "Player {0} is not currently frozen.", Name );
                    string colorMsg = String.Format( "&SPlayer {0}&S is not currently frozen.", ClassyName );
                    throw new PlayerOpException( player, this, PlayerOpExceptionCode.NoActionNeeded, msg, colorMsg );
                }

                // Check if player has sufficient rank permissions
                if ( !player.Can( Permission.Freeze, Rank ) ) {
                    PlayerOpException.ThrowPermissionLimit( player, this, "unfreeze", Permission.Freeze );
                }

                // Raise PlayerInfo.FreezeChanging event
                if ( raiseEvents && RaiseFreezeChangingEvent( this, player, true, announce ) ) {
                    PlayerOpException.ThrowCancelled( player, this );
                }

                // Actually unfreeze
                Unfreeze();

                // Log and announce unfreeze
                Logger.Log( LogType.UserActivity,
                            "{0} unfroze {1}",
                            player.Name, Name );
                if ( announce ) {
                    Player target = PlayerObject;
                    if ( target != null ) {
                        target.Message( "&WYou were unfrozen by {0}", player.ClassyName );
                    }
                    Server.Message( target, "&SPlayer {0}&S was unfrozen by {1}",
                                            ClassyName, player.ClassyName );
                }

                // Raise PlayerInfo.FreezeChanged event
                if ( raiseEvents )
                    RaiseFreezeChangedEvent( this, player, true, announce );
            }
        }

Same methods

PlayerInfo::Unfreeze ( ) : void