aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-09-21 04:06:24 -0400
committerGitHub <noreply@github.com>2024-09-21 04:06:24 -0400
commitf4714fb07798b9900ead21fa6f657a7ab0ec53fc (patch)
tree7059c66a523c4f978e6ece84817ec0eb9a09d0d5 /src/main/java
parent70f65321d0f1120d4ea714b5c9cee0f74e84adee (diff)
parent7f3e17e9f72c97a2de81cc7e396032460e24e6a4 (diff)
downloadSkyblocker-f4714fb07798b9900ead21fa6f657a7ab0ec53fc.tar.gz
Skyblocker-f4714fb07798b9900ead21fa6f657a7ab0ec53fc.tar.bz2
Skyblocker-f4714fb07798b9900ead21fa6f657a7ab0ec53fc.zip
Merge pull request #1004 from AzureAaron/mining-stuff-and-other
Various Fixes
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemFixerUpper.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/ProfileViewerScreen.java65
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/ItemUtils.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/ws/SkyblockerWebSocket.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/ws/WsMessageHandler.java2
5 files changed, 44 insertions, 31 deletions
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<String> 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"),
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<Void> 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<Void> 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();
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));
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<CharSequence> 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);
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<? extends Message<?>>> 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<Dynamic<?>> message) {