From 8aaebfeb63b62385766b2436a95f655fadb792fb Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Fri, 26 Jun 2015 21:46:47 +0100 Subject: [PATCH] Added some useful eel commands, and attempt at fix for reloading every restart. --- .../compat/ee3/CommandCustomLoad.java | 4 ++ .../techreborn/compat/ee3/CommandRegen.java | 64 +++++++++++++++++++ .../techreborn/compat/ee3/CommandReload.java | 58 +++++++++++++++++ .../java/techreborn/compat/ee3/EmcValues.java | 15 ++++- 4 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 src/main/java/techreborn/compat/ee3/CommandCustomLoad.java create mode 100644 src/main/java/techreborn/compat/ee3/CommandRegen.java create mode 100644 src/main/java/techreborn/compat/ee3/CommandReload.java diff --git a/src/main/java/techreborn/compat/ee3/CommandCustomLoad.java b/src/main/java/techreborn/compat/ee3/CommandCustomLoad.java new file mode 100644 index 000000000..7d619f545 --- /dev/null +++ b/src/main/java/techreborn/compat/ee3/CommandCustomLoad.java @@ -0,0 +1,4 @@ +package techreborn.compat.ee3; + +public class CommandCustomLoad { +} diff --git a/src/main/java/techreborn/compat/ee3/CommandRegen.java b/src/main/java/techreborn/compat/ee3/CommandRegen.java new file mode 100644 index 000000000..01877ca17 --- /dev/null +++ b/src/main/java/techreborn/compat/ee3/CommandRegen.java @@ -0,0 +1,64 @@ +package techreborn.compat.ee3; + +import com.pahimar.ee3.command.CommandSyncEnergyValues; +import com.pahimar.ee3.exchange.DynamicEnergyValueInitThread; +import com.pahimar.ee3.exchange.EnergyValueRegistry; +import com.pahimar.ee3.reference.Reference; +import cpw.mods.fml.common.FMLCommonHandler; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.ChatComponentText; + +import java.io.File; + +public class CommandRegen extends CommandBase { + + public static final String EE3_ENERGYVALUES_DIR = + FMLCommonHandler.instance().getMinecraftServerInstance().getEntityWorld().getSaveHandler().getWorldDirectory() + + File.separator +"data" + File.separator + + Reference.LOWERCASE_MOD_ID + File.separator + + "energyvalues"; + + @Override + public String getCommandName() + { + return "eeregen"; + } + + @Override + public int getRequiredPermissionLevel() + { + return 4; + } + + @Override + public String getCommandUsage(ICommandSender commandSender) + { + return ""; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] args) + { + commandSender.addChatMessage(new ChatComponentText("Regening EMC Values...")); + File energyValuesDirectory = new File(EE3_ENERGYVALUES_DIR); + + if(energyValuesDirectory.exists() && energyValuesDirectory.isDirectory()) + { + File [] files = energyValuesDirectory.listFiles(); + for(File f : files) + { + if(f.getName().toLowerCase().contains(".gz")){ + f.delete(); + commandSender.addChatMessage(new ChatComponentText("Deleted " + f.getName())); + } + + } + } + commandSender.addChatMessage(new ChatComponentText("Regening EMC Values")); + DynamicEnergyValueInitThread.initEnergyValueRegistry(); + EnergyValueRegistry.getInstance().setShouldRegenNextRestart(false); + commandSender.addChatMessage(new ChatComponentText("Syncing all EMC Values")); + new CommandSyncEnergyValues().processCommand(commandSender, args); + } +} diff --git a/src/main/java/techreborn/compat/ee3/CommandReload.java b/src/main/java/techreborn/compat/ee3/CommandReload.java new file mode 100644 index 000000000..13f3a9c7b --- /dev/null +++ b/src/main/java/techreborn/compat/ee3/CommandReload.java @@ -0,0 +1,58 @@ +package techreborn.compat.ee3; + +import com.pahimar.ee3.exchange.DynamicEnergyValueInitThread; +import com.pahimar.ee3.exchange.EnergyValueRegistry; +import com.pahimar.ee3.reference.Files; +import com.pahimar.ee3.reference.Reference; +import cpw.mods.fml.common.FMLCommonHandler; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.ChatComponentText; + +import java.io.File; + +public class CommandReload extends CommandBase { + + public static final String EE3_ENERGYVALUES_DIR = + FMLCommonHandler.instance().getMinecraftServerInstance().getEntityWorld().getSaveHandler().getWorldDirectory() + + File.separator +"data" + File.separator + + Reference.LOWERCASE_MOD_ID + File.separator + + "energyvalues"; + + @Override + public String getCommandName() + { + return "eerelaod"; + } + + @Override + public int getRequiredPermissionLevel() + { + return 4; + } + + @Override + public String getCommandUsage(ICommandSender commandSender) + { + return ""; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] args) + { + commandSender.addChatMessage(new ChatComponentText("Reloading EMC Values...")); + File energyValuesDirectory = new File(EE3_ENERGYVALUES_DIR); + + if(energyValuesDirectory.exists() && energyValuesDirectory.isDirectory()) { + File staticValues = new File(energyValuesDirectory, Files.STATIC_ENERGY_VALUES_JSON); + commandSender.addChatMessage(new ChatComponentText("Looking for " + staticValues.getName())); + if(staticValues.exists()){ + commandSender.addChatMessage(new ChatComponentText("Found static values, reloading from disk!")); + } else { + commandSender.addChatMessage(new ChatComponentText("Will now recompute all values!!")); + } + } + DynamicEnergyValueInitThread.initEnergyValueRegistry(); + EnergyValueRegistry.getInstance().setShouldRegenNextRestart(false); + } +} \ No newline at end of file diff --git a/src/main/java/techreborn/compat/ee3/EmcValues.java b/src/main/java/techreborn/compat/ee3/EmcValues.java index 5a17a0ab5..65fc30746 100644 --- a/src/main/java/techreborn/compat/ee3/EmcValues.java +++ b/src/main/java/techreborn/compat/ee3/EmcValues.java @@ -1,12 +1,17 @@ package techreborn.compat.ee3; import com.pahimar.ee3.api.exchange.RecipeRegistryProxy; +import com.pahimar.ee3.exchange.EnergyValueRegistry; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.TickEvent; +import net.minecraftforge.common.MinecraftForge; import techreborn.api.recipe.IBaseRecipeType; import techreborn.api.recipe.RecipeHandler; +import techreborn.command.TechRebornDevCommand; import techreborn.compat.ICompatModule; public class EmcValues implements ICompatModule { @@ -27,11 +32,19 @@ public class EmcValues implements ICompatModule { @Override public void postInit(FMLPostInitializationEvent event) { - + MinecraftForge.EVENT_BUS.register(this); } @Override public void serverStarting(FMLServerStartingEvent event) { + event.registerServerCommand(new CommandRegen()); + event.registerServerCommand(new CommandReload()); + } + + @SubscribeEvent + public void serverTick(TickEvent.ServerTickEvent event){ + //This should be a fix for the things not saving + EnergyValueRegistry.getInstance().setShouldRegenNextRestart(false); } }