001package net.minecraft.util;
002
003import java.io.BufferedReader;
004import java.io.InputStreamReader;
005
006public 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}