Skip to content

Commit

Permalink
Reload stuff when the config changes
Browse files Browse the repository at this point in the history
  • Loading branch information
mezz committed Dec 12, 2015
1 parent 45a66fd commit 9617178
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 11 deletions.
5 changes: 1 addition & 4 deletions src/main/java/mezz/jei/JustEnoughItems.java
Expand Up @@ -35,8 +35,6 @@ public class JustEnoughItems {

public static PacketHandler packetHandler;

private Set<ASMDataTable.ASMData> modPlugins;

@NetworkCheckHandler
public boolean checkModLists(Map<String, String> modList, Side side) {
Config.recipeTransferEnabled = modList.containsKey(Constants.MOD_ID);
Expand All @@ -46,7 +44,6 @@ public boolean checkModLists(Map<String, String> modList, Side side) {

@Mod.EventHandler
public void preInit(@Nonnull FMLPreInitializationEvent event) {
modPlugins = event.getAsmData().getAll(JEIPlugin.class.getCanonicalName());
packetHandler = new PacketHandler();
JEIManager.guiHelper = new GuiHelper();
JEIManager.itemBlacklist = new ItemBlacklist();
Expand All @@ -61,6 +58,6 @@ public void init(@Nonnull FMLInitializationEvent event) {

@Mod.EventHandler
public void startJEI(@Nonnull FMLModIdMappingEvent event) {
common.startJEI(modPlugins);
common.startJEI();
}
}
2 changes: 1 addition & 1 deletion src/main/java/mezz/jei/ProxyCommon.java
Expand Up @@ -25,7 +25,7 @@ public void init(@Nonnull FMLInitializationEvent event) {

}

public void startJEI(@Nonnull Set<ASMDataTable.ASMData> modPlugins) {
public void startJEI() {
JEIManager.itemRegistry = new ItemRegistryDummy();
JEIManager.recipeRegistry = new RecipeRegistryDummy();
}
Expand Down
20 changes: 16 additions & 4 deletions src/main/java/mezz/jei/ProxyCommonClient.java
Expand Up @@ -22,6 +22,7 @@

import mezz.jei.api.IModPlugin;
import mezz.jei.api.JEIManager;
import mezz.jei.api.JEIPlugin;
import mezz.jei.config.Config;
import mezz.jei.config.Constants;
import mezz.jei.config.KeyBindings;
Expand All @@ -34,6 +35,7 @@ public class ProxyCommonClient extends ProxyCommon {
@Nullable
private ItemFilter itemFilter;
private GuiEventHandler guiEventHandler;
private Set<ASMDataTable.ASMData> modPlugins;

private void initVersionChecker() {
final NBTTagCompound compound = new NBTTagCompound();
Expand All @@ -46,6 +48,7 @@ private void initVersionChecker() {
public void preInit(@Nonnull FMLPreInitializationEvent event) {
Config.preInit(event);
initVersionChecker();
modPlugins = event.getAsmData().getAll(JEIPlugin.class.getCanonicalName());
}

@Override
Expand All @@ -59,7 +62,7 @@ public void init(@Nonnull FMLInitializationEvent event) {
}

@Override
public void startJEI(@Nonnull Set<ASMDataTable.ASMData> modPlugins) {
public void startJEI() {
JEIManager.itemRegistry = new ItemRegistry();
JEIManager.recipeRegistry = createRecipeRegistry(modPlugins);

Expand All @@ -68,6 +71,13 @@ public void startJEI(@Nonnull Set<ASMDataTable.ASMData> modPlugins) {
guiEventHandler.setItemListOverlay(itemListOverlay);
}

private void restartJEI() {
// check that JEI has been started before, if not do nothing
if (JEIManager.itemRegistry != null) {
startJEI();
}
}

@Override
public void resetItemFilter() {
if (itemFilter != null) {
Expand All @@ -83,11 +93,13 @@ public void sendPacketToServer(PacketJEI packet) {
}
}

// subscribe to Post event so that addon mods that use the config can do their stuff first
@SubscribeEvent
public void onConfigChanged(@Nonnull ConfigChangedEvent.OnConfigChangedEvent eventArgs) {
public void onConfigChanged(@Nonnull ConfigChangedEvent.PostConfigChangedEvent eventArgs) {
if (Constants.MOD_ID.equals(eventArgs.modID)) {
Config.syncConfig();
resetItemFilter();
if (Config.syncConfig()) {
restartJEI(); // reload everything, configs can change available recipes
}
}
}

Expand Down
6 changes: 4 additions & 2 deletions src/main/java/mezz/jei/config/Config.java
Expand Up @@ -37,7 +37,7 @@ public static void preInit(@Nonnull FMLPreInitializationEvent event) {
syncConfig();
}

public static void syncConfig() {
public static boolean syncConfig() {
configFile.addCategory(categoryMode);
configFile.addCategory(categoryInterface);
configFile.addCategory(categoryAdvanced);
Expand All @@ -56,9 +56,11 @@ public static void syncConfig() {
itemBlacklist.clear();
Collections.addAll(itemBlacklist, itemBlacklistArray);

if (configFile.hasChanged()) {
boolean configChanged = configFile.hasChanged();
if (configChanged) {
configFile.save();
}
return configChanged;
}

private static void updateBlacklist() {
Expand Down

0 comments on commit 9617178

Please sign in to comment.