From 15f6d17801ee6eb7bc49077bf781d08fb631d467 Mon Sep 17 00:00:00 2001 From: LostLuma Date: Thu, 20 Feb 2025 23:22:10 +0100 Subject: [PATCH] Fix crash when search yields no results Signed-off-by: Lilly Rose Berner --- gradle.properties | 2 +- .../modmenu/mixin/ListWidgetMixin.java | 23 +++++++++++++++++++ src/main/resources/fabric.mod.json | 2 +- src/main/resources/mixins.modmenu.json | 1 + 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/terraformersmc/modmenu/mixin/ListWidgetMixin.java diff --git a/gradle.properties b/gradle.properties index 690d0988..1bbf5e57 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,6 +9,6 @@ archives_base_name = modmenu minecraft_version = 1.7.10 feather_build = 25 nests_build = 1 -fabric_loader_version = 0.14.24 +fabric_loader_version = 0.16.10 quilt_loader_version = 0.19.2 osl_version = 0.11.0 diff --git a/src/main/java/com/terraformersmc/modmenu/mixin/ListWidgetMixin.java b/src/main/java/com/terraformersmc/modmenu/mixin/ListWidgetMixin.java new file mode 100644 index 00000000..27397207 --- /dev/null +++ b/src/main/java/com/terraformersmc/modmenu/mixin/ListWidgetMixin.java @@ -0,0 +1,23 @@ +package com.terraformersmc.modmenu.mixin; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import net.minecraft.client.gui.widget.ListWidget; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(ListWidget.class) +public abstract class ListWidgetMixin { + @Shadow + protected abstract int getHeight(); + + @WrapOperation(method = "render(IIF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/ListWidget;getMaxScroll()I")) + private int skipBlock(ListWidget instance, Operation operation) { + if (this.getHeight() == 0) { + return 0; + } else { + return operation.call(instance); + } + } +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index d1d3acbf..8187725e 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -21,7 +21,7 @@ }, "depends": { "minecraft": "1.7.x", - "fabricloader": ">=0.14.21", + "fabricloader": ">=0.16.10", "osl-entrypoints": ">=0.4.0", "osl-resource-loader": ">=0.2.3" }, diff --git a/src/main/resources/mixins.modmenu.json b/src/main/resources/mixins.modmenu.json index 0fa7f49a..46cd4cff 100644 --- a/src/main/resources/mixins.modmenu.json +++ b/src/main/resources/mixins.modmenu.json @@ -7,6 +7,7 @@ "AccessorButtonWidget", "AccessorI18n", "AccessorTranslationStorage", + "ListWidgetMixin", "MixinGameMenu", "MixinTextFieldWidget", "MixinTitleScreen"