diff options
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
17 files changed, 65 insertions, 74 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java b/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java index 384986ae..f177d2f8 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java @@ -37,8 +37,8 @@ public abstract class ClientPlayNetworkHandlerMixin { return !Utils.isOnHypixel(); } - @WrapWithCondition(method = "onPlayerList", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;)V", remap = false)) - private boolean skyblocker$cancelPlayerListWarning(Logger instance, String format, Object arg) { + @WrapWithCondition(method = "onPlayerList", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V", remap = false)) + private boolean skyblocker$cancelPlayerListWarning(Logger instance, String format, Object arg1, Object arg2) { return !Utils.isOnHypixel(); } diff --git a/src/main/java/de/hysky/skyblocker/mixin/PlayerSkinProviderMixin.java b/src/main/java/de/hysky/skyblocker/mixin/PlayerSkinProviderMixin.java index 978835d2..dd38e15a 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/PlayerSkinProviderMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/PlayerSkinProviderMixin.java @@ -1,29 +1,18 @@ package de.hysky.skyblocker.mixin; +import org.slf4j.Logger; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import com.llamalad7.mixinextras.injector.ModifyReturnValue; -import com.llamalad7.mixinextras.sugar.Local; -import com.mojang.authlib.GameProfile; -import com.mojang.authlib.minecraft.MinecraftSessionService; +import com.llamalad7.mixinextras.injector.WrapWithCondition; import de.hysky.skyblocker.utils.Utils; -import net.minecraft.client.texture.PlayerSkinProvider.Textures; @Mixin(targets = "net.minecraft.client.texture.PlayerSkinProvider$1") public class PlayerSkinProviderMixin { - @ModifyReturnValue(method = "method_52867", at = @At("RETURN")) - private static Textures skyblocker$fixTexturesThatHadAnInvalidSignature(Textures texture, @Local MinecraftSessionService sessionService, @Local GameProfile profile) { - if (Utils.isOnHypixel() && texture == Textures.MISSING) { - try { - return Textures.fromMap(sessionService.getTextures(profile, false), false); - } catch (Throwable t) { - return Textures.MISSING; - } - } - - return texture; + @WrapWithCondition(method = "method_54647", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;)V", remap = false)) + private static boolean skyblocker$dontLogInvalidSignatureWarnings(Logger logger, String message, Object profileId) { + return !Utils.isOnHypixel(); } } diff --git a/src/main/java/de/hysky/skyblocker/mixin/YggdrasilMinecraftSessionServiceMixin.java b/src/main/java/de/hysky/skyblocker/mixin/YggdrasilMinecraftSessionServiceMixin.java index 8da87be0..47c8780f 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/YggdrasilMinecraftSessionServiceMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/YggdrasilMinecraftSessionServiceMixin.java @@ -4,8 +4,7 @@ import org.slf4j.Logger; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import com.llamalad7.mixinextras.injector.WrapWithCondition; import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService; import de.hysky.skyblocker.utils.Utils; @@ -13,8 +12,9 @@ import de.hysky.skyblocker.utils.Utils; @Mixin(value = YggdrasilMinecraftSessionService.class, remap = false) public class YggdrasilMinecraftSessionServiceMixin { - @WrapOperation(method = "getSecurePropertyValue", remap = false, at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;error(Ljava/lang/String;Ljava/lang/Object;)V", remap = false)) - private void skyblocker$dontLogMissingSignaturesOrTamperedProperties(Logger logger, String message, Object property, Operation<Void> operation) { - if (!Utils.isOnHypixel()) operation.call(logger, message, property); + //TODO perhaps investigate if we could fix this + @WrapWithCondition(method = "unpackTextures", remap = false, at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;error(Ljava/lang/String;Ljava/lang/Throwable;)V", ordinal = 0, remap = false)) + private boolean skyblocker$dontLogIncorrectEndingByteExceptions(Logger logger, String message, Throwable throwable) { + return !Utils.isOnHypixel() && throwable instanceof IllegalArgumentException; } } diff --git a/src/main/java/de/hysky/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java b/src/main/java/de/hysky/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java index 3c2bbc9a..78c4bac1 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/YggdrasilServicesKeyInfoMixin.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.mixin; +import com.llamalad7.mixinextras.injector.WrapWithCondition; import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.mojang.authlib.yggdrasil.YggdrasilServicesKeyInfo; @@ -52,8 +53,8 @@ public class YggdrasilServicesKeyInfoMixin { } } - @WrapOperation(method = "validateProperty", remap = false, at = @At(value = "INVOKE", target = "org/slf4j/Logger.error(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V", remap = false)) - private void skyblocker$dontLogFailedSignatureValidation(Logger logger, String message, Object property, Object exception, Operation<Void> operation) { - if (!Utils.isOnHypixel()) operation.call(logger, message, property, exception); + @WrapWithCondition(method = "validateProperty", remap = false, at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;error(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V", remap = false)) + private boolean skyblocker$dontLogFailedSignatureValidations(Logger logger, String message, Object property, Object exception) { + return !Utils.isOnHypixel(); } }
\ No newline at end of file diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/SecretWaypoint.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/SecretWaypoint.java index 43f624f6..75a0c20f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/SecretWaypoint.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/SecretWaypoint.java @@ -14,9 +14,9 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.command.argument.EnumArgumentType; import net.minecraft.entity.Entity; import net.minecraft.text.Text; +import net.minecraft.text.TextCodecs; import net.minecraft.util.Formatting; import net.minecraft.util.StringIdentifiable; -import net.minecraft.util.dynamic.Codecs; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import org.jetbrains.annotations.NotNull; @@ -33,7 +33,7 @@ public class SecretWaypoint extends Waypoint { public static final Codec<SecretWaypoint> CODEC = RecordCodecBuilder.create(instance -> instance.group( Codec.INT.fieldOf("secretIndex").forGetter(secretWaypoint -> secretWaypoint.secretIndex), Category.CODEC.fieldOf("category").forGetter(secretWaypoint -> secretWaypoint.category), - Codecs.TEXT.fieldOf("name").forGetter(secretWaypoint -> secretWaypoint.name), + TextCodecs.CODEC.fieldOf("name").forGetter(secretWaypoint -> secretWaypoint.name), BlockPos.CODEC.fieldOf("pos").forGetter(secretWaypoint -> secretWaypoint.pos) ).apply(instance, SecretWaypoint::new)); public static final Codec<List<SecretWaypoint>> LIST_CODEC = CODEC.listOf(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/SecretsTracker.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/SecretsTracker.java index 0690952e..68f09344 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/SecretsTracker.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/SecretsTracker.java @@ -105,7 +105,7 @@ public class SecretsTracker { PlayerEntity playerEntity = MinecraftClient.getInstance().player; if (playerEntity != null) { if (success) { - playerEntity.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.dungeons.secretsTracker.feedback", Text.literal(player).styled(Constants.WITH_COLOR.apply(0xf57542)), "§7" + secrets, getCacheText(cacheAge)))); + playerEntity.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.dungeons.secretsTracker.feedback", Text.literal(player).withColor(0xf57542), "§7" + secrets, getCacheText(cacheAge)))); } else { playerEntity.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.dungeons.secretsTracker.failFeedback"))); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java b/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java index 823c4c99..773f1808 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java @@ -33,6 +33,7 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; import net.minecraft.nbt.NbtIo; import net.minecraft.nbt.NbtList; +import net.minecraft.nbt.NbtTagSizeTracker; import net.minecraft.util.Util; public class MuseumItemCache { @@ -92,7 +93,7 @@ public class MuseumItemCache { for (Map.Entry<String, JsonElement> donatedSet : donatedSets.entrySet()) { //Item is plural here because the nbt is a list String itemsData = donatedSet.getValue().getAsJsonObject().get("items").getAsJsonObject().get("data").getAsString(); - NbtList items = NbtIo.readCompressed(new ByteArrayInputStream(Base64.getDecoder().decode(itemsData))).getList("i", NbtElement.COMPOUND_TYPE); + NbtList items = NbtIo.readCompressed(new ByteArrayInputStream(Base64.getDecoder().decode(itemsData)), NbtTagSizeTracker.ofUnlimitedBytes()).getList("i", NbtElement.COMPOUND_TYPE); for (int i = 0; i < items.size(); i++) { NbtCompound tag = items.getCompound(i).getCompound("tag"); @@ -164,4 +165,4 @@ public class MuseumItemCache { return System.currentTimeMillis() > lastUpdated + MAX_AGE; } } -} +}
\ No newline at end of file diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java index 5627b56d..af2a062b 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java @@ -25,6 +25,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.nio.file.Files; import java.nio.file.Path; import java.util.Objects; import java.util.regex.Matcher; @@ -74,12 +75,12 @@ public class BackpackPreview { private static void loadStorages() { for (int index = 0; index < STORAGE_SIZE; ++index) { storages[index] = null; - File storageFile = saveDir.resolve(index + ".nbt").toFile(); - if (storageFile.isFile()) { + Path storageFile = saveDir.resolve(index + ".nbt"); + if (Files.isRegularFile(storageFile)) { try { storages[index] = Storage.fromNbt(Objects.requireNonNull(NbtIo.read(storageFile))); } catch (Exception e) { - LOGGER.error("Failed to load backpack preview file: " + storageFile.getName(), e); + LOGGER.error("Failed to load backpack preview file: " + storageFile.getFileName().toString(), e); } } } @@ -95,7 +96,7 @@ public class BackpackPreview { private static void saveStorage(int index) { try { - NbtIo.write(storages[index].toNbt(), saveDir.resolve(index + ".nbt").toFile()); + NbtIo.write(storages[index].toNbt(), saveDir.resolve(index + ".nbt")); storages[index].markClean(); } catch (Exception e) { LOGGER.error("Failed to save backpack preview file: " + index + ".nbt", e); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemStackBuilder.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemStackBuilder.java index cc7c0bc1..c1eea23a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemStackBuilder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemStackBuilder.java @@ -49,11 +49,11 @@ public class ItemStackBuilder { tag.put("display", display); String name = injectData(item.getDisplayName(), injectors); - display.put("Name", NbtString.of(Text.Serializer.toJson(Text.of(name)))); + display.put("Name", NbtString.of(Text.Serialization.toJsonString(Text.of(name)))); NbtList lore = new NbtList(); display.put("Lore", lore); - item.getLore().forEach(el -> lore.add(NbtString.of(Text.Serializer.toJson(Text.of(injectData(el, injectors)))))); + item.getLore().forEach(el -> lore.add(NbtString.of(Text.Serialization.toJsonString(Text.of(injectData(el, injectors)))))); String nbttag = item.getNbttag(); // add skull texture diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java index 814611e5..d2d463c7 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java @@ -35,7 +35,7 @@ public class ResultButtonWidget extends ClickableWidget { } @Override - public void renderButton(DrawContext context, int mouseX, int mouseY, float delta) { + public void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { MinecraftClient client = MinecraftClient.getInstance(); // this.drawTexture(matrices, this.x, this.y, 29, 206, this.width, this.height); context.drawGuiTexture(BACKGROUND_TEXTURE, this.getX(), this.getY(), this.getWidth(), this.getHeight()); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java b/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java index eb744389..28ffc930 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java @@ -83,7 +83,7 @@ public class QuickNavButton extends ClickableWidget { * @param mouseY the y-coordinate of the mouse cursor */ @Override - public void renderButton(DrawContext context, int mouseX, int mouseY, float delta) { + public void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { this.updateCoordinates(); RenderSystem.disableDepthTest(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/rift/EffigyWaypoints.java b/src/main/java/de/hysky/skyblocker/skyblock/rift/EffigyWaypoints.java index 95e08c80..f2831b0d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/rift/EffigyWaypoints.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/rift/EffigyWaypoints.java @@ -7,6 +7,7 @@ import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.minecraft.text.Text; import net.minecraft.text.TextColor; import net.minecraft.util.DyeColor; +import net.minecraft.util.Formatting; import net.minecraft.util.math.BlockPos; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,7 +45,7 @@ public class EffigyWaypoints { effigiesText.addAll(prefixAndSuffix.get(1).getSiblings()); for (int i2 = 1; i2 < effigiesText.size(); i2++) { - if (effigiesText.get(i2).getStyle().getColor() == TextColor.parse("gray")) UNBROKEN_EFFIGIES.add(EFFIGIES.get(i2 - 1)); + if (effigiesText.get(i2).getStyle().getColor().equals(TextColor.fromFormatting(Formatting.GRAY))) UNBROKEN_EFFIGIES.add(EFFIGIES.get(i2 - 1)); } } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java index 5ebe4c1a..43647ec6 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java @@ -18,8 +18,14 @@ public class ShortcutsConfigListWidget extends ElementListWidget<ShortcutsConfig private final ShortcutsConfigScreen screen; private final List<Map<String, String>> shortcutMaps = new ArrayList<>(); - public ShortcutsConfigListWidget(MinecraftClient minecraftClient, ShortcutsConfigScreen screen, int width, int height, int top, int bottom, int itemHeight) { - super(minecraftClient, width, height, top, bottom, itemHeight); + /** + * @param width the width of the widget + * @param height the height of the widget + * @param y the y coordinate to start rendering/placing the widget from + * @param itemHeight the height of each item + */ + public ShortcutsConfigListWidget(MinecraftClient minecraftClient, ShortcutsConfigScreen screen, int width, int height, int y, int itemHeight) { + super(minecraftClient, width, height, y, itemHeight); this.screen = screen; ShortcutCategoryEntry commandCategory = new ShortcutCategoryEntry(Shortcuts.commands, "skyblocker.shortcuts.command.target", "skyblocker.shortcuts.command.replacement"); if (Shortcuts.isShortcutsLoaded()) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java index a5f8ae2d..665d571f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java @@ -16,7 +16,6 @@ public class ShortcutsConfigScreen extends Screen { private ButtonWidget buttonDelete; private ButtonWidget buttonNew; private ButtonWidget buttonDone; - private boolean initialized; private double scrollAmount; private final Screen parent; @@ -37,12 +36,7 @@ public class ShortcutsConfigScreen extends Screen { @Override protected void init() { super.init(); - if (initialized) { - shortcutsConfigListWidget.updateSize(width, height, 32, height - 64); - } else { - shortcutsConfigListWidget = new ShortcutsConfigListWidget(client, this, width, height, 32, height - 64, 25); - initialized = true; - } + shortcutsConfigListWidget = new ShortcutsConfigListWidget(client, this, width, height - 96, 32, 25); addDrawableChild(shortcutsConfigListWidget); GridWidget gridWidget = new GridWidget(); gridWidget.getMainPositioner().marginX(5).marginY(2); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/GardenServerWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/GardenServerWidget.java index b6b65896..208b0131 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/GardenServerWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/GardenServerWidget.java @@ -6,7 +6,6 @@ import java.util.regex.Pattern; import de.hysky.skyblocker.skyblock.tabhud.util.Ico; import de.hysky.skyblocker.skyblock.tabhud.util.PlayerListMgr; import de.hysky.skyblocker.skyblock.tabhud.widget.component.IcoTextComponent; -import de.hysky.skyblocker.utils.Constants; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -34,7 +33,7 @@ public class GardenServerWidget extends Widget { this.addSimpleIcoText(Ico.EMERALD, "Gems:", Formatting.GREEN, 43); Text copperText = Widget.simpleEntryText(44, "Copper:", Formatting.WHITE); - ((MutableText) copperText.getSiblings().get(0)).styled(Constants.WITH_COLOR.apply(COPPER_COLOR)); + ((MutableText) copperText.getSiblings().get(0)).withColor(COPPER_COLOR); this.addComponent(new IcoTextComponent(Ico.COPPER, copperText)); diff --git a/src/main/java/de/hysky/skyblocker/utils/Constants.java b/src/main/java/de/hysky/skyblocker/utils/Constants.java index 4fcc1f6c..4c557133 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Constants.java +++ b/src/main/java/de/hysky/skyblocker/utils/Constants.java @@ -1,12 +1,9 @@ package de.hysky.skyblocker.utils; import java.util.List; -import java.util.function.IntFunction; import java.util.function.Supplier; -import java.util.function.UnaryOperator; import net.minecraft.text.MutableText; -import net.minecraft.text.Style; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -15,19 +12,18 @@ import net.minecraft.util.Formatting; */ public interface Constants { String LEVEL_EMBLEMS = "\u2E15\u273F\u2741\u2E19\u03B1\u270E\u2615\u2616\u2663\u213B\u2694\u27B6\u26A1\u2604\u269A\u2693\u2620\u269B\u2666\u2660\u2764\u2727\u238A\u1360\u262C\u269D\u29C9\uA214\u32D6\u2E0E\u26A0\uA541\u3020\u30C4\u2948\u2622\u2623\u273E\u269C\u0BD0\u0A6D\u2742\u16C3\u3023\u10F6\u0444\u266A\u266B\u04C3\u26C1\u26C3\u16DD\uA03E\u1C6A\u03A3\u09EB\u2603\u2654\u26C2\u0FC7\uA925\uA56A\u12DE"; - IntFunction<UnaryOperator<Style>> WITH_COLOR = color -> style -> style.withColor(color); Supplier<MutableText> PREFIX = () -> Text.empty() .append(Text.literal("[").formatted(Formatting.GRAY)) - .append(Text.literal("S").styled(WITH_COLOR.apply(0x00ff4c))) - .append(Text.literal("k").styled(WITH_COLOR.apply(0x02fa60))) - .append(Text.literal("y").styled(WITH_COLOR.apply(0x04f574))) - .append(Text.literal("b").styled(WITH_COLOR.apply(0x07ef88))) - .append(Text.literal("l").styled(WITH_COLOR.apply(0x09ea9c))) - .append(Text.literal("o").styled(WITH_COLOR.apply(0x0be5af))) - .append(Text.literal("c").styled(WITH_COLOR.apply(0x0de0c3))) - .append(Text.literal("k").styled(WITH_COLOR.apply(0x10dad7))) - .append(Text.literal("e").styled(WITH_COLOR.apply(0x12d5eb))) - .append(Text.literal("r").styled(WITH_COLOR.apply(0x14d0ff))) + .append(Text.literal("S").withColor(0x00ff4c)) + .append(Text.literal("k").withColor(0x02fa60)) + .append(Text.literal("y").withColor(0x04f574)) + .append(Text.literal("b").withColor(0x07ef88)) + .append(Text.literal("l").withColor(0x09ea9c)) + .append(Text.literal("o").withColor(0x0be5af)) + .append(Text.literal("c").withColor(0x0de0c3)) + .append(Text.literal("k").withColor(0x10dad7)) + .append(Text.literal("e").withColor(0x12d5eb)) + .append(Text.literal("r").withColor(0x14d0ff)) .append(Text.literal("] ").formatted(Formatting.GRAY)); diff --git a/src/main/java/de/hysky/skyblocker/utils/Utils.java b/src/main/java/de/hysky/skyblocker/utils/Utils.java index 02b1637b..22601c98 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Utils.java +++ b/src/main/java/de/hysky/skyblocker/utils/Utils.java @@ -266,18 +266,21 @@ public class Utils { ObjectArrayList<Text> textLines = new ObjectArrayList<>(); ObjectArrayList<String> stringLines = new ObjectArrayList<>(); - for (ScoreboardPlayerScore score : scoreboard.getAllPlayerScores(objective)) { - Team team = scoreboard.getPlayerTeam(score.getPlayerName()); + for (ScoreHolder scoreHolder : scoreboard.getKnownScoreHolders()) { + //Limit to just objectives displayed in the scoreboard (specifically sidebar objective) + if (scoreboard.getScoreHolderObjectives(scoreHolder).containsKey(objective)) { + Team team = scoreboard.getScoreHolderTeam(scoreHolder.getNameForScoreboard()); - if (team != null) { - Text textLine = Text.empty().append(team.getPrefix().copy()).append(team.getSuffix().copy()); - String strLine = team.getPrefix().getString() + team.getSuffix().getString(); + if (team != null) { + Text textLine = Text.empty().append(team.getPrefix().copy()).append(team.getSuffix().copy()); + String strLine = team.getPrefix().getString() + team.getSuffix().getString(); - if (!strLine.trim().isEmpty()) { - String formatted = Formatting.strip(strLine); + if (!strLine.trim().isEmpty()) { + String formatted = Formatting.strip(strLine); - textLines.add(textLine); - stringLines.add(formatted); + textLines.add(textLine); + stringLines.add(formatted); + } } } } |