Skip to content

Commit 28f0ace

Browse files
Merge pull request SkyblockerMod#1070 from SkyblockerMod/1.21.4
1.21.4
2 parents b6bfebc + 08b2377 commit 28f0ace

37 files changed

+362
-852
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
\
99
[![Discord](https://img.shields.io/discord/879732108745125969?logo=discord&labelColor=cecece&color=7289DA&label=)](https://discord.com/invite/aNNJHQykck)
1010

11-
Hypixel Skyblock Mod for Minecraft 1.21.2 & 1.21.3
11+
Hypixel Skyblock Mod for Minecraft 1.21.4
1212

1313
Installation guide is [here](https://github.com/SkyblockerMod/Skyblocker/wiki/installation) or use our [Modpack](https://modrinth.com/modpack/skyblocker-modpack)
1414
## Features

Diff for: build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
plugins {
2-
id 'fabric-loom' version '1.8-SNAPSHOT'
2+
id 'fabric-loom' version '1.9-SNAPSHOT'
33
id 'maven-publish'
4-
id "me.modmuss50.mod-publish-plugin" version "0.7.4"
4+
id "me.modmuss50.mod-publish-plugin" version "0.8.1"
55
id "de.hysky.skyblocker.annotation-processor"
66
}
77

@@ -286,4 +286,4 @@ publishing {
286286
// The repositories here will be used for publishing your artifact, not for
287287
// retrieving dependencies.
288288
}
289-
}
289+
}

Diff for: gradle.properties

+7-7
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@ org.gradle.jvmargs=-Xmx1G -Dfile.encoding=UTF-8 -Duser.language=en -Duser.countr
22
org.gradle.parallel=true
33

44
# Fabric Properties (https://fabricmc.net/versions.html)
5-
## 1.21.2
6-
minecraft_version=1.21.3
7-
yarn_mappings=1.21.3+build.2
8-
loader_version=0.16.7
5+
## 1.21.4
6+
minecraft_version=1.21.4
7+
yarn_mappings=1.21.4+build.1
8+
loader_version=0.16.9
99

1010
#Fabric api
11-
## 1.21.2
12-
fabric_api_version=0.106.1+1.21.3
11+
## 1.21.4
12+
fabric_api_version=0.111.0+1.21.4
1313

1414
# Minecraft Mods
1515
## YACL (https://github.com/isXander/YetAnotherConfigLib)
16-
yacl_version=3.6.1+1.21.2
16+
yacl_version=3.6.2+1.21.4
1717
## HM API (https://github.com/AzureAaron/hm-api)
1818
hm_api_version=1.0.1+1.21.2
1919
## Mod Menu (https://modrinth.com/mod/modmenu/versions)

Diff for: gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

Diff for: src/main/java/de/hysky/skyblocker/debug/SnapshotDebug.java

+20-4
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
55
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
66
import net.minecraft.SharedConstants;
7+
import net.minecraft.client.MinecraftClient;
78
import net.minecraft.text.Text;
89
import net.minecraft.util.math.BlockPos;
910
import net.minecraft.util.math.Vec3d;
1011

1112
public class SnapshotDebug {
13+
private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
1214
private static final float[] RED = { 1.0f, 0.0f, 0.0f };
1315
private static final float ALPHA = 0.5f;
1416
private static final float LINE_WIDTH = 8f;
17+
private static final long AARON_WORLD_SEED = 5629719634239627355L;
1518

1619
private static boolean isInSnapshot() {
1720
return !SharedConstants.getGameVersion().isStable();
@@ -24,9 +27,22 @@ static void init() {
2427
}
2528

2629
private static void renderTest(WorldRenderContext wrc) {
27-
RenderHelper.renderFilledWithBeaconBeam(wrc, new BlockPos(175, 63, -14), RED, ALPHA, true);
28-
RenderHelper.renderLinesFromPoints(wrc, new Vec3d[] { new Vec3d(173, 66, -7.5), new Vec3d(178, 66, -7.5) }, RED, ALPHA, LINE_WIDTH, false);
29-
RenderHelper.renderQuad(wrc, new Vec3d[] { new Vec3d(183, 66, -16), new Vec3d(183, 63, -16), new Vec3d(183, 63, -14), new Vec3d(183, 66, -14) }, RED, ALPHA, false);
30-
RenderHelper.renderText(wrc, Text.of("Skyblocker on " + SharedConstants.getGameVersion().getName() + "!"), new Vec3d(175.5, 67.5, -7.5), false);
30+
if (getSeed() == AARON_WORLD_SEED) {
31+
RenderHelper.renderFilledWithBeaconBeam(wrc, new BlockPos(175, 63, -14), RED, ALPHA, true);
32+
RenderHelper.renderLinesFromPoints(wrc, new Vec3d[] { new Vec3d(173, 66, -7.5), new Vec3d(178, 66, -7.5) }, RED, ALPHA, LINE_WIDTH, false);
33+
RenderHelper.renderQuad(wrc, new Vec3d[] { new Vec3d(183, 66, -16), new Vec3d(183, 63, -16), new Vec3d(183, 63, -14), new Vec3d(183, 66, -14) }, RED, ALPHA, false);
34+
RenderHelper.renderText(wrc, Text.of("Skyblocker on " + SharedConstants.getGameVersion().getName() + "!"), new Vec3d(175.5, 67.5, -7.5), false);
35+
} else {
36+
RenderHelper.renderFilledWithBeaconBeam(wrc, new BlockPos(-3, 63, 5), RED, ALPHA, true);
37+
RenderHelper.renderOutline(wrc, new BlockPos(-3, 63, 5), RED, 5, true); // Use waypoint default line width
38+
RenderHelper.renderLinesFromPoints(wrc, new Vec3d[] { new Vec3d(-2, 65, 6.5), new Vec3d(3, 65, 6.5) }, RED, ALPHA, LINE_WIDTH, false);
39+
RenderHelper.renderLineFromCursor(wrc, new Vec3d(-2.5, 63.5, 5.5), RED, ALPHA, LINE_WIDTH);
40+
RenderHelper.renderQuad(wrc, new Vec3d[] { new Vec3d(3, 66, 3), new Vec3d(3, 63, 3), new Vec3d(3, 63, 5), new Vec3d(3, 66, 5) }, RED, ALPHA, false);
41+
RenderHelper.renderText(wrc, Text.of("Skyblocker on " + SharedConstants.getGameVersion().getName() + "!"), new Vec3d(0.5, 66.5, 6.5), false);
42+
}
43+
}
44+
45+
private static long getSeed() {
46+
return CLIENT.isIntegratedServerRunning() ? CLIENT.getServer().getOverworld().getSeed() : 0L;
3147
}
3248
}

Diff for: src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java

+20
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package de.hysky.skyblocker.mixins;
22

3+
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
34
import com.llamalad7.mixinextras.sugar.Local;
45
import com.mojang.blaze3d.systems.RenderSystem;
56

@@ -22,9 +23,11 @@
2223
import de.hysky.skyblocker.utils.Utils;
2324
import de.hysky.skyblocker.utils.container.ContainerSolver;
2425
import de.hysky.skyblocker.utils.container.ContainerSolverManager;
26+
import net.fabricmc.fabric.api.client.screen.v1.Screens;
2527
import net.minecraft.client.gui.DrawContext;
2628
import net.minecraft.client.gui.screen.Screen;
2729
import net.minecraft.client.gui.screen.ingame.HandledScreen;
30+
import net.minecraft.client.gui.widget.ClickableWidget;
2831
import net.minecraft.client.render.RenderLayer;
2932
import net.minecraft.inventory.SimpleInventory;
3033
import net.minecraft.item.ItemStack;
@@ -48,6 +51,7 @@
4851
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
4952

5053
import java.util.List;
54+
import java.util.Optional;
5155
import java.util.Set;
5256
import java.util.regex.Matcher;
5357

@@ -144,6 +148,22 @@ protected HandledScreenMixin(Text title) {
144148
}
145149
}
146150

151+
@ModifyExpressionValue(method = "mouseClicked", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;mouseClicked(DDI)Z"))
152+
public boolean skyblocker$passThroughSearchFieldUnfocusedClicks(boolean superClicked, double mouseX, double mouseY, int button) {
153+
//Handle Search Field clicks - as of 1.21.4 the game will only send clicks to the selected element rather than trying to send one to each and stopping when the first returns true (if any).
154+
if (!superClicked) {
155+
Optional<ClickableWidget> searchField = Screens.getButtons(this).stream()
156+
.filter(InventorySearch.SearchTextFieldWidget.class::isInstance)
157+
.findFirst();
158+
159+
if (searchField.isPresent() && searchField.get().mouseClicked(mouseX, mouseY, button)) {
160+
return true;
161+
}
162+
}
163+
164+
return superClicked;
165+
}
166+
147167
/**
148168
* Draws the unselected tabs in front of the background blur, but behind the main inventory, similar to creative inventory tabs
149169
*/

Diff for: src/main/java/de/hysky/skyblocker/mixins/InGameOverlayRendererMixin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
@Mixin(InGameOverlayRenderer.class)
1010
public class InGameOverlayRendererMixin {
1111

12-
@ModifyArg(method = "renderFireOverlay", index = 2, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/BufferBuilder;vertex(Lorg/joml/Matrix4f;FFF)Lnet/minecraft/client/render/VertexConsumer;"))
12+
@ModifyArg(method = "renderFireOverlay", index = 2, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/VertexConsumer;vertex(Lorg/joml/Matrix4f;FFF)Lnet/minecraft/client/render/VertexConsumer;"))
1313
private static float configureFlameHeight(float y) {
1414
return y - (0.5f - ((float) SkyblockerConfigManager.get().uiAndVisuals.flameOverlay.flameHeight / 200.0f));
1515
}

Diff for: src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureMixin.java renamed to src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureDownloaderMixin.java

+10-14
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
import java.awt.Color;
44
import java.util.Set;
55

6-
import org.spongepowered.asm.mixin.Final;
76
import org.spongepowered.asm.mixin.Mixin;
8-
import org.spongepowered.asm.mixin.Shadow;
97
import org.spongepowered.asm.mixin.Unique;
108
import org.spongepowered.asm.mixin.injection.At;
119
import org.spongepowered.asm.mixin.injection.Inject;
@@ -17,13 +15,15 @@
1715

1816
import de.hysky.skyblocker.config.SkyblockerConfigManager;
1917
import de.hysky.skyblocker.skyblock.item.PlayerHeadHashCache;
18+
import de.hysky.skyblocker.skyblock.profileviewer.ProfileViewerScreen;
2019
import de.hysky.skyblocker.utils.Utils;
20+
import net.minecraft.client.MinecraftClient;
2121
import net.minecraft.client.texture.NativeImage;
22-
import net.minecraft.client.texture.PlayerSkinTexture;
22+
import net.minecraft.client.texture.PlayerSkinTextureDownloader;
2323
import net.minecraft.util.math.ColorHelper;
2424

25-
@Mixin(PlayerSkinTexture.class)
26-
public class PlayerSkinTextureMixin {
25+
@Mixin(PlayerSkinTextureDownloader.class)
26+
public class PlayerSkinTextureDownloaderMixin {
2727
@Unique
2828
private static final Set<String> STRIP_DE_FACTO_TRANSPARENT_PIXELS = Set.of(
2929
"4f3b91b6aa7124f30ed4ad1b2bb012a82985a33640555e18e792f96af8f58ec6", /*Titanium Necklace*/
@@ -32,14 +32,10 @@ public class PlayerSkinTextureMixin {
3232
@Unique
3333
private static final float BRIGHTNESS_THRESHOLD = 0.1f;
3434

35-
@Shadow
36-
@Final
37-
private String url;
38-
3935
@Inject(method = "remapTexture", at = @At("HEAD"))
40-
private void skyblocker$determineSkinSource(NativeImage image, CallbackInfoReturnable<NativeImage> cir, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) {
41-
if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.dontStripSkinAlphaValues) {
42-
String skinTextureHash = PlayerHeadHashCache.getSkinHash(this.url);
36+
private static void skyblocker$determineSkinSource(NativeImage image, String uri, CallbackInfoReturnable<NativeImage> cir, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) {
37+
if (SkyblockerConfigManager.get().uiAndVisuals.dontStripSkinAlphaValues && (Utils.isOnSkyblock() || MinecraftClient.getInstance().currentScreen instanceof ProfileViewerScreen)) {
38+
String skinTextureHash = PlayerHeadHashCache.getSkinHash(uri);
4339
int skinHash = skinTextureHash.hashCode();
4440
isSkyblockSkinTexture.set(PlayerHeadHashCache.contains(skinHash));
4541

@@ -50,8 +46,8 @@ public class PlayerSkinTextureMixin {
5046
}
5147
}
5248

53-
@WrapWithCondition(method = "remapTexture", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/texture/PlayerSkinTexture;stripAlpha(Lnet/minecraft/client/texture/NativeImage;IIII)V"))
54-
private boolean skyblocker$dontStripAlphaValues(NativeImage image, int x1, int y1, int x2, int y2, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) {
49+
@WrapWithCondition(method = "remapTexture", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/texture/PlayerSkinTextureDownloader;stripAlpha(Lnet/minecraft/client/texture/NativeImage;IIII)V"))
50+
private static boolean skyblocker$dontStripAlphaValues(NativeImage image, int x1, int y1, int x2, int y2, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) {
5551
return !isSkyblockSkinTexture.get();
5652
}
5753

Diff for: src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package de.hysky.skyblocker.skyblock;
22

33
import de.hysky.skyblocker.config.SkyblockerConfigManager;
4-
import de.hysky.skyblocker.skyblock.item.CustomArmorAnimatedDyes;
4+
import de.hysky.skyblocker.utils.OkLabColor;
55
import net.minecraft.entity.decoration.ArmorStandEntity;
66
import net.minecraft.text.MutableText;
77
import net.minecraft.text.Text;
@@ -57,10 +57,10 @@ public static void compactDamage(ArmorStandEntity entity) {
5757
int length = prettifiedDmg.length();
5858
for (int i = 0; i < length; i++) {
5959
prettierCustomName.append(Text.literal(prettifiedDmg.substring(i, i + 1)).withColor(
60-
CustomArmorAnimatedDyes.interpolate(
60+
OkLabColor.interpolate(
6161
SkyblockerConfigManager.get().uiAndVisuals.compactDamage.critDamageGradientStart.getRGB() & 0x00FFFFFF,
6262
SkyblockerConfigManager.get().uiAndVisuals.compactDamage.critDamageGradientEnd.getRGB() & 0x00FFFFFF,
63-
i / (length - 1.0)
63+
i / (length - 1.0f)
6464
)
6565
));
6666
}

Diff for: src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java

+25-19
Original file line numberDiff line numberDiff line change
@@ -57,24 +57,7 @@ public static void showSearchBar(HandledScreen<?> handledScreen) {
5757

5858
private static @NotNull TextFieldWidget getTextFieldWidget(HandledScreen<?> handledScreen) {
5959
// Slightly modified text field widget
60-
TextFieldWidget textFieldWidget = new TextFieldWidget(Screens.getTextRenderer(handledScreen), 120, 20, Text.literal("Search Inventory")) {
61-
@Override
62-
public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
63-
// Makes the widget catch all key presses (except escape) to fix closing the inventory when pressing E
64-
// also check that the widget is focused and active
65-
return super.keyPressed(keyCode, scanCode, modifiers) || (keyCode != GLFW.GLFW_KEY_ESCAPE && this.isNarratable() && this.isFocused());
66-
}
67-
68-
// Unfocus when clicking outside
69-
@Override
70-
public boolean mouseClicked(double mouseX, double mouseY, int button) {
71-
if (isFocused() && !clicked(mouseX, mouseY)) {
72-
setFocused(false);
73-
return false;
74-
}
75-
return super.mouseClicked(mouseX, mouseY, button);
76-
}
77-
};
60+
TextFieldWidget textFieldWidget = new SearchTextFieldWidget(handledScreen);
7861
textFieldWidget.setPosition((handledScreen.width - textFieldWidget.getWidth()) / 2, 15);
7962
textFieldWidget.setPlaceholder(Text.translatable("gui.socialInteractions.search_hint"));
8063
textFieldWidget.setText(search); // Restore previous search
@@ -106,7 +89,6 @@ private static void onScreenClosed(Screen screen) {
10689
* Button to open the search bar, for accessibility reasons (pojav and general preferences)
10790
*/
10891
private static class SearchTextWidget extends TextWidget {
109-
11092
private final Text underlinedText;
11193
private final Text normalText;
11294
private final HandledScreen<?> screen;
@@ -137,4 +119,28 @@ public void renderWidget(DrawContext context, int mouseX, int mouseY, float delt
137119
super.renderWidget(context, mouseX, mouseY, delta);
138120
}
139121
}
122+
123+
public static class SearchTextFieldWidget extends TextFieldWidget {
124+
public SearchTextFieldWidget(HandledScreen<?> handledScreen) {
125+
super(Screens.getTextRenderer(handledScreen), 120, 20, Text.literal("Search Inventory"));
126+
}
127+
128+
@Override
129+
public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
130+
// Makes the widget catch all key presses (except escape) to fix closing the inventory when pressing E
131+
// also check that the widget is focused and active
132+
return super.keyPressed(keyCode, scanCode, modifiers) || (keyCode != GLFW.GLFW_KEY_ESCAPE && this.isNarratable() && this.isFocused());
133+
}
134+
135+
// Unfocus when clicking outside
136+
@Override
137+
public boolean mouseClicked(double mouseX, double mouseY, int button) {
138+
if (isFocused() && !isMouseOver(mouseX, mouseY)) {
139+
setFocused(false);
140+
return false;
141+
}
142+
143+
return super.mouseClicked(mouseX, mouseY, button);
144+
}
145+
}
140146
}

Diff for: src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public ChatRuleConfigEntry(int chatRuleIndex) {
124124
.build();
125125

126126
deleteButton = ButtonWidget.builder(Text.translatable("selectServer.delete"), a -> {
127-
oldScrollAmount = getScrollAmount();
127+
oldScrollAmount = getScrollY();
128128
client.setScreen(new ConfirmScreen(this::deleteEntry, Text.translatable("skyblocker.config.chat.chatRules.screen.deleteQuestion"), Text.translatable("skyblocker.config.chat.chatRules.screen.deleteWarning", chatRule.getName()), Text.translatable("selectServer.deleteButton"), ScreenTexts.CANCEL));
129129
})
130130
.size(50, 20)
@@ -155,7 +155,7 @@ private void deleteEntry(boolean confirmedAction) {
155155
}
156156

157157
client.setScreen(screen);
158-
setScrollAmount(oldScrollAmount);
158+
setScrollY(oldScrollAmount);
159159
}
160160

161161
@Override

Diff for: src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ protected static void render(WorldRenderContext context) {
262262
BlockPos playerPos = CLIENT.player.getBlockPos();
263263
for (Box hole : wallHoles) {
264264
float[] color = isHoleIncoming(hole, holeDirections.get(hole), playerPos) ? INCOMING_COLOR : OUTGOING_COLOR;
265-
RenderHelper.renderFilled(context, new BlockPos((int) hole.minX, (int) hole.minY, (int) hole.minZ), new Vec3d(hole.getLengthX(), hole.getLengthY(), hole.getLengthZ()), color, 0.3f, false);
265+
RenderHelper.renderFilled(context, hole, color, 0.3f, false);
266266
}
267267
}
268268

Diff for: src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java

+10
Original file line numberDiff line numberDiff line change
@@ -280,4 +280,14 @@ public List<? extends Element> children() {
280280

281281
@Override
282282
protected void appendClickableNarrations(NarrationMessageBuilder builder) {}
283+
284+
@Override
285+
protected int getContentsHeightWithPadding() {
286+
return 0;
287+
}
288+
289+
@Override
290+
protected double getDeltaYPerScroll() {
291+
return 0;
292+
}
283293
}

Diff for: src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java

+9-5
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,15 @@ public class OptionDropdownWidget extends ElementListWidget<OptionDropdownWidget
2525
private float animationProgress = 0f;
2626

2727
public OptionDropdownWidget(PartyFinderScreen screen, Text name, @Nullable Option selectedOption, int x, int y, int width, int height, int slotId) {
28-
super(screen.getClient(), width, height, y, 15);
28+
super(screen.getClient(), width, height, y, 15, 25);
2929
this.screen = screen;
3030
this.slotId = slotId;
3131
setX(x);
32-
setRenderHeader(true, 25);
3332
this.name = name;
3433
this.selectedOption = selectedOption;
3534
}
3635

37-
@Override
38-
protected boolean clickedHeader(int x, int y) {
36+
private boolean clickedHeader(int x, int y) {
3937
if (!(x >= 0 && y >= 10 && x < getWidth() && y < 26)) return false;
4038
if (screen.isWaitingForServer()) return false;
4139
if (isOpen) {
@@ -74,7 +72,13 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) {
7472
screen.clickAndWaitForServer(backButtonId);
7573
return true;
7674
}
77-
return super.mouseClicked(mouseX, mouseY, button);
75+
76+
if (super.mouseClicked(mouseX, mouseY, button)) return true;
77+
78+
if (clickedHeader((int) (mouseX - (double) (this.getX() + this.width / 2 - this.getRowWidth() / 2)), (int) (mouseY - (double) this.getY()) + (int) this.getScrollY() - 4)) {
79+
return true;
80+
}
81+
return false;
7882
}
7983

8084
@Override

Diff for: src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntryListWidget.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public void renderWidget(DrawContext context, int mouseX, int mouseY, float delt
9494
if (children().isEmpty()) {
9595
Text string = Text.translatable("skyblocker.partyFinder.loadingError");
9696
TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
97-
context.drawTextWrapped(textRenderer, string, getRowLeft(), getY() + 10, getRowWidth(), 0xFFFFFFFF);
97+
context.drawWrappedText(textRenderer, string, getRowLeft(), getY() + 10, getRowWidth(), 0xFFFFFFFF, false);
9898
} else super.renderWidget(context, mouseX, mouseY, delta);
9999
}
100100

0 commit comments

Comments
 (0)