diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-07-13 15:12:46 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-13 15:12:46 -0400 |
commit | 5b7ac9f48a8c684b3e20f9d7d9447d4a5860b603 (patch) | |
tree | a8800e53ae7dbacbec8702274c9ca6a7573140cf /src/main/java/de/hysky/skyblocker/skyblock | |
parent | b9378e6f8c57fe811ee87dbcce0b328edd06489b (diff) | |
download | Skyblocker-5b7ac9f48a8c684b3e20f9d7d9447d4a5860b603.tar.gz Skyblocker-5b7ac9f48a8c684b3e20f9d7d9447d4a5860b603.tar.bz2 Skyblocker-5b7ac9f48a8c684b3e20f9d7d9447d4a5860b603.zip |
Aaron's Mod compatibility for profile viewer (#833)
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock')
3 files changed, 13 insertions, 4 deletions
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 01ffc144..ab61b684 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemStackBuilder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemStackBuilder.java @@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.itemlist; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.NEURepoManager; +import de.hysky.skyblocker.utils.TextTransformer; import io.github.moulberry.repo.constants.PetNumbers; import io.github.moulberry.repo.data.NEUItem; import io.github.moulberry.repo.data.Rarity; @@ -53,10 +54,10 @@ public class ItemStackBuilder { // Item Name String name = injectData(item.getDisplayName(), injectors); - stack.set(DataComponentTypes.CUSTOM_NAME, Text.of(name)); + stack.set(DataComponentTypes.CUSTOM_NAME, TextTransformer.fromLegacy(name)); // Lore - stack.set(DataComponentTypes.LORE, new LoreComponent(item.getLore().stream().map(line -> Text.of(injectData(line, injectors))).toList())); + stack.set(DataComponentTypes.LORE, new LoreComponent(item.getLore().stream().map(line -> TextTransformer.fromLegacy(injectData(line, injectors))).map(Text.class::cast).toList())); String nbttag = item.getNbttag(); // add skull texture diff --git a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/collections/GenericCategory.java b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/collections/GenericCategory.java index 306fe279..a9f83ca8 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/collections/GenericCategory.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/collections/GenericCategory.java @@ -132,6 +132,8 @@ public class GenericCategory implements ProfileViewerPage { String[] parts = tierText.split("/"); int cTier = Integer.parseInt(parts[0].trim()); Color colour = itemStack.hasGlint() ? Color.MAGENTA : Color.darkGray; + //DO NOT CHANGE THIS METHOD CALL! Aaron's Mod mixes in here to provide chroma text for max collections + //and changing the method called here will break that! Consult Aaron before making any changes :) context.drawText(textRenderer, Text.literal(toRomanNumerals(cTier)), x + 9 - (textRenderer.getWidth(toRomanNumerals(cTier)) / 2), y + 21, colour.getRGB(), false); } break; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/itemLoaders/ItemLoader.java b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/itemLoaders/ItemLoader.java index f3045c11..11280af1 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/itemLoaders/ItemLoader.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/itemLoaders/ItemLoader.java @@ -3,6 +3,7 @@ package de.hysky.skyblocker.skyblock.profileviewer.inventory.itemLoaders; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.mojang.serialization.JsonOps; + import de.hysky.skyblocker.skyblock.PetCache; import de.hysky.skyblocker.skyblock.itemlist.ItemRepository; import de.hysky.skyblocker.skyblock.profileviewer.ProfileViewerScreen; @@ -10,6 +11,7 @@ import de.hysky.skyblocker.skyblock.profileviewer.inventory.Pet; import de.hysky.skyblocker.skyblock.tabhud.util.Ico; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.NEURepoManager; +import de.hysky.skyblocker.utils.TextTransformer; import io.github.moulberry.repo.data.NEUItem; import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.*; @@ -21,6 +23,7 @@ import net.minecraft.registry.Registries; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; +import net.minecraft.util.Util; import java.io.ByteArrayInputStream; import java.util.*; @@ -79,13 +82,13 @@ public class ItemLoader { // Item Name - stack.set(DataComponentTypes.CUSTOM_NAME, Text.of(nbttag.getCompound("display").getString("Name"))); + stack.set(DataComponentTypes.CUSTOM_NAME, TextTransformer.fromLegacy(nbttag.getCompound("display").getString("Name"))); // Lore NbtList loreList = nbttag.getCompound("display").getList("Lore", 8); stack.set(DataComponentTypes.LORE, new LoreComponent(loreList.stream() .map(NbtElement::asString) - .map(Text::literal) + .map(TextTransformer::fromLegacy) .collect(Collectors.toList()))); // add skull texture @@ -111,6 +114,9 @@ public class ItemLoader { // Set Count stack.setCount(containerContent.getCompound(i).getInt("Count")); + // Attach an override for Aaron's Mod so that these ItemStacks will work with the mod's features even when not in Skyblock + extraAttributes.put("aaron-mod", Util.make(new NbtCompound(), comp -> comp.putBoolean("alwaysDisplaySkyblockInfo", true))); + stack.set(DataComponentTypes.CUSTOM_DATA, NbtComponent.of(extraAttributes)); itemList.add(stack); |