diff --git a/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java b/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java index 5fa74621ed..19e8d0b062 100644 --- a/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java +++ b/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java @@ -88,7 +88,6 @@ import net.minecraftforge.fml.common.WrongMinecraftVersionException; import net.minecraftforge.fml.common.eventhandler.EventBus; import net.minecraftforge.fml.common.network.FMLNetworkEvent; import net.minecraftforge.fml.common.network.internal.FMLNetworkHandler; -import net.minecraftforge.fml.common.registry.LanguageRegistry; import net.minecraftforge.fml.common.registry.PersistentRegistryManager; import net.minecraftforge.fml.common.toposort.ModSortingException; import net.minecraftforge.fml.relauncher.Side; @@ -589,7 +588,6 @@ public class FMLClientHandler implements IFMLSidedHandler @Override public void addModAsResource(ModContainer container) { - LanguageRegistry.instance().loadLanguagesFor(container, Side.CLIENT); Class resourcePackType = container.getCustomResourcePackClass(); if (resourcePackType != null) { diff --git a/src/main/java/net/minecraftforge/fml/common/functions/CollectionWrapperFactory.java b/src/main/java/net/minecraftforge/fml/common/functions/CollectionWrapperFactory.java deleted file mode 100644 index be6ff3949b..0000000000 --- a/src/main/java/net/minecraftforge/fml/common/functions/CollectionWrapperFactory.java +++ /dev/null @@ -1,32 +0,0 @@ -package net.minecraftforge.fml.common.functions; - -import java.util.Collection; -import java.util.List; -import com.google.common.collect.Collections2; -import com.google.common.collect.Lists; - -public class CollectionWrapperFactory { - /** - * Return a read only cast view of the supplied raw collection, based on the element type given - * @param coll The collection to cast - * @param elementType the super type contained in the collection - * @return a collection asserting that type relationship - */ - public static Collection wrap(@SuppressWarnings("rawtypes") Collection coll, Class elementType) - { - Collection asGeneric = coll; - return Collections2.transform(asGeneric, new TypeCastFunction(elementType)); - } - - /** - * Return a read only cast view of the supplied raw list, based on the element type given - * @param list The list to cast - * @param elementType the super type contained in the list - * @return a list asserting that type relationship - */ - public static List wrap(@SuppressWarnings("rawtypes") List list, Class elementType) - { - List asGeneric = list; - return Lists.transform(asGeneric, new TypeCastFunction(elementType)); - } -} diff --git a/src/main/java/net/minecraftforge/fml/common/registry/LanguageRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/LanguageRegistry.java deleted file mode 100644 index 3b2a369f80..0000000000 --- a/src/main/java/net/minecraftforge/fml/common/registry/LanguageRegistry.java +++ /dev/null @@ -1,324 +0,0 @@ -/* - * Forge Mod Loader - * Copyright (c) 2012-2013 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v2.1 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * - * Contributors: - * cpw - implementation - */ - -package net.minecraftforge.fml.common.registry; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.URL; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -import org.apache.logging.log4j.Level; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.translation.LanguageMap; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.FMLLog; -import net.minecraftforge.fml.common.Loader; -import net.minecraftforge.fml.common.ModContainer; -import net.minecraftforge.fml.relauncher.Side; - -import com.google.common.base.Charsets; -import com.google.common.base.Joiner; -import com.google.common.collect.Lists; - -public class LanguageRegistry -{ - private static final LanguageRegistry INSTANCE = new LanguageRegistry(); - - private Map modLanguageData=new HashMap(); - - private static final Pattern assetENUSLang = Pattern.compile("assets/(.*)/lang/(?:.+/|)([\\w_-]+).lang"); - - public static LanguageRegistry instance() - { - return INSTANCE; - } - - public String getStringLocalization(String key) - { - return getStringLocalization(key, FMLCommonHandler.instance().getCurrentLanguage()); - } - - public String getStringLocalization(String key, String lang) - { - String localizedString = ""; - Properties langPack = modLanguageData.get(lang); - - if (langPack != null) { - if (langPack.getProperty(key) != null) { - localizedString = langPack.getProperty(key); - } - } - - return localizedString; - } - - /** - * Deprecated for removal in 1.8. Use the assets lang system - */ - @Deprecated - public void addStringLocalization(String key, String value) - { - addStringLocalization(key, "en_US", value); - } - - /** - * Deprecated for removal in 1.8. Use the assets lang system - */ - @Deprecated - public void addStringLocalization(String key, String lang, String value) - { - Properties langPack=modLanguageData.get(lang); - if (langPack==null) { - langPack=new Properties(); - modLanguageData.put(lang, langPack); - } - langPack.put(key,value); - } - - /** - * Deprecated for removal in 1.8. Use the assets lang system - */ - @Deprecated - public void addStringLocalization(Properties langPackAdditions) { - addStringLocalization(langPackAdditions, "en_US"); - } - - /** - * Deprecated for removal in 1.8. Use the assets lang system - */ - @Deprecated - public void addStringLocalization(Properties langPackAdditions, String lang) { - Properties langPack = modLanguageData.get(lang); - if (langPack == null) { - langPack = new Properties(); - modLanguageData.put(lang, langPack); - } - if (langPackAdditions != null) { - langPack.putAll(langPackAdditions); - } - } - - /** - * Deprecated for removal in 1.8. Use the assets lang system - */ - @Deprecated - public void addNameForObject(Object objectToName, String lang, String name) - { - String objectName; - if (objectToName instanceof Item) { - objectName=((Item)objectToName).getUnlocalizedName(); - } else if (objectToName instanceof Block) { - objectName=((Block)objectToName).getUnlocalizedName(); - } else if (objectToName instanceof ItemStack) { - objectName=((ItemStack)objectToName).getItem().getUnlocalizedName((ItemStack)objectToName); - } else { - throw new IllegalArgumentException(String.format("Illegal object for naming %s",objectToName)); - } - objectName+=".name"; - addStringLocalization(objectName, lang, name); - } - - /** - * Deprecated for removal in 1.8. Use the assets lang system - */ - @Deprecated - public static void addName(Object objectToName, String name) - { - instance().addNameForObject(objectToName, "en_US", name); - } - - /** - * Deprecated for removal in 1.8. Use the assets lang system - */ - @SuppressWarnings("unchecked") - @Deprecated - public void mergeLanguageTable(@SuppressWarnings("rawtypes") Map properties, String lang) - { - Properties langPack=modLanguageData.get(lang); - if (langPack!=null) { - mergeWithoutOverwrite(langPack, properties); - } - Properties usPack=modLanguageData.get("en_US"); - if (usPack!=null) { - mergeWithoutOverwrite(usPack, properties); - } - } - - @Deprecated - private void mergeWithoutOverwrite(Map from, Map to) - { - for (Entry e : from.entrySet()) - { - if (!to.containsKey(e.getKey())) - { - to.put(e.getKey(),e.getValue()); - } - } - } - /** - * Deprecated for removal in 1.8. Use the assets lang system - */ - @Deprecated - public void loadLocalization(String localizationFile, String lang, boolean isXML) - { - URL urlResource = this.getClass().getResource(localizationFile); - if (urlResource != null) - { - loadLocalization(urlResource, lang, isXML); - } - else - { - ModContainer activeModContainer = Loader.instance().activeModContainer(); - if (activeModContainer!=null) - { - FMLLog.log(activeModContainer.getModId(), Level.ERROR, "The language resource %s cannot be located on the classpath. This is a programming error.", localizationFile); - } - else - { - FMLLog.log(Level.ERROR, "The language resource %s cannot be located on the classpath. This is a programming error.", localizationFile); - } - } - } - - /** - * Deprecated for removal in 1.8. Use the assets lang system - */ - @Deprecated - public void loadLocalization(URL localizationFile, String lang, boolean isXML) - { - InputStream langStream = null; - Properties langPack = new Properties(); - - try { - langStream = localizationFile.openStream(); - - if (isXML) { - langPack.loadFromXML(langStream); - } - else { - langPack.load(new InputStreamReader(langStream,Charsets.UTF_8)); - } - - addStringLocalization(langPack, lang); - } - catch (IOException e) { - FMLLog.log(Level.ERROR, e, "Unable to load localization from file %s", localizationFile); - } - finally { - try { - if (langStream != null) { - langStream.close(); - } - } - catch (IOException ex) { - // HUSH - } - } - } - - public void injectLanguage(String language, Map parsedLangFile) - { - - Properties p = modLanguageData.get(language); - if (p == null) - { - p = new Properties(); - modLanguageData.put(language, p); - } - p.putAll(parsedLangFile); - } - - public void loadLanguagesFor(ModContainer container, Side side) - { - File source = container.getSource(); - try - { - if (source.isDirectory()) - { - searchDirForLanguages(source, "", side); - } - else - { - searchZipForLanguages(source, side); - } - } - catch (IOException ioe) - { - - } - } - - private void searchZipForLanguages(File source, Side side) throws IOException - { - ZipFile zf = new ZipFile(source); - List added = Lists.newArrayList(); - for (ZipEntry ze : Collections.list(zf.entries())) - { - Matcher matcher = assetENUSLang.matcher(ze.getName()); - if (matcher.matches()) - { - String lang = matcher.group(2); - //FMLLog.fine("Injecting found translation data for lang %s in zip file %s at %s into language system", lang, source.getName(), ze.getName()); - added.add(lang); - LanguageRegistry.instance().injectLanguage(lang, LanguageMap.parseLangFile(zf.getInputStream(ze))); - // Ensure en_US is available to StringTranslate on the server - if ("en_US".equals(lang) && side == Side.SERVER) - { - LanguageMap.inject(zf.getInputStream(ze)); - } - } - } - if (added.size() > 0) - FMLLog.fine("Found translations in %s [%s]", source.getName(), Joiner.on(", ").join(added)); - zf.close(); - } - - private void searchDirForLanguages(File source, String path, Side side) throws IOException - { - for (File file : source.listFiles()) - { - String currPath = path+file.getName(); - if (file.isDirectory()) - { - searchDirForLanguages(file, currPath+'/', side); - } - Matcher matcher = assetENUSLang.matcher(currPath); - if (matcher.matches()) - { - String lang = matcher.group(2); - FMLLog.fine("Injecting found translation assets for lang %s at %s into language system", lang, currPath); - LanguageRegistry.instance().injectLanguage(lang, LanguageMap.parseLangFile(new FileInputStream(file))); - // Ensure en_US is available to StringTranslate on the server - if ("en_US".equals(lang) && side == Side.SERVER) - { - LanguageMap.inject(new FileInputStream(file)); - } - } - } - } -} diff --git a/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java b/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java index 252e94dc30..b80bf1e342 100644 --- a/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java +++ b/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java @@ -34,7 +34,6 @@ import net.minecraftforge.fml.common.StartupQuery; import net.minecraftforge.fml.common.eventhandler.EventBus; import net.minecraftforge.fml.common.functions.GenericIterableFactory; import net.minecraftforge.fml.common.network.FMLNetworkEvent; -import net.minecraftforge.fml.common.registry.LanguageRegistry; import net.minecraftforge.fml.relauncher.Side; import com.google.common.collect.ImmutableList; @@ -215,10 +214,11 @@ public class FMLServerHandler implements IFMLSidedHandler { return false; } + @Override public void addModAsResource(ModContainer container) { - LanguageRegistry.instance().loadLanguagesFor(container, Side.SERVER); + // NOOP } @Override