From e266595bcd8645e98074b2bcecb62ae3cc3e52bc Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 12 Jan 2022 14:17:43 +0800 Subject: Prevent against arbitrary modifications against DisplayRegistry with getAll or get, Close #700, Fix JEITweaker --- .../rei/api/client/registry/screen/DisplayBoundsProvider.java | 2 ++ .../shedaniel/rei/api/client/registry/screen/OverlayDecider.java | 7 +++++++ 2 files changed, 9 insertions(+) (limited to 'api') diff --git a/api/src/main/java/me/shedaniel/rei/api/client/registry/screen/DisplayBoundsProvider.java b/api/src/main/java/me/shedaniel/rei/api/client/registry/screen/DisplayBoundsProvider.java index 4e32def9e..fcda7a01d 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/registry/screen/DisplayBoundsProvider.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/registry/screen/DisplayBoundsProvider.java @@ -26,6 +26,7 @@ package me.shedaniel.rei.api.client.registry.screen; import me.shedaniel.math.Rectangle; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; @Environment(EnvType.CLIENT) public interface DisplayBoundsProvider extends OverlayDecider { @@ -33,5 +34,6 @@ public interface DisplayBoundsProvider extends OverlayDecider { * @param screen the screen * @return the boundary of the base container panel. */ + @Nullable Rectangle getScreenBounds(T screen); } \ No newline at end of file diff --git a/api/src/main/java/me/shedaniel/rei/api/client/registry/screen/OverlayDecider.java b/api/src/main/java/me/shedaniel/rei/api/client/registry/screen/OverlayDecider.java index d8f31b627..8fcb2c456 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/registry/screen/OverlayDecider.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/registry/screen/OverlayDecider.java @@ -29,6 +29,7 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.screens.Screen; import net.minecraft.world.InteractionResult; +import org.jetbrains.annotations.ApiStatus; import static net.minecraft.world.InteractionResult.PASS; @@ -39,10 +40,16 @@ import static net.minecraft.world.InteractionResult.PASS; public interface OverlayDecider extends Comparable { boolean isHandingScreen(Class screen); + @ApiStatus.ScheduledForRemoval + @Deprecated default InteractionResult shouldScreenBeOverlaid(Class screen) { return InteractionResult.PASS; } + default InteractionResult shouldScreenBeOverlaid(R screen) { + return shouldScreenBeOverlaid(screen.getClass()); + } + /** * Gets the priority of the handler, the higher it is, the earlier it is called. * -- cgit