package magic.utility; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import magic.data.GeneralConfig; import magic.data.MagicIcon; import magic.data.MagicPredefinedFormat; import magic.data.MagicSets; public final class MagicResources { private MagicResources() { } // Used as reference class for accessing JAR resources. private static final MagicResources instance = new MagicResources(); public static String getKeywordsFileContent() { final String content = getResourceFileContent( String.format("/magic/data/keywords/%s.txt", GeneralConfig.getInstance().getTranslation()) ); return content.isEmpty() ? getResourceFileContent("/magic/data/keywords/English.txt") : content; } public static String getFileContent(final MagicSets magicSet) { return getResourceFileContent("/magic/data/sets/" + magicSet.toString().replace("_", "") + ".txt"); } public static String getFileContent(final MagicPredefinedFormat magicFormat) { return getResourceFileContent("/magic/data/formats/" + magicFormat.getFilename() + ".fmt"); } public static InputStream getJarResourceStream(String filename) { return instance.getClass().getResourceAsStream(filename); } private static String getResourceFileContent(final String filename) { try (final InputStream inputStream = getJarResourceStream(filename)) { return inputStream != null ? FileIO.toStr(inputStream) : ""; } catch (final IOException ex) { System.err.println(filename + " : " + ex.getMessage()); return ""; } } public static URL getManaImageUrl(MagicIcon manaIcon) { return instance.getClass().getResource("/magic/data/icons/mana/" + manaIcon.getFilename()); } public static URL getImageUrl(final String imageFilename) { return instance.getClass().getResource("/magic/data/icons/" + imageFilename); } public static URL getTextureImageUrl(final String imageFilename) { return instance.getClass().getResource("/magic/data/textures/" + imageFilename); } public static URL getSoundUrl(final String filename) { return instance.getClass().getResource("/soundfx/" + filename); } public static InputStreamReader getH2ScriptFile(String filename) { return new InputStreamReader( getJarResourceStream("/h2/stats/" + filename) ); } }