diff --git a/CHANGELOG.md b/CHANGELOG.md
index ca4cbe0..2982d38 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,13 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
+## [0.2.2] - 2024-06-20
+
+### Fixed
+
+- Potential loading order issues on Fabric.
+- Broken recipe transfer.
+
## [0.2.1] - 2024-06-16
### Fixed
@@ -29,7 +36,9 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
- Recipe transfer integration for the Crafting Grid.
- Grid / JEI search box synchronization options.
-[Unreleased]: https://github.com/refinedmods/refinedstorage-jei-integration/compare/v0.2.1...HEAD
+[Unreleased]: https://github.com/refinedmods/refinedstorage-jei-integration/compare/v0.2.2...HEAD
+
+[0.2.2]: https://github.com/refinedmods/refinedstorage-jei-integration/compare/v0.2.1...v0.2.2
[0.2.1]: https://github.com/refinedmods/refinedstorage-jei-integration/compare/v0.2.0...v0.2.1
diff --git a/config/checkstyle/checkstyle-suppressions.xml b/config/checkstyle/checkstyle-suppressions.xml
index 3d00140..a39ac62 100644
--- a/config/checkstyle/checkstyle-suppressions.xml
+++ b/config/checkstyle/checkstyle-suppressions.xml
@@ -5,4 +5,5 @@
+
diff --git a/gradle.properties b/gradle.properties
index 58ffed3..9ae9233 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-refinedstorageVersion=2.0.0-milestone.3.10
+refinedstorageVersion=2.0.0-milestone.3.13
jeiVersion=17.3.0.52
# Gradle
org.gradle.jvmargs=-Xmx1G
diff --git a/refinedstorage-jei-integration-common/build.gradle b/refinedstorage-jei-integration-common/build.gradle
index aa799c0..ce91890 100644
--- a/refinedstorage-jei-integration-common/build.gradle
+++ b/refinedstorage-jei-integration-common/build.gradle
@@ -5,10 +5,6 @@ plugins {
archivesBaseName = 'refinedstorage-jei-integration-common'
repositories {
- maven {
- name = 'JEI'
- url = "https://maven.blamejared.com/"
- }
maven {
url = uri("https://maven.pkg.github.com/refinedmods/refinedstorage2")
credentials {
@@ -16,13 +12,18 @@ repositories {
password = "\u0067hp_oGjcDFCn8jeTzIj4Ke9pLoEVtpnZMP4VQgaX"
}
}
+ maven {
+ name = 'JEI'
+ url = "https://maven.blamejared.com/"
+ }
}
commonProject()
dependencies {
- api "mezz.jei:jei-${minecraftVersion}-common-api:${jeiVersion}"
api "com.refinedmods.refinedstorage2:refinedstorage2-platform-common:${refinedstorageVersion}"
+ api "mezz.jei:jei-${minecraftVersion}-common-api:${jeiVersion}"
+ api "mezz.jei:jei-${minecraftVersion}-common:${jeiVersion}"
}
enablePublishing()
\ No newline at end of file
diff --git a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/Common.java b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/Common.java
index 7914423..e013854 100644
--- a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/Common.java
+++ b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/Common.java
@@ -1,5 +1,8 @@
package com.refinedmods.refinedstorage.jei.common;
+import com.refinedmods.refinedstorage2.platform.api.PlatformApi;
+import net.minecraft.resources.ResourceLocation;
+
import static java.util.Objects.requireNonNull;
public final class Common {
@@ -17,4 +20,16 @@ public static void setPlatform(final Platform platform) {
public static Platform getPlatform() {
return requireNonNull(platform, "Platform isn't set yet");
}
+
+ public static void init(final PlatformApi platformApi) {
+ platformApi.addIngredientConverter(new JeiRecipeModIngredientConverter());
+ platformApi.getGridSynchronizerRegistry().register(
+ new ResourceLocation(Common.MOD_ID, "jei"),
+ new JeiGridSynchronizer(false)
+ );
+ platformApi.getGridSynchronizerRegistry().register(
+ new ResourceLocation(Common.MOD_ID, "jei_two_way"),
+ new JeiGridSynchronizer(true)
+ );
+ }
}
diff --git a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/CraftingGridRecipeTransferHandler.java b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/CraftingGridRecipeTransferHandler.java
index 886224d..0be287d 100644
--- a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/CraftingGridRecipeTransferHandler.java
+++ b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/CraftingGridRecipeTransferHandler.java
@@ -85,7 +85,7 @@ private List> getInputs(final IRecipeSlotsView recipeSlots) {
return recipeSlots.getSlotViews(RecipeIngredientRole.INPUT).stream().map(slotView -> {
final List stacks = slotView.getItemStacks().collect(Collectors.toList());
prioritizeDisplayedStack(slotView, stacks);
- return stacks.stream().map(ItemResource::ofItemStack).toList();
+ return stacks.stream().map(ItemResource::ofItemStack).collect(Collectors.toList());
}).toList();
}
diff --git a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/GhostIngredientHandler.java b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/GhostIngredientHandler.java
index 80ef8aa..f91364a 100644
--- a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/GhostIngredientHandler.java
+++ b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/GhostIngredientHandler.java
@@ -4,8 +4,8 @@
import java.util.Collections;
import java.util.List;
+import com.refinedmods.refinedstorage2.platform.api.PlatformApi;
import com.refinedmods.refinedstorage2.platform.api.support.resource.PlatformResourceKey;
-import com.refinedmods.refinedstorage2.platform.api.support.resource.RecipeModIngredientConverter;
import com.refinedmods.refinedstorage2.platform.common.Platform;
import com.refinedmods.refinedstorage2.platform.common.support.AbstractBaseScreen;
import com.refinedmods.refinedstorage2.platform.common.support.containermenu.AbstractResourceContainerMenu;
@@ -16,12 +16,6 @@
@SuppressWarnings("rawtypes")
class GhostIngredientHandler implements IGhostIngredientHandler {
- private final RecipeModIngredientConverter ingredientConverter;
-
- GhostIngredientHandler(final RecipeModIngredientConverter ingredientConverter) {
- this.ingredientConverter = ingredientConverter;
- }
-
@Override
public List> getTargetsTyped(final AbstractBaseScreen screen,
final ITypedIngredient ingredient,
@@ -36,7 +30,7 @@ private List> getTargets(final AbstractBaseScreen screen,
final I ingredient,
final AbstractResourceContainerMenu menu) {
final List> targets = new ArrayList<>();
- ingredientConverter.convertToResource(ingredient).ifPresent(resource -> {
+ PlatformApi.INSTANCE.getIngredientConverter().convertToResource(ingredient).ifPresent(resource -> {
for (final ResourceSlot slot : menu.getResourceSlots()) {
if (slot.isFilter() && slot.isValid(resource)) {
final Rect2i bounds = getBounds(screen, slot);
@@ -72,7 +66,7 @@ public Rect2i getArea() {
@Override
public void accept(final I ingredient) {
- ingredientConverter.convertToResource(ingredient).ifPresent(this::accept);
+ PlatformApi.INSTANCE.getIngredientConverter().convertToResource(ingredient).ifPresent(this::accept);
}
private void accept(final PlatformResourceKey resource) {
diff --git a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/GridGuiContainerHandler.java b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/GridGuiContainerHandler.java
index 5ed7a5f..7cf476b 100644
--- a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/GridGuiContainerHandler.java
+++ b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/GridGuiContainerHandler.java
@@ -2,9 +2,9 @@
import java.util.Optional;
+import com.refinedmods.refinedstorage2.platform.api.PlatformApi;
import com.refinedmods.refinedstorage2.platform.api.grid.view.PlatformGridResource;
import com.refinedmods.refinedstorage2.platform.api.support.resource.PlatformResourceKey;
-import com.refinedmods.refinedstorage2.platform.api.support.resource.RecipeModIngredientConverter;
import com.refinedmods.refinedstorage2.platform.common.grid.screen.AbstractGridScreen;
import mezz.jei.api.gui.handlers.IGuiContainerHandler;
import mezz.jei.api.ingredients.IIngredientHelper;
@@ -13,11 +13,9 @@
import mezz.jei.api.runtime.IIngredientManager;
class GridGuiContainerHandler implements IGuiContainerHandler> {
- private final RecipeModIngredientConverter converter;
private final IIngredientManager ingredientManager;
- GridGuiContainerHandler(final RecipeModIngredientConverter converter, final IIngredientManager ingredientManager) {
- this.converter = converter;
+ GridGuiContainerHandler(final IIngredientManager ingredientManager) {
this.ingredientManager = ingredientManager;
}
@@ -35,7 +33,7 @@ public Optional> getClickableIngredientUnderMouse(
if (underlyingResource == null) {
return Optional.empty();
}
- return converter.convertToIngredient(underlyingResource).flatMap(
+ return PlatformApi.INSTANCE.getIngredientConverter().convertToIngredient(underlyingResource).flatMap(
ingredient -> convertToClickableIngredient(mouseX, mouseY, ingredient)
);
}
diff --git a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiGridSynchronizer.java b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiGridSynchronizer.java
index 35d1382..c39595f 100644
--- a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiGridSynchronizer.java
+++ b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiGridSynchronizer.java
@@ -18,11 +18,9 @@ class JeiGridSynchronizer extends AbstractGridSynchronizer {
"gui.%s.grid.synchronizer.two_way.help".formatted(MOD_ID)
);
- private final JeiProxy jeiProxy;
private final boolean twoWay;
- JeiGridSynchronizer(final JeiProxy jeiProxy, final boolean twoWay) {
- this.jeiProxy = jeiProxy;
+ JeiGridSynchronizer(final boolean twoWay) {
this.twoWay = twoWay;
}
@@ -38,13 +36,13 @@ public Component getHelpText() {
@Override
public void synchronizeFromGrid(final String text) {
- jeiProxy.setSearchFieldText(text);
+ JeiHelper.setSearchFieldText(text);
}
@Override
@Nullable
public String getTextToSynchronizeToGrid() {
- return twoWay ? jeiProxy.getSearchFieldText() : null;
+ return twoWay ? JeiHelper.getSearchFieldText() : null;
}
@Override
diff --git a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiProxy.java b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiHelper.java
similarity index 51%
rename from refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiProxy.java
rename to refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiHelper.java
index 88ff332..3fa9157 100644
--- a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiProxy.java
+++ b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiHelper.java
@@ -2,17 +2,20 @@
import mezz.jei.api.runtime.IJeiRuntime;
-public class JeiProxy {
- public String getSearchFieldText() {
- final IJeiRuntime runtime = RefinedStorageJeiModPlugin.getRuntime();
+public final class JeiHelper {
+ private JeiHelper() {
+ }
+
+ public static String getSearchFieldText() {
+ final IJeiRuntime runtime = RefinedStorageModPlugin.getRuntime();
if (runtime == null) {
return "";
}
return runtime.getIngredientFilter().getFilterText();
}
- public void setSearchFieldText(final String text) {
- final IJeiRuntime runtime = RefinedStorageJeiModPlugin.getRuntime();
+ public static void setSearchFieldText(final String text) {
+ final IJeiRuntime runtime = RefinedStorageModPlugin.getRuntime();
if (runtime != null) {
runtime.getIngredientFilter().setFilterText(text);
}
diff --git a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiRecipeModIngredientConverter.java b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiRecipeModIngredientConverter.java
index 010dce0..ba26af1 100644
--- a/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiRecipeModIngredientConverter.java
+++ b/refinedstorage-jei-integration-common/src/main/java/com/refinedmods/refinedstorage/jei/common/JeiRecipeModIngredientConverter.java
@@ -7,15 +7,10 @@
import com.refinedmods.refinedstorage2.platform.common.support.resource.FluidResource;
import com.refinedmods.refinedstorage2.platform.common.support.resource.ItemResource;
import mezz.jei.api.helpers.IPlatformFluidHelper;
+import mezz.jei.common.platform.Services;
import net.minecraft.world.item.ItemStack;
class JeiRecipeModIngredientConverter implements RecipeModIngredientConverter {
- private final IPlatformFluidHelper> fluidHelper;
-
- JeiRecipeModIngredientConverter(final IPlatformFluidHelper> fluidHelper) {
- this.fluidHelper = fluidHelper;
- }
-
@Override
public Optional convertToResource(final Object ingredient) {
final var fluid = Common.getPlatform().convertJeiIngredientToFluid(ingredient);
@@ -34,6 +29,7 @@ public Optional