Skip to content

Commit

Permalink
Temporary hack to fix textures on Forge 26.0.47+
Browse files Browse the repository at this point in the history
  • Loading branch information
mezz committed Jun 24, 2019
1 parent 3bbf17c commit 8b39766
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 14 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
@@ -1,7 +1,7 @@
org.gradle.daemon=false

mcversion=1.14.2
forgeversion=26.0.32
forgeversion=26.0.63
forgegroup=net.minecraftforge
mcp_mappings=20190615-1.14.2
curse_project_id=238222
Expand Down
21 changes: 19 additions & 2 deletions src/main/java/mezz/jei/JustEnoughItems.java
Expand Up @@ -6,10 +6,17 @@
import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.ColorHandlerEvent;
import net.minecraftforge.eventbus.api.IEventBus;

import net.minecraft.client.Minecraft;
import net.minecraft.resources.IReloadableResourceManager;
import net.minecraft.resources.IResourceManager;

import mezz.jei.api.constants.ModIds;
import mezz.jei.events.EventBusHelper;
import mezz.jei.gui.textures.JeiSpriteUploader;
import mezz.jei.gui.textures.Textures;
import mezz.jei.startup.ClientLifecycleHandler;
import mezz.jei.startup.NetworkHandler;

Expand All @@ -19,8 +26,18 @@ public JustEnoughItems() {
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
NetworkHandler networkHandler = new NetworkHandler();
DistExecutor.runWhenOn(Dist.CLIENT, ()->()-> {
EventBusHelper.addLifecycleListener(modEventBus, FMLLoadCompleteEvent.class, setupEvent -> {
ClientLifecycleHandler clientLifecycleHandler = new ClientLifecycleHandler(networkHandler);
EventBusHelper.addListener(modEventBus, ColorHandlerEvent.Block.class, setupEvent -> {
Minecraft minecraft = Minecraft.getInstance();
JeiSpriteUploader spriteUploader = new JeiSpriteUploader(minecraft.textureManager);
Textures textures = new Textures(spriteUploader);
IResourceManager resourceManager = minecraft.getResourceManager();
if (resourceManager instanceof IReloadableResourceManager) {
IReloadableResourceManager reloadableResourceManager = (IReloadableResourceManager) resourceManager;
reloadableResourceManager.addReloadListener(spriteUploader);
}
EventBusHelper.addLifecycleListener(modEventBus, FMLLoadCompleteEvent.class, loadCompleteEvent -> {
new ClientLifecycleHandler(networkHandler, textures);
});
});
});
EventBusHelper.addLifecycleListener(modEventBus, FMLCommonSetupEvent.class, event -> {
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/mezz/jei/events/EventBusHelper.java
Expand Up @@ -18,6 +18,10 @@ public static <T extends Event> void addListener(Class<T> eventType, Consumer<T>
eventBus.addListener(EventPriority.NORMAL, false, eventType, listener);
}

public static <T extends Event> void addListener(IEventBus eventBus, Class<T> eventType, Consumer<T> listener) {
eventBus.addListener(EventPriority.NORMAL, false, eventType, listener);
}

public static <T extends Event> void removeListener(Consumer<T> listener) {
IEventBus eventBus = getInstance();
eventBus.unregister(listener);
Expand Down
12 changes: 2 additions & 10 deletions src/main/java/mezz/jei/startup/ClientLifecycleHandler.java
Expand Up @@ -32,7 +32,6 @@
import mezz.jei.events.EventBusHelper;
import mezz.jei.events.PlayerJoinedWorldEvent;
import mezz.jei.gui.overlay.IngredientListOverlay;
import mezz.jei.gui.textures.JeiSpriteUploader;
import mezz.jei.gui.textures.Textures;
import mezz.jei.ingredients.ForgeModIdHelper;
import mezz.jei.runtime.JeiRuntime;
Expand All @@ -53,7 +52,7 @@ public class ClientLifecycleHandler {
private final IModIdHelper modIdHelper;
private final IEditModeConfig editModeConfig;

public ClientLifecycleHandler(NetworkHandler networkHandler) {
public ClientLifecycleHandler(NetworkHandler networkHandler, Textures textures) {
File jeiConfigurationDir = new File(FMLPaths.CONFIGDIR.get().toFile(), ModIds.JEI_ID);
if (!jeiConfigurationDir.exists()) {
try {
Expand Down Expand Up @@ -107,14 +106,7 @@ public ClientLifecycleHandler(NetworkHandler networkHandler) {

networkHandler.createClientPacketHandler(worldConfig);

Minecraft minecraft = Minecraft.getInstance();
JeiSpriteUploader spriteUploader = new JeiSpriteUploader(minecraft.textureManager);
this.textures = new Textures(spriteUploader);
IResourceManager resourceManager = minecraft.getResourceManager();
if (resourceManager instanceof IReloadableResourceManager) {
IReloadableResourceManager reloadableResourceManager = (IReloadableResourceManager) resourceManager;
reloadableResourceManager.addReloadListener(spriteUploader);
}
this.textures = textures;
}

private void onRecipesLoaded() {
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/META-INF/mods.toml
Expand Up @@ -48,7 +48,7 @@ JEI is an item and recipe viewing mod for Minecraft, built from the ground up fo
[[dependencies.jei]]
modId="forge" #mandatory
mandatory=false #mandatory
versionRange="[26.0.2,)" #mandatory
versionRange="[26.0.47,)" #mandatory
# An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory
ordering="NONE"
# Side this dependency is applied on - BOTH, CLIENT or SERVER
Expand Down

0 comments on commit 8b39766

Please sign in to comment.