Skip to content

Commit cb64ca3

Browse files
committed
fix: Fix OpenScreenEvent not supporting cancellation on Fabric
1 parent 55d2805 commit cb64ca3

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

common/src/main/java/net/blay09/mods/balm/api/event/client/OpenScreenEvent.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@
55
import org.jetbrains.annotations.Nullable;
66

77
public class OpenScreenEvent extends BalmEvent {
8-
private Screen screen;
8+
private final Screen screen;
99
private Screen newScreen;
1010

1111
public OpenScreenEvent(Screen screen) {
1212
this.screen = screen;
13+
this.newScreen = screen;
1314
}
1415

1516
public Screen getScreen() {
1617
return screen;
1718
}
1819

19-
public void setScreen(Screen screen) {
20+
public void setScreen(@Nullable Screen screen) {
2021
this.newScreen = screen;
2122
}
2223

23-
@Nullable
24-
public Screen getNewScreen() {
24+
public @Nullable Screen getNewScreen() {
2525
return newScreen;
2626
}
2727
}

fabric/src/main/java/net/blay09/mods/balm/mixin/MinecraftMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class MinecraftMixin {
3030
public Screen modifyScreen(Screen screen) {
3131
OpenScreenEvent event = new OpenScreenEvent(screen);
3232
Balm.getEvents().fireEvent(event);
33-
return event.getNewScreen() != null ? event.getNewScreen() : screen;
33+
return !event.isCanceled() ? event.getNewScreen() : null;
3434
}
3535

3636
@Inject(method = "startUseItem()V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;getItemInHand(Lnet/minecraft/world/InteractionHand;)Lnet/minecraft/world/item/ItemStack;"), cancellable = true, locals = LocalCapture.CAPTURE_FAILSOFT)

0 commit comments

Comments
 (0)