From db0b07513e09c2999cbe64fafb79c97d2c68968a Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Sat, 16 Jun 2018 17:45:37 +0200 Subject: fixed SMP Assembly Line book issures. --- src/main/java/gregtech/GT_Mod.java | 6 +- .../gregtech/api/util/GT_Assemblyline_Server.java | 100 +++++++++++++++++++++ .../machines/basic/GT_MetaTileEntity_Scanner.java | 23 ++++- 3 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 src/main/java/gregtech/api/util/GT_Assemblyline_Server.java (limited to 'src') diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index ea43588016..95273f6d7e 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -585,7 +585,11 @@ public class GT_Mod implements IGT_Mod { for (Runnable tRunnable : GregTech_API.sAfterGTPreload) { tRunnable.run(); } - } catch (Throwable e) {e.printStackTrace(GT_Log.err);} + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) + GT_Assemblyline_Server.fillMap(aEvent); } @Mod.EventHandler diff --git a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java new file mode 100644 index 0000000000..e08cb0ea8b --- /dev/null +++ b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java @@ -0,0 +1,100 @@ +package gregtech.api.util; + +import java.io.File; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +import com.google.common.collect.ImmutableMap; + +import cpw.mods.fml.common.FMLLog; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import gregtech.api.GregTech_API; +import net.minecraftforge.common.config.ConfigCategory; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; + +public class GT_Assemblyline_Server { + + + public static LinkedHashMap lServerNames = new LinkedHashMap(); + private static LinkedHashMap internal2= new LinkedHashMap(),internal3 = new LinkedHashMap(),internal4= new LinkedHashMap(); + private static HashMap internal = new HashMap(); + + public static void fillMap(FMLPreInitializationEvent aEvent) { + + String s = new String(aEvent.getModConfigurationDirectory().getAbsolutePath()); + s = s.substring(0, aEvent.getModConfigurationDirectory().getAbsolutePath().length()-6); + s = s + "GregTech.lang"; + File f = new File(s); + s = ""; + Configuration conf = new Configuration(f); + + ConfigCategory cat = conf.getCategory("languagefile"); + internal.putAll(cat.getValues()); + for (Map.Entry entry : internal.entrySet()) + { + s=entry.getValue().getString().replaceAll("%", ""); + /*if (s.contains("material")&&!entry.getKey().contains("metaitem")) + lServerNames.put(entry.getKey(), entry.getKey()); + else */ + if (entry.getKey().contains("metaitem")&&s.contains("material")) + internal2.put(entry.getKey(), s); + else if (entry.getKey().contains("blockmachines")&&s.contains("material")) + internal3.put(entry.getKey(), s); + else if (entry.getKey().contains("blockmetal")&&s.contains("material")) + internal4.put(entry.getKey(), s); + else + lServerNames.put(entry.getKey(), s); + } + for (Map.Entry entry : internal2.entrySet()) { + if (entry.getKey().contains("name")) { + int i = Integer.parseInt(entry.getKey().substring("gt.metaitem.01.".length(), entry.getKey().length()-".name".length())); + i=i%1000; + lServerNames.put(entry.getKey(), entry.getValue().replace("material",GregTech_API.sGeneratedMaterials[i].toString())); + } + } + for (Map.Entry entry : internal3.entrySet()) { + if (entry.getKey().contains("cable")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.cable.".length(), entry.getKey().length()-".01.name".length()))); + else if (entry.getKey().contains("gt_frame_")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_frame_".length(), entry.getKey().length()-".name".length()))); + else if(entry.getKey().contains("gt_pipe_")) { + if( + !entry.getKey().contains("_huge") && + !entry.getKey().contains("_large") && + !entry.getKey().contains("_nonuple")&& + !entry.getKey().contains("_quadruple")&& + !entry.getKey().contains("_small")&& + !entry.getKey().contains("_tiny") + ) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-".name".length()))); + else if (entry.getKey().contains("_huge")||entry.getKey().contains("_small")||entry.getKey().contains("_tiny")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_tiny.name".length()))); + else if (entry.getKey().contains("_large")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_large.name".length()))); + else if (entry.getKey().contains("_nonuple")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_nonuple.name".length()))); + else if (entry.getKey().contains("_quadruple")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_quadruple.name".length()))); + } + else if (entry.getKey().contains("wire")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.wire.".length(), entry.getKey().length()-".01.name".length()))); + else + lServerNames.put(entry.getKey(), entry.getValue()); + } + for (Map.Entry entry : internal4.entrySet()) { + if (entry.getValue().contains("blockores")) { + int i = Integer.parseInt(entry.getKey().substring("gt.blockores.".length(), entry.getKey().length()-".name".length())); + i=i%1000; + lServerNames.put(entry.getKey(), entry.getValue().replace("material",GregTech_API.sGeneratedMaterials[i].toString())); + } + } + + internal = null; + internal2 = null; + internal3 = null; + internal4 = null; + } + +} diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java index 33e89a3faa..e77a9253ca 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java @@ -1,5 +1,6 @@ package gregtech.common.tileentities.machines.basic; +import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLLog; import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IIndividual; @@ -16,6 +17,7 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.objects.ItemData; +import gregtech.api.util.GT_Assemblyline_Server; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -219,7 +221,11 @@ public class GT_MetaTileEntity_Scanner if(GT_Utility.areStacksEqual(tRecipe.mResearchItem, aStack, true)){ String s = tRecipe.mOutput.getDisplayName(); - + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { + s = GT_Assemblyline_Server.lServerNames.get(tRecipe.mOutput.getDisplayName()); + if (s==null) + s=tRecipe.mOutput.getDisplayName(); + } this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()}); GT_Utility.ItemNBT.setBookTitle(this.mOutputItems[0], s+" Construction Data"); @@ -247,6 +253,11 @@ public class GT_MetaTileEntity_Scanner tNBT.setString("author", "Assembling Line Recipe Generator"); NBTTagList tNBTList = new NBTTagList(); s=tRecipe.mOutput.getDisplayName(); + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { + s = GT_Assemblyline_Server.lServerNames.get(tRecipe.mOutput.getDisplayName()); + if (s==null) + s=tRecipe.mOutput.getDisplayName(); + } tNBTList.appendTag(new NBTTagString("Construction plan for "+tRecipe.mOutput.stackSize+" "+s+". Needed EU/t: "+tRecipe.mEUt+" Production time: "+(tRecipe.mDuration/20))); for(int i=0;i 0) tNBTList.appendTag(new NBTTagString(tBuilder.toString())); } else if(tRecipe.mInputs[i]!=null){ s=tRecipe.mInputs[i].getDisplayName(); + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { + s = GT_Assemblyline_Server.lServerNames.get(tRecipe.mInputs[i].getDisplayName()); + if (s==null) + s=tRecipe.mInputs[i].getDisplayName(); + } tNBTList.appendTag(new NBTTagString("Input Bus "+(i+1)+": "+tRecipe.mInputs[i].stackSize+" "+s)); } } for(int i=0;i