fCraft.BuildingCommands.SetFontHandler C# (CSharp) Method

SetFontHandler() private static method

private static SetFontHandler ( Player player, Command cmd ) : void
player Player
cmd Command
return void
        private static void SetFontHandler( Player player, Command cmd )
        {
            string Param = cmd.Next();
            if ( Param == null ) {
                CdSetFont.PrintUsage( player );
                return;
            }
            if ( Param.ToLower() == "reset" ) {
                player.font = new Font( "Times New Roman", 20, FontStyle.Regular );
                player.Message( "SetFont: Font reverted back to default ({0} size {1})",
                    player.font.FontFamily.Name, player.font.Size );
                return;
            }
            if ( Param.ToLower() == "font" ) {
                string sectionName = cmd.NextAll();
                if ( !Directory.Exists( Paths.FontsPath ) ) {
                    Directory.CreateDirectory( Paths.FontsPath );
                    player.Message( "There are no fonts available for this server. Font is set to default: {0}", player.font.FontFamily.Name );
                    return;
                }
                string fontFileName = null;
                string[] sectionFiles = Directory.GetFiles( Paths.FontsPath, "*.ttf", SearchOption.TopDirectoryOnly );
                if ( sectionName.Length < 1 ) {
                    var sectionList = GetFontSectionList();
                    player.Message( "{0} fonts Available: {1}", sectionList.Length, sectionList.JoinToString() ); //print the folder contents
                    return;
                }
                foreach (string t in sectionFiles)
                {
                    string sectionFullName = Path.GetFileNameWithoutExtension( t );
                    if ( sectionFullName == null )
                        continue;
                    if ( sectionFullName.StartsWith( sectionName, StringComparison.OrdinalIgnoreCase ) ) {
                        if ( sectionFullName.Equals( sectionName, StringComparison.OrdinalIgnoreCase ) ) {
                            fontFileName = t;
                            break;
                        } else if ( fontFileName == null ) {
                            fontFileName = t;
                        } else {
                            var matches = sectionFiles.Select( f => Path.GetFileNameWithoutExtension( f ) )
                                .Where( sn => sn != null && sn.StartsWith( sectionName, StringComparison.OrdinalIgnoreCase ) );
                            player.Message( "Multiple font files matched \"{0}\": {1}",
                                sectionName, matches.JoinToString() );
                            return;
                        }
                    }
                }
                if ( fontFileName != null ) {
                    string sectionFullName = Path.GetFileNameWithoutExtension( fontFileName );
                    player.Message( "Your font has changed to \"{0}\":", sectionFullName );
                    //change font here
                    player.font = new System.Drawing.Font( player.LoadFontFamily( fontFileName ), player.font.Size );
                    return;
                } else {
                    var sectionList = GetFontSectionList();
                    if ( sectionList == null ) {
                        player.Message( "No fonts have been found." );
                    } else {
                        player.Message( "No fonts found for \"{0}\". Available fonts: {1}",
                                        sectionName, sectionList.JoinToString() );
                    }
                }
            }
            if ( Param.ToLower() == "size" ) {
                int Size = -1;
                if ( cmd.NextInt( out Size ) ) {
                    if ( Size > 48 || Size < 10 ) {
                        player.Message( "&WIncorrect font size ({0}): Size needs to be between 10 and 48", Size );
                        return;
                    }
                    player.Message( "SetFont: Size changed from {0} to {1} ({2})", player.font.Size, Size, player.font.FontFamily.Name );
                    player.font = new System.Drawing.Font( player.font.FontFamily, Size );
                } else {
                    player.Message( "&WInvalid size, use /SetFont Size FontSize. Example: /SetFont Size 14" );
                    return;
                }
                return;
            } else {
                CdSetFont.PrintUsage( player );
                return;
            }
        }