001    package net.minecraft.util;
002    
003    import java.io.BufferedReader;
004    import java.io.InputStreamReader;
005    
006    public class ChatAllowedCharacters
007    {
008        /**
009         * This String have the characters allowed in any text drawing of minecraft.
010         */
011        public static final String allowedCharacters = getAllowedCharacters();
012    
013        /**
014         * Array of the special characters that are allowed in any text drawing of Minecraft.
015         */
016        public static final char[] allowedCharactersArray = new char[] {'/', '\n', '\r', '\t', '\u0000', '\f', '`', '?', '*', '\\', '<', '>', '|', '\"', ':'};
017    
018        /**
019         * Load the font.txt resource file, that is on UTF-8 format. This file contains the characters that minecraft can
020         * render Strings on screen.
021         */
022        private static String getAllowedCharacters()
023        {
024            String var0 = "";
025    
026            try
027            {
028                BufferedReader var1 = new BufferedReader(new InputStreamReader(ChatAllowedCharacters.class.getResourceAsStream("/font.txt"), "UTF-8"));
029                String var2 = "";
030    
031                while ((var2 = var1.readLine()) != null)
032                {
033                    if (!var2.startsWith("#"))
034                    {
035                        var0 = var0 + var2;
036                    }
037                }
038    
039                var1.close();
040            }
041            catch (Exception var3)
042            {
043                ;
044            }
045    
046            return var0;
047        }
048    
049        public static final boolean isAllowedCharacter(char par0)
050        {
051            return par0 != 167 && (allowedCharacters.indexOf(par0) >= 0 || par0 > 32);
052        }
053    
054        /**
055         * Filter string by only keeping those characters for which isAllowedCharacter() returns true.
056         */
057        public static String filerAllowedCharacters(String par0Str)
058        {
059            StringBuilder var1 = new StringBuilder();
060            char[] var2 = par0Str.toCharArray();
061            int var3 = var2.length;
062    
063            for (int var4 = 0; var4 < var3; ++var4)
064            {
065                char var5 = var2[var4];
066    
067                if (isAllowedCharacter(var5))
068                {
069                    var1.append(var5);
070                }
071            }
072    
073            return var1.toString();
074        }
075    }