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 }