aboutsummaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-01-12 14:17:43 +0800
committershedaniel <daniel@shedaniel.me>2022-01-12 19:35:32 +0800
commite266595bcd8645e98074b2bcecb62ae3cc3e52bc (patch)
treef60a396a8e20386c22c0360e29681e874ba3f3d5 /api
parent220d3e41a1d0a6443890b5624ec41a89c7a4cd45 (diff)
downloadRoughlyEnoughItems-e266595bcd8645e98074b2bcecb62ae3cc3e52bc.tar.gz
RoughlyEnoughItems-e266595bcd8645e98074b2bcecb62ae3cc3e52bc.tar.bz2
RoughlyEnoughItems-e266595bcd8645e98074b2bcecb62ae3cc3e52bc.zip
Prevent against arbitrary modifications against DisplayRegistry with getAll or get, Close #700, Fix JEITweaker
Diffstat (limited to 'api')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/registry/screen/DisplayBoundsProvider.java2
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/registry/screen/OverlayDecider.java7
2 files changed, 9 insertions, 0 deletions
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<T> extends OverlayDecider {
@@ -33,5 +34,6 @@ public interface DisplayBoundsProvider<T> 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<OverlayDecider> {
<R extends Screen> boolean isHandingScreen(Class<R> screen);
+ @ApiStatus.ScheduledForRemoval
+ @Deprecated
default InteractionResult shouldScreenBeOverlaid(Class<?> screen) {
return InteractionResult.PASS;
}
+ default <R extends Screen> InteractionResult shouldScreenBeOverlaid(R screen) {
+ return shouldScreenBeOverlaid(screen.getClass());
+ }
+
/**
* Gets the priority of the handler, the higher it is, the earlier it is called.
*