From 1841375e40681bf01d32abc5e41b9f84bbd13a4f Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Thu, 20 Jun 2024 22:20:18 +0200 Subject: [PATCH] fix: potential load order issues PlatformApi may not be available yet on Fabric. --- CHANGELOG.md | 4 ++++ .../rei/fabric/DraggableStackVisitorImpl.java | 12 +++--------- .../rei/fabric/GridFocusedStackProvider.java | 12 ++++-------- .../refinedstorage/rei/fabric/ReiClientPlugin.java | 7 +++---- .../rei/fabric/ResourceFocusedStackProvider.java | 12 ++++-------- .../rei/forge/DraggableStackVisitorImpl.java | 12 +++--------- .../rei/forge/GridFocusedStackProvider.java | 12 ++++-------- .../refinedstorage/rei/forge/ReiClientPlugin.java | 7 +++---- .../rei/forge/ResourceFocusedStackProvider.java | 12 ++++-------- 9 files changed, 32 insertions(+), 58 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bbed8f..4ebf08a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Fixed + +- Potential load order issues on Fabric. + ## [0.1.1] - 2024-06-16 ### Fixed diff --git a/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/DraggableStackVisitorImpl.java b/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/DraggableStackVisitorImpl.java index 347e902..2df4d00 100644 --- a/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/DraggableStackVisitorImpl.java +++ b/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/DraggableStackVisitorImpl.java @@ -4,8 +4,8 @@ import java.util.List; import java.util.stream.Stream; +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; @@ -19,12 +19,6 @@ class DraggableStackVisitorImpl implements DraggableStackVisitor> { - private final RecipeModIngredientConverter ingredientConverter; - - DraggableStackVisitorImpl(final RecipeModIngredientConverter ingredientConverter) { - this.ingredientConverter = ingredientConverter; - } - @Override public Stream getDraggableAcceptingBounds( final DraggingContext> context, @@ -34,7 +28,7 @@ public Stream getDraggableAcceptingBounds( final var menu = screen.getMenu(); final var value = stack.getStack().getValue(); final List bounds = new ArrayList<>(); - ingredientConverter.convertToResource(value).ifPresent(resource -> { + PlatformApi.INSTANCE.getIngredientConverter().convertToResource(value).ifPresent(resource -> { for (final ResourceSlot slot : menu.getResourceSlots()) { if (slot.isFilter() && slot.isValid(resource)) { bounds.add(BoundsProvider.ofRectangle(toRectangle(screen, slot))); @@ -52,7 +46,7 @@ public DraggedAcceptorResult acceptDraggedStack( final var screen = context.getScreen(); final var menu = screen.getMenu(); final Object value = stack.getStack().getValue(); - return ingredientConverter.convertToResource(value) + return PlatformApi.INSTANCE.getIngredientConverter().convertToResource(value) .map(resource -> accept(context, menu, screen, resource)) .orElse(DraggedAcceptorResult.PASS); } diff --git a/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/GridFocusedStackProvider.java b/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/GridFocusedStackProvider.java index dfd53a9..a80ecf7 100644 --- a/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/GridFocusedStackProvider.java +++ b/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/GridFocusedStackProvider.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.rei.fabric; +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.grid.screen.AbstractGridScreen; import dev.architectury.event.CompoundEventResult; import me.shedaniel.math.Point; @@ -10,12 +10,6 @@ import net.minecraft.client.gui.screens.Screen; class GridFocusedStackProvider implements FocusedStackProvider { - private final RecipeModIngredientConverter converter; - - GridFocusedStackProvider(final RecipeModIngredientConverter converter) { - this.converter = converter; - } - @Override public CompoundEventResult> provide(final Screen screen, final Point mouse) { if (!(screen instanceof AbstractGridScreen gridScreen)) { @@ -25,7 +19,9 @@ public CompoundEventResult> provide(final Screen screen, final Poi if (resource == null) { return CompoundEventResult.pass(); } - final Object converted = converter.convertToIngredient(resource).orElse(null); + final Object converted = PlatformApi.INSTANCE.getIngredientConverter() + .convertToIngredient(resource) + .orElse(null); if (converted instanceof EntryStack stack) { return CompoundEventResult.interruptTrue(stack); } diff --git a/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/ReiClientPlugin.java b/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/ReiClientPlugin.java index 5e08f2f..305baf9 100644 --- a/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/ReiClientPlugin.java +++ b/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/ReiClientPlugin.java @@ -32,10 +32,9 @@ public class ReiClientPlugin implements REIClientPlugin { @Override public void registerScreens(final ScreenRegistry registry) { - final RecipeModIngredientConverter converter = PlatformApi.INSTANCE.getIngredientConverter(); - registry.registerFocusedStack(new GridFocusedStackProvider(converter)); - registry.registerFocusedStack(new ResourceFocusedStackProvider(converter)); - registry.registerDraggableStackVisitor(new DraggableStackVisitorImpl(converter)); + registry.registerFocusedStack(new GridFocusedStackProvider()); + registry.registerFocusedStack(new ResourceFocusedStackProvider()); + registry.registerDraggableStackVisitor(new DraggableStackVisitorImpl()); } @Override diff --git a/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/ResourceFocusedStackProvider.java b/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/ResourceFocusedStackProvider.java index 525da1e..de7f6f8 100644 --- a/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/ResourceFocusedStackProvider.java +++ b/refinedstorage-rei-integration-fabric/src/main/java/com/refinedmods/refinedstorage/rei/fabric/ResourceFocusedStackProvider.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.rei.fabric; +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.support.AbstractBaseScreen; import dev.architectury.event.CompoundEventResult; import me.shedaniel.math.Point; @@ -10,12 +10,6 @@ import net.minecraft.client.gui.screens.Screen; class ResourceFocusedStackProvider implements FocusedStackProvider { - private final RecipeModIngredientConverter converter; - - ResourceFocusedStackProvider(final RecipeModIngredientConverter converter) { - this.converter = converter; - } - @Override public CompoundEventResult> provide(final Screen screen, final Point mouse) { if (!(screen instanceof AbstractBaseScreen baseScreen)) { @@ -25,7 +19,9 @@ public CompoundEventResult> provide(final Screen screen, final Poi if (hoveredResource == null) { return CompoundEventResult.pass(); } - final Object converted = converter.convertToIngredient(hoveredResource).orElse(null); + final Object converted = PlatformApi.INSTANCE.getIngredientConverter() + .convertToIngredient(hoveredResource) + .orElse(null); if (converted instanceof EntryStack stack) { return CompoundEventResult.interruptTrue(stack); } diff --git a/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/DraggableStackVisitorImpl.java b/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/DraggableStackVisitorImpl.java index 8e8676c..f2453ef 100644 --- a/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/DraggableStackVisitorImpl.java +++ b/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/DraggableStackVisitorImpl.java @@ -4,8 +4,8 @@ import java.util.List; import java.util.stream.Stream; +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; @@ -19,12 +19,6 @@ class DraggableStackVisitorImpl implements DraggableStackVisitor> { - private final RecipeModIngredientConverter ingredientConverter; - - DraggableStackVisitorImpl(final RecipeModIngredientConverter ingredientConverter) { - this.ingredientConverter = ingredientConverter; - } - @Override public Stream getDraggableAcceptingBounds( final DraggingContext> context, @@ -34,7 +28,7 @@ public Stream getDraggableAcceptingBounds( final var menu = screen.getMenu(); final var value = stack.getStack().getValue(); final List bounds = new ArrayList<>(); - ingredientConverter.convertToResource(value).ifPresent(resource -> { + PlatformApi.INSTANCE.getIngredientConverter().convertToResource(value).ifPresent(resource -> { for (final ResourceSlot slot : menu.getResourceSlots()) { if (slot.isFilter() && slot.isValid(resource)) { bounds.add(BoundsProvider.ofRectangle(toRectangle(screen, slot))); @@ -52,7 +46,7 @@ public DraggedAcceptorResult acceptDraggedStack( final var screen = context.getScreen(); final var menu = screen.getMenu(); final Object value = stack.getStack().getValue(); - return ingredientConverter.convertToResource(value) + return PlatformApi.INSTANCE.getIngredientConverter().convertToResource(value) .map(resource -> accept(context, menu, screen, resource)) .orElse(DraggedAcceptorResult.PASS); } diff --git a/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/GridFocusedStackProvider.java b/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/GridFocusedStackProvider.java index 4e40cfa..36da962 100644 --- a/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/GridFocusedStackProvider.java +++ b/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/GridFocusedStackProvider.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.rei.forge; +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.grid.screen.AbstractGridScreen; import dev.architectury.event.CompoundEventResult; import me.shedaniel.math.Point; @@ -10,12 +10,6 @@ import net.minecraft.client.gui.screens.Screen; class GridFocusedStackProvider implements FocusedStackProvider { - private final RecipeModIngredientConverter converter; - - GridFocusedStackProvider(final RecipeModIngredientConverter converter) { - this.converter = converter; - } - @Override public CompoundEventResult> provide(final Screen screen, final Point mouse) { if (!(screen instanceof AbstractGridScreen gridScreen)) { @@ -25,7 +19,9 @@ public CompoundEventResult> provide(final Screen screen, final Poi if (underlyingResource == null) { return CompoundEventResult.pass(); } - final Object converted = converter.convertToIngredient(underlyingResource).orElse(null); + final Object converted = PlatformApi.INSTANCE.getIngredientConverter() + .convertToIngredient(underlyingResource) + .orElse(null); if (converted instanceof EntryStack stack) { return CompoundEventResult.interruptTrue(stack); } diff --git a/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/ReiClientPlugin.java b/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/ReiClientPlugin.java index b3eeef2..74d2cbe 100644 --- a/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/ReiClientPlugin.java +++ b/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/ReiClientPlugin.java @@ -31,10 +31,9 @@ public class ReiClientPlugin implements REIClientPlugin { @Override public void registerScreens(final ScreenRegistry registry) { - final RecipeModIngredientConverter converter = PlatformApi.INSTANCE.getIngredientConverter(); - registry.registerFocusedStack(new GridFocusedStackProvider(converter)); - registry.registerFocusedStack(new ResourceFocusedStackProvider(converter)); - registry.registerDraggableStackVisitor(new DraggableStackVisitorImpl(converter)); + registry.registerFocusedStack(new GridFocusedStackProvider()); + registry.registerFocusedStack(new ResourceFocusedStackProvider()); + registry.registerDraggableStackVisitor(new DraggableStackVisitorImpl()); } @Override diff --git a/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/ResourceFocusedStackProvider.java b/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/ResourceFocusedStackProvider.java index 9d4d6fd..457dd19 100644 --- a/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/ResourceFocusedStackProvider.java +++ b/refinedstorage-rei-integration-forge/src/main/java/com/refinedmods/refinedstorage/rei/forge/ResourceFocusedStackProvider.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.rei.forge; +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.support.AbstractBaseScreen; import dev.architectury.event.CompoundEventResult; import me.shedaniel.math.Point; @@ -10,12 +10,6 @@ import net.minecraft.client.gui.screens.Screen; class ResourceFocusedStackProvider implements FocusedStackProvider { - private final RecipeModIngredientConverter converter; - - ResourceFocusedStackProvider(final RecipeModIngredientConverter converter) { - this.converter = converter; - } - @Override public CompoundEventResult> provide(final Screen screen, final Point mouse) { if (!(screen instanceof AbstractBaseScreen baseScreen)) { @@ -25,7 +19,9 @@ public CompoundEventResult> provide(final Screen screen, final Poi if (hoveredResource == null) { return CompoundEventResult.pass(); } - final Object converted = converter.convertToIngredient(hoveredResource).orElse(null); + final Object converted = PlatformApi.INSTANCE.getIngredientConverter() + .convertToIngredient(hoveredResource) + .orElse(null); if (converted instanceof EntryStack stack) { return CompoundEventResult.interruptTrue(stack); }