diff options
| author | repo-alt <wvk17@yandex.ru> | 2022-02-15 00:04:29 +0300 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-14 22:04:29 +0100 | 
| commit | a2aeb659909304cba5522e1dd74057f9b71841eb (patch) | |
| tree | 7a782232bfad4c446c2547cb43ad8322b18aa4f7 /src/main/java | |
| parent | 751cc2e792ed69e58505ad19377a4eae4feb22e6 (diff) | |
| download | GT5-Unofficial-a2aeb659909304cba5522e1dd74057f9b71841eb.tar.gz GT5-Unofficial-a2aeb659909304cba5522e1dd74057f9b71841eb.tar.bz2 GT5-Unofficial-a2aeb659909304cba5522e1dd74057f9b71841eb.zip | |
Server side metaitems localization (#938)
fixes https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/8778
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/gregtech/GT_Mod.java | 4 | ||||
| -rw-r--r-- | src/main/java/gregtech/api/util/GT_LanguageManager.java | 31 | 
2 files changed, 29 insertions, 6 deletions
| diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 0d9287bc21..768fe4ceae 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -373,8 +373,8 @@ public class GT_Mod implements IGT_Mod {          new GT_ExtremeDieselFuelLoader().run();          GT_TooltipEventHandler.init();          MinecraftForge.EVENT_BUS.register(new GT_TooltipEventHandler()); -         -         +        GT_LanguageManager.propagateLocalizationServerSide(); +          /*            * Until this point most crafting recipe additions, and removals, have been buffered.           * Go through, execute the removals in bulk, and then any deferred additions.  The bulk removals in particular significantly speed up the recipe list diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java index 66cd7e9b50..899a3e731b 100644 --- a/src/main/java/gregtech/api/util/GT_LanguageManager.java +++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java @@ -2,19 +2,23 @@ package gregtech.api.util;  import cpw.mods.fml.common.registry.LanguageRegistry;  import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +  import net.minecraft.item.ItemStack;  import net.minecraft.nbt.NBTTagCompound;  import net.minecraft.util.StatCollector;  import net.minecraftforge.common.config.Configuration;  import net.minecraftforge.common.config.Property; +import java.lang.reflect.Field;  import java.util.HashMap; +import java.util.Map;  import java.util.Map.Entry;  import static gregtech.api.enums.GT_Values.E;  public class GT_LanguageManager { -    public static final HashMap<String, String> TEMPMAP = new HashMap<String, String>(), BUFFERMAP = new HashMap<String, String>(), LANGMAP = new HashMap<String, String>(); +    public static final HashMap<String, String> TEMPMAP = new HashMap<>(), BUFFERMAP = new HashMap<>(), LANGMAP = new HashMap<>();      public static Configuration sEnglishFile;  	public static String sLanguage = "en_US";      public static boolean sUseEnglishFile = false; @@ -78,8 +82,9 @@ public class GT_LanguageManager {              rTranslation = StatCollector.translateToLocal(tTrimmedKey);              if (GT_Utility.isStringInvalid(rTranslation) || tTrimmedKey.equals(rTranslation)) {                  if (aKey.endsWith(".name")) { -                    rTranslation = StatCollector.translateToLocal(tTrimmedKey.substring(0, tTrimmedKey.length() - 5)); -                    if (GT_Utility.isStringInvalid(rTranslation) || tTrimmedKey.substring(0, tTrimmedKey.length() - 5).equals(rTranslation)) { +                    String trimmedKeyNoName = tTrimmedKey.substring(0, tTrimmedKey.length() - 5); +                    rTranslation = StatCollector.translateToLocal(trimmedKeyNoName); +                    if (GT_Utility.isStringInvalid(rTranslation) || trimmedKeyNoName.equals(rTranslation)) {                          return aKey;                      }                  } else { @@ -365,5 +370,23 @@ public class GT_LanguageManager {          addStringLocalization("Item_DESCRIPTION_Index_500", "Turbine Efficiency (Loose): %s");          addStringLocalization("Item_DESCRIPTION_Index_501", "Optimal Steam flow (Loose): %s L/t");      } -     + +    @SuppressWarnings("rawtypes, unchecked") +    public static void propagateLocalizationServerSide() { +        if (!GT_Values.GT.isServerSide()) +            return; +        try { +            Class cls = Class.forName("net.minecraft.util.StringTranslate"); +            Field languageList = cls.getDeclaredField("languageList"); +            languageList.setAccessible(true); +            Field instance = cls.getDeclaredField("instance"); +            instance.setAccessible(true); +            Object m = languageList.get(instance.get(null)); +            if (!(m instanceof Map)) +                return; +            ((Map)m).putAll(LANGMAP); +        } catch (Throwable ex) { +            ex.printStackTrace(); +        } +    }  } | 
