aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-03-02 15:16:27 -0500
committerAaron <51387595+AzureAaron@users.noreply.github.com>2024-04-26 16:23:20 -0400
commit4e2924407645b04c30d4a2823a1d9d0983c2c790 (patch)
treeee6d4ba29f50d3cdd76216fee0193dad07752627 /src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder
parentcc00542e78fd87e0b554ab2a74d1cb193feabbb2 (diff)
downloadSkyblocker-4e2924407645b04c30d4a2823a1d9d0983c2c790.tar.gz
Skyblocker-4e2924407645b04c30d4a2823a1d9d0983c2c790.tar.bz2
Skyblocker-4e2924407645b04c30d4a2823a1d9d0983c2c790.zip
24w09a
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java1
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java12
3 files changed, 18 insertions, 15 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java
index 64e45283..19241d58 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java
@@ -29,7 +29,6 @@ public class OptionDropdownWidget extends ElementListWidget<OptionDropdownWidget
this.screen = screen;
this.slotId = slotId;
setX(x);
- setRenderBackground(false);
setRenderHeader(true, 25);
this.name = name;
this.selectedOption = selectedOption;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java
index b53047d8..ab77d122 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java
@@ -1,6 +1,6 @@
package de.hysky.skyblocker.skyblock.dungeon.partyfinder;
-import com.mojang.brigadier.exceptions.CommandSyntaxException;
+import com.mojang.authlib.properties.PropertyMap;
import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.mixin.accessor.SkullBlockEntityAccessor;
import net.minecraft.client.MinecraftClient;
@@ -12,10 +12,10 @@ import net.minecraft.client.gui.Selectable;
import net.minecraft.client.gui.widget.ElementListWidget;
import net.minecraft.client.util.DefaultSkinHelper;
import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.component.DataComponentTypes;
+import net.minecraft.component.type.ProfileComponent;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
-import net.minecraft.nbt.NbtCompound;
-import net.minecraft.nbt.StringNbtReader;
import net.minecraft.text.Style;
import net.minecraft.text.Text;
import net.minecraft.text.TextColor;
@@ -25,6 +25,8 @@ import net.minecraft.util.Identifier;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
+import java.util.Optional;
+import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -38,7 +40,7 @@ public class PartyEntry extends ElementListWidget.Entry<PartyEntry> {
String floor = "???";
String dungeon = "???";
String note = "";
- NbtCompound floorSkullNBT = new NbtCompound();
+ PropertyMap floorSkullProperties = new PropertyMap();
Identifier partyLeaderSkin = DefaultSkinHelper.getTexture();
Player[] partyMembers = new Player[4];
@@ -87,14 +89,14 @@ public class PartyEntry extends ElementListWidget.Entry<PartyEntry> {
if (PartyFinderScreen.floorIconsMaster == null || PartyFinderScreen.floorIconsNormal == null) continue;
if (dungeon.contains("Master Mode")) {
try {
- floorSkullNBT = StringNbtReader.parse(PartyEntryListWidget.BASE_SKULL_NBT.replace("%TEXTURE%", PartyFinderScreen.floorIconsMaster.getOrDefault(floor.toLowerCase(), "")));
- } catch (CommandSyntaxException e) {
+ floorSkullProperties = PartyFinderScreen.floorIconsMaster.getOrDefault(floor.toLowerCase(), new PropertyMap());
+ } catch (Exception e) {
throw new RuntimeException(e);
}
} else {
try {
- floorSkullNBT = StringNbtReader.parse(PartyEntryListWidget.BASE_SKULL_NBT.replace("%TEXTURE%", PartyFinderScreen.floorIconsNormal.getOrDefault(floor.toLowerCase(), "")));
- } catch (CommandSyntaxException e) {
+ floorSkullProperties = PartyFinderScreen.floorIconsNormal.getOrDefault(floor.toLowerCase(), new PropertyMap());
+ } catch (Exception e) {
throw new RuntimeException(e);
}
}
@@ -226,7 +228,7 @@ public class PartyEntry extends ElementListWidget.Entry<PartyEntry> {
}
}
ItemStack stack = new ItemStack(Items.PLAYER_HEAD);
- stack.setNbt(floorSkullNBT);
+ stack.set(DataComponentTypes.PROFILE, new ProfileComponent("SkyblockerCustomPF", Optional.of(UUID.randomUUID()), floorSkullProperties));
context.drawItem(stack, 317, 3);
int textWidth = textRenderer.getWidth(floor);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java
index 16be2b67..98ab88c0 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java
@@ -1,7 +1,10 @@
package de.hysky.skyblocker.skyblock.dungeon.partyfinder;
import com.google.gson.JsonObject;
+import com.mojang.authlib.properties.PropertyMap;
+
import de.hysky.skyblocker.SkyblockerMod;
+import de.hysky.skyblocker.utils.ItemUtils;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.minecraft.block.entity.SignBlockEntity;
import net.minecraft.client.MinecraftClient;
@@ -99,8 +102,8 @@ public class PartyFinderScreen extends Screen {
private boolean waitingForServer = false;
- public static Map<String, String> floorIconsNormal = null;
- public static Map<String, String> floorIconsMaster = null;
+ public static Map<String, PropertyMap> floorIconsNormal = null;
+ public static Map<String, PropertyMap> floorIconsMaster = null;
public static void initClass() {
ClientLifecycleEvents.CLIENT_STARTED.register(client -> {
@@ -110,8 +113,8 @@ public class PartyFinderScreen extends Screen {
floorIconsMaster = new HashMap<>();
try (BufferedReader skullTextureReader = client.getResourceManager().openAsReader(new Identifier(SkyblockerMod.NAMESPACE, "dungeons/catacombs/floorskulls.json"))) {
JsonObject json = SkyblockerMod.GSON.fromJson(skullTextureReader, JsonObject.class);
- json.getAsJsonObject("normal").asMap().forEach((s, jsonElement) -> floorIconsNormal.put(s, jsonElement.getAsString()));
- json.getAsJsonObject("master").asMap().forEach((s, jsonElement) -> floorIconsMaster.put(s, jsonElement.getAsString()));
+ json.getAsJsonObject("normal").asMap().forEach((s, tex) -> floorIconsNormal.put(s, ItemUtils.propertyMapWithTexture(tex.getAsString())));
+ json.getAsJsonObject("master").asMap().forEach((s, tex) -> floorIconsMaster.put(s, ItemUtils.propertyMapWithTexture(tex.getAsString())));
LOGGER.debug("[Skyblocker] Dungeons floor skull textures json loaded");
} catch (Exception e) {
LOGGER.error("[Skyblocker] Failed to load dungeons floor skull textures json", e);
@@ -136,7 +139,6 @@ public class PartyFinderScreen extends Screen {
int widget_height = (int) (this.height * 0.8);
int entryListTopY = Math.max(43, (int) (height * 0.1));
this.partyEntryListWidget = new PartyEntryListWidget(client, width, widget_height, entryListTopY, 68);
- partyEntryListWidget.setRenderBackground(false);
// Search field
this.searchField = new TextFieldWidget(textRenderer, partyEntryListWidget.getRowLeft() + 12, entryListTopY - 12, partyEntryListWidget.getRowWidth() - 12 * 3 - 6, 12, Text.literal("Search..."));