From 18792206e06d61d9f3f115e6a8e74b4e47e4e2ee Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Thu, 19 Sep 2024 23:37:38 -0400 Subject: Fix Goblin Eggs in the PV & Item List --- src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemFixerUpper.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemFixerUpper.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemFixerUpper.java index ab748698..e931c7e2 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemFixerUpper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemFixerUpper.java @@ -180,6 +180,8 @@ public class ItemFixerUpper { private final static Int2ObjectMap SPAWN_EGG_VARIANTS = Int2ObjectMaps.unmodifiable(new Int2ObjectOpenHashMap<>(Map.ofEntries( //This entry 0 is technically not right but Hypixel decided to make it polar bear so well we use that Map.entry(0, "minecraft:polar_bear_spawn_egg"), + //This entry 4 does not actually exist, Hypixel uses it as a placeholder for elder guardians + Map.entry(4, "minecraft:elder_guardian_spawn_egg"), Map.entry(50, "minecraft:creeper_spawn_egg"), Map.entry(51, "minecraft:skeleton_spawn_egg"), Map.entry(52, "minecraft:spider_spawn_egg"), -- cgit From c6522b8d8b3389c6ee60f6cf6fc83bffa3436618 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 20 Sep 2024 01:23:40 -0400 Subject: Update ItemUtils & Networth Calculator for Mining Changes --- src/main/java/de/hysky/skyblocker/utils/ItemUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java index e6fa3d98..94dc75aa 100644 --- a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java +++ b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java @@ -338,7 +338,7 @@ public final class ItemUtils { if (stack.getSkyblockId().equals("PICKONIMBUS")) { int pickonimbusDurability = customData.getInt("pickonimbus_durability"); - return IntIntPair.of(customData.contains("pickonimbus_durability") ? pickonimbusDurability : 5000, 5000); + return IntIntPair.of(customData.contains("pickonimbus_durability") ? pickonimbusDurability : 2000, 2000); } String drillFuel = Formatting.strip(getLoreLineIf(stack, FUEL_PREDICATE)); -- cgit From 7fa219a62cc42aa57f54b42fcc8f6c7d46b13356 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 20 Sep 2024 01:44:30 -0400 Subject: Fix Skin Fetch Fails --- .../profileviewer/ProfileViewerScreen.java | 65 +++++++++++++--------- 1 file changed, 39 insertions(+), 26 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/ProfileViewerScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/ProfileViewerScreen.java index d789f5d9..91b569a2 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/ProfileViewerScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/ProfileViewerScreen.java @@ -5,9 +5,10 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.util.UndashedUuid; + import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.annotations.Init; -import de.hysky.skyblocker.mixins.accessors.SkullBlockEntityAccessor; import de.hysky.skyblocker.skyblock.profileviewer.collections.CollectionsPage; import de.hysky.skyblocker.skyblock.profileviewer.dungeons.DungeonsPage; import de.hysky.skyblocker.skyblock.profileviewer.inventory.InventoryPage; @@ -22,6 +23,7 @@ import it.unimi.dsi.fastutil.ints.IntList; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; +import net.minecraft.block.entity.SkullBlockEntity; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; @@ -146,35 +148,46 @@ public class ProfileViewerScreen extends Screen { } }); - CompletableFuture minecraftProfileFuture = SkullBlockEntityAccessor.invokeFetchProfileByName(username).thenAccept(profile -> { - this.playerName = profile.get().getName(); - entity = new OtherClientPlayerEntity(MinecraftClient.getInstance().world, profile.get()) { - @Override - public SkinTextures getSkinTextures() { - PlayerListEntry playerListEntry = new PlayerListEntry(profile.get(), false); - return playerListEntry.getSkinTextures(); - } + CompletableFuture playerFuture = CompletableFuture.runAsync(() -> { + String stringifiedUuid = ApiUtils.name2Uuid(username); - @Override - public boolean isPartVisible(PlayerModelPart modelPart) { - return !(modelPart.getName().equals(PlayerModelPart.CAPE.getName())); - } + if (stringifiedUuid.isEmpty()) { + this.playerName = "User not found"; + this.profileNotFound = true; + } + + UUID uuid = UndashedUuid.fromStringLenient(stringifiedUuid); + + //The fetch by name method can sometimes fail in weird cases and return a fake offline player + SkullBlockEntity.fetchProfileByUuid(uuid).thenAccept(profile -> { + this.playerName = profile.get().getName(); + entity = new OtherClientPlayerEntity(MinecraftClient.getInstance().world, profile.get()) { + @Override + public SkinTextures getSkinTextures() { + PlayerListEntry playerListEntry = new PlayerListEntry(profile.get(), false); + return playerListEntry.getSkinTextures(); + } - @Override - public boolean isInvisibleTo(PlayerEntity player) { - return true; - } - }; - entity.setCustomNameVisible(false); - }).exceptionally(ex -> { - this.playerName = "User not found"; - this.profileNotFound = true; - return null; - }); + @Override + public boolean isPartVisible(PlayerModelPart modelPart) { + return !(modelPart.getName().equals(PlayerModelPart.CAPE.getName())); + } - return CompletableFuture.allOf(profileFuture, minecraftProfileFuture); - } + @Override + public boolean isInvisibleTo(PlayerEntity player) { + return true; + } + }; + entity.setCustomNameVisible(false); + }).exceptionally(ex -> { + this.playerName = "User not found"; + this.profileNotFound = true; + return null; + }).join(); + }); + return CompletableFuture.allOf(profileFuture, playerFuture); + } public void onNavButtonClick(ProfileViewerNavButton clickedButton) { if (profileViewerPages[activePage] != null) profileViewerPages[activePage].markWidgetsAsInvisible(); -- cgit From f391165ff49c8c19533d5715bf80974d7ddd7504 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 20 Sep 2024 01:46:16 -0400 Subject: Use Optional#map --- src/main/java/de/hysky/skyblocker/utils/ws/WsMessageHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/utils/ws/WsMessageHandler.java b/src/main/java/de/hysky/skyblocker/utils/ws/WsMessageHandler.java index f4aadbc4..0ca067cb 100644 --- a/src/main/java/de/hysky/skyblocker/utils/ws/WsMessageHandler.java +++ b/src/main/java/de/hysky/skyblocker/utils/ws/WsMessageHandler.java @@ -31,7 +31,7 @@ public class WsMessageHandler { * Useful for sending simple state updates with an optional message */ static void sendSimple(Type type, Service service, String serverId, Optional>> message) { - send(type, service, serverId, message.isPresent() ? Optional.of(encodeMessage(message.get())) : Optional.empty()); + send(type, service, serverId, message.map(WsMessageHandler::encodeMessage)); } private static void send(Type type, Service service, String serverId, Optional> message) { -- cgit From 7f3e17e9f72c97a2de81cc7e396032460e24e6a4 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Fri, 20 Sep 2024 19:11:55 -0400 Subject: Use String.join --- src/main/java/de/hysky/skyblocker/utils/ws/SkyblockerWebSocket.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/utils/ws/SkyblockerWebSocket.java b/src/main/java/de/hysky/skyblocker/utils/ws/SkyblockerWebSocket.java index da026209..0c82acee 100644 --- a/src/main/java/de/hysky/skyblocker/utils/ws/SkyblockerWebSocket.java +++ b/src/main/java/de/hysky/skyblocker/utils/ws/SkyblockerWebSocket.java @@ -6,7 +6,6 @@ import de.hysky.skyblocker.debug.Debug; import de.hysky.skyblocker.events.SkyblockEvents; import de.hysky.skyblocker.utils.ApiAuthentication; import de.hysky.skyblocker.utils.Http; -import net.minecraft.util.Util; import org.slf4j.Logger; import java.net.URI; @@ -130,8 +129,7 @@ public class SkyblockerWebSocket { } private void handleWholeMessage(List parts) { - StringBuilder builder = Util.make(new StringBuilder(), sb -> parts.forEach(sb::append)); - String message = builder.toString(); + String message = String.join("", parts); if (Debug.debugEnabled() && Debug.webSocketDebug()) LOGGER.info("[Skyblocker WebSocket] Received Message: {}", message); -- cgit