Skip to content

Commit

Permalink
Reload ItemList after config changes instead of reloading everything
Browse files Browse the repository at this point in the history
  • Loading branch information
mezz committed Oct 8, 2016
1 parent 6e16fb2 commit eff4127
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 13 deletions.
29 changes: 17 additions & 12 deletions src/main/java/mezz/jei/ProxyCommonClient.java
@@ -1,26 +1,20 @@
package mezz.jei;

import javax.annotation.Nullable;
import java.util.Iterator;
import java.util.List;

import mezz.jei.api.IJeiRuntime;
import mezz.jei.api.IModPlugin;
import mezz.jei.api.gui.IAdvancedGuiHandler;
import mezz.jei.api.ingredients.IIngredientRegistry;
import mezz.jei.config.Config;
import mezz.jei.config.Constants;
import mezz.jei.config.KeyBindings;
import mezz.jei.config.SessionData;
import mezz.jei.gui.ItemListOverlay;
import mezz.jei.gui.RecipesGui;
import mezz.jei.network.packets.PacketJEI;
import mezz.jei.plugins.jei.JEIInternalPlugin;
import mezz.jei.plugins.vanilla.VanillaPlugin;
import mezz.jei.util.AnnotatedInstanceUtil;
import mezz.jei.util.Log;
import mezz.jei.util.ModIdUtil;
import mezz.jei.util.ModRegistry;
import mezz.jei.util.StackHelper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.network.NetHandlerPlayClient;
import net.minecraft.client.resources.IReloadableResourceManager;
Expand All @@ -38,7 +32,6 @@
import net.minecraftforge.fml.common.event.FMLInterModComms;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

@SuppressWarnings("unused")
Expand Down Expand Up @@ -152,6 +145,19 @@ public void restartJEI() {
}
}

private static void reloadItemList() {
if (SessionData.isJeiStarted()) {
JeiRuntime runtime = Internal.getRuntime();
if (runtime != null) {
ItemListOverlay itemListOverlay = runtime.getItemListOverlay();
ItemFilter itemFilter = itemListOverlay.getItemFilter();
IIngredientRegistry ingredientRegistry = Internal.getIngredientRegistry();
JeiHelpers helpers = Internal.getHelpers();
itemFilter.build(ingredientRegistry, helpers);
}
}
}

@Override
public void sendPacketToServer(PacketJEI packet) {
NetHandlerPlayClient netHandler = FMLClientHandler.instance().getClient().getConnection();
Expand All @@ -160,15 +166,14 @@ public void sendPacketToServer(PacketJEI packet) {
}
}

// subscribe to event with low priority so that addon mods that use the config can do their stuff first
@SubscribeEvent(priority = EventPriority.LOW)
@SubscribeEvent
public void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent eventArgs) {
if (!Constants.MOD_ID.equals(eventArgs.getModID())) {
return;
}

if (SessionData.isJeiStarted() && Config.syncAllConfig()) {
restartJEI(); // reload everything, configs can change available recipes
if (Config.syncAllConfig()) {
reloadItemList();
}
}
}
5 changes: 4 additions & 1 deletion src/main/java/mezz/jei/gui/ItemListOverlay.java
Expand Up @@ -47,7 +47,6 @@
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatAllowedCharacters;
Expand Down Expand Up @@ -584,6 +583,10 @@ public void open() {
setKeyboardFocus(false);
}

public ItemFilter getItemFilter() {
return itemFilter;
}

@Override
public void close() {
open = false;
Expand Down

0 comments on commit eff4127

Please sign in to comment.