From 4e2924407645b04c30d4a2823a1d9d0983c2c790 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sat, 2 Mar 2024 15:16:27 -0500 Subject: 24w09a --- build.gradle | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'build.gradle') diff --git a/build.gradle b/build.gradle index d7b37bfe..d5bb8008 100644 --- a/build.gradle +++ b/build.gradle @@ -36,7 +36,12 @@ dependencies { testImplementation "net.fabricmc:fabric-loader-junit:${project.loader_version}" // To change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" + //Layered Yarn & Mojmap - used to fill in intermediary names + mappings loom.layered { + //Using Mojmap breaks runClient, so uncomment only for snapshots when temp mappings are needed + //officialMojangMappings() + mappings("net.fabricmc:yarn:${project.yarn_mappings}:v2") + } modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" // Fabric API -- cgit From 21288916d819227cc9e8544fad49ffaf83d3d12d Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sun, 24 Mar 2024 23:36:48 -0400 Subject: Loom 1.6 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'build.gradle') diff --git a/build.gradle b/build.gradle index d5bb8008..4958c16f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.5-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' id "me.modmuss50.mod-publish-plugin" version "0.5.1" } -- cgit From 87fec063614292700954ce5fa3c73de075b56b58 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Wed, 3 Apr 2024 16:51:10 -0400 Subject: 24w14a & Java 21 --- build.gradle | 11 +++-------- gradle.properties | 8 ++++---- .../mixin/accessor/MinecraftClientAccessor.java | 15 +++++++++++++++ .../mixin/accessor/SkullBlockEntityAccessor.java | 4 +++- .../java/de/hysky/skyblocker/skyblock/ChestValue.java | 4 ++-- .../dungeon/partyfinder/FinderSettingsContainer.java | 7 ++++--- .../skyblock/dungeon/partyfinder/PartyEntry.java | 5 +++-- .../skyblock/dungeon/partyfinder/PartyFinderScreen.java | 5 ++--- .../skyblocker/skyblock/item/PlayerHeadHashCache.java | 7 +++---- .../skyblocker/skyblock/item/tooltip/ItemTooltip.java | 4 ++-- src/main/java/de/hysky/skyblocker/utils/Utils.java | 16 +++++++++++++++- src/main/resources/fabric.mod.json | 7 ++++--- src/main/resources/skyblocker.mixins.json | 1 + 13 files changed, 61 insertions(+), 33 deletions(-) create mode 100644 src/main/java/de/hysky/skyblocker/mixin/accessor/MinecraftClientAccessor.java (limited to 'build.gradle') diff --git a/build.gradle b/build.gradle index 4958c16f..f6c0d984 100644 --- a/build.gradle +++ b/build.gradle @@ -97,17 +97,12 @@ processResources { } tasks.withType(JavaCompile).configureEach { - it.options.release = 17 + it.options.release = 21 } java { - // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task - // if it is present. - // If you remove this line, sources will not be generated. - withSourcesJar() - - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } jar { diff --git a/gradle.properties b/gradle.properties index 4be3c383..858605a8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,13 +3,13 @@ org.gradle.parallel=true # Fabric Properties (https://fabricmc.net/versions.html) ## 1.20 -minecraft_version=24w13a -yarn_mappings=24w13a+build.7 -loader_version=0.15.7 +minecraft_version=24w14a +yarn_mappings=24w14a+build.5 +loader_version=0.15.9 #Fabric api ## 1.20 -fabric_api_version=0.96.13+1.20.5 +fabric_api_version=0.96.14+1.20.5 # Minecraft Mods ## YACL (https://github.com/isXander/YetAnotherConfigLib) diff --git a/src/main/java/de/hysky/skyblocker/mixin/accessor/MinecraftClientAccessor.java b/src/main/java/de/hysky/skyblocker/mixin/accessor/MinecraftClientAccessor.java new file mode 100644 index 00000000..f48037df --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/mixin/accessor/MinecraftClientAccessor.java @@ -0,0 +1,15 @@ +package de.hysky.skyblocker.mixin.accessor; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; + +import net.minecraft.client.MinecraftClient; + +@Mixin(MinecraftClient.class) +public interface MinecraftClientAccessor { + + @Accessor + public YggdrasilAuthenticationService getAuthenticationService(); +} diff --git a/src/main/java/de/hysky/skyblocker/mixin/accessor/SkullBlockEntityAccessor.java b/src/main/java/de/hysky/skyblocker/mixin/accessor/SkullBlockEntityAccessor.java index dfe544bc..875d24d3 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/accessor/SkullBlockEntityAccessor.java +++ b/src/main/java/de/hysky/skyblocker/mixin/accessor/SkullBlockEntityAccessor.java @@ -2,6 +2,8 @@ package de.hysky.skyblocker.mixin.accessor; import com.mojang.authlib.GameProfile; import net.minecraft.block.entity.SkullBlockEntity; +import net.minecraft.util.ApiServices; + import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; @@ -11,7 +13,7 @@ import java.util.concurrent.CompletableFuture; @Mixin(SkullBlockEntity.class) public interface SkullBlockEntityAccessor { @Invoker - static CompletableFuture> invokeFetchProfile(String name) { + static CompletableFuture> invokeFetchProfileByName(String name, ApiServices apiServices) { throw new UnsupportedOperationException(); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java b/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java index 5cdca216..c34c853b 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java @@ -7,6 +7,7 @@ import de.hysky.skyblocker.mixin.accessor.HandledScreenAccessor; import de.hysky.skyblocker.mixin.accessor.ScreenAccessor; import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; +import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.Utils; import it.unimi.dsi.fastutil.longs.LongBooleanPair; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; @@ -15,7 +16,6 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; import net.minecraft.client.gui.tooltip.Tooltip; import net.minecraft.client.gui.widget.ButtonWidget; -import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.screen.GenericContainerScreenHandler; import net.minecraft.screen.slot.Slot; @@ -206,7 +206,7 @@ public class ChestValue { * Searches for a specific string of characters in the name and lore of an item */ private static String searchLoreFor(ItemStack stack, MinecraftClient client, String searchString) { - return stack.getTooltip(client.player, TooltipContext.BASIC).stream().map(Text::getString).filter(line -> line.contains(searchString)).findAny().orElse(null); + return ItemUtils.getLoreLineIf(stack, line -> line.contains(searchString)); } static Text getProfitText(long profit, boolean hasIncompleteData) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java index 0a048775..70902a17 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java @@ -5,7 +5,6 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.gui.widget.ContainerWidget; -import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.screen.GenericContainerScreenHandler; @@ -15,6 +14,8 @@ import net.minecraft.text.Text; import java.util.ArrayList; import java.util.List; +import de.hysky.skyblocker.utils.ItemUtils; + public class FinderSettingsContainer extends ContainerWidget { private boolean isInitialized = false; private OptionDropdownWidget floorSelector; @@ -161,7 +162,7 @@ public class FinderSettingsContainer extends ContainerWidget { * @return true if all goes well */ private boolean setRangeFromTooltip(ItemStack stack, RangedValueWidget widget) { - for (Text text : stack.getTooltip(null, TooltipContext.BASIC)) { + for (Text text : ItemUtils.getLore(stack)) { String textLowerCase = text.getString().toLowerCase(); if (textLowerCase.contains("selected:")) { String[] split = text.getString().split(":"); @@ -186,7 +187,7 @@ public class FinderSettingsContainer extends ContainerWidget { * @return true if all goes well */ private boolean setSelectedElementFromTooltip(Slot slot, ItemStack stack, OptionDropdownWidget dropdownWidget) { - for (Text text : stack.getTooltip(null, TooltipContext.BASIC)) { + for (Text text : ItemUtils.getLore(stack)) { String textLowerCase = text.getString().toLowerCase(); if (textLowerCase.contains("selected:")) { String[] split = text.getString().split(":"); 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 3dc8cfd6..dd550b4f 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 @@ -3,6 +3,7 @@ package de.hysky.skyblocker.skyblock.dungeon.partyfinder; import com.mojang.authlib.properties.PropertyMap; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.mixin.accessor.SkullBlockEntityAccessor; +import de.hysky.skyblocker.utils.Utils; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -145,7 +146,7 @@ public class PartyEntry extends ElementListWidget.Entry { if (matcher.find()) classLevel = Integer.parseInt(matcher.group(1)); Player player = new Player(playerName, className, classLevel); - SkullBlockEntityAccessor.invokeFetchProfile(playerNameTrim).thenAccept( + SkullBlockEntityAccessor.invokeFetchProfileByName(playerNameTrim, Utils.getApiServices()).thenAccept( gameProfile -> gameProfile.ifPresent(profile -> player.skinTexture = (client.getSkinProvider().getSkinTextures(profile).texture()))); if (playerNameTrim.equals(partyHost)) { @@ -170,7 +171,7 @@ public class PartyEntry extends ElementListWidget.Entry { partyLeader = new Player(Text.literal("Error"), "Error", -1); } - SkullBlockEntityAccessor.invokeFetchProfile(partyLeader.name.getString()).thenAccept( + SkullBlockEntityAccessor.invokeFetchProfileByName(partyLeader.name.getString(), Utils.getApiServices()).thenAccept( gameProfile -> gameProfile.ifPresent(profile -> partyLeaderSkin = client.getSkinProvider().getSkinTextures(profile).texture())); } 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 98ab88c0..4ba68256 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 @@ -13,7 +13,6 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.item.TooltipContext; import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.toast.SystemToast; import net.minecraft.entity.player.PlayerInventory; @@ -372,7 +371,7 @@ public class PartyFinderScreen extends Screen { if (slot.id > (handler.getRows() - 1) * 9 - 1 || !slot.hasStack()) continue; if (slot.getStack().isOf(Items.PLAYER_HEAD)) { assert this.client != null; - parties.add(new PartyEntry(slot.getStack().getTooltip(this.client.player, TooltipContext.BASIC), this, slot.id)); + parties.add(new PartyEntry(ItemUtils.getLore(slot.getStack()), this, slot.id)); } else if (slot.getStack().isOf(Items.ARROW) && slot.getStack().getName().getString().toLowerCase().contains("previous")) { prevPageSlotId = slot.id; previousPageButton.active = true; @@ -401,7 +400,7 @@ public class PartyFinderScreen extends Screen { deListSlotId = slot.id; } else if (slot.getStack().isOf(Items.PLAYER_HEAD)) { assert this.client != null; - tooltips = slot.getStack().getTooltip(this.client.player, TooltipContext.BASIC); + tooltips = ItemUtils.getLore(slot.getStack()); } } if (tooltips != null) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/PlayerHeadHashCache.java b/src/main/java/de/hysky/skyblocker/skyblock/item/PlayerHeadHashCache.java index 2a1688fc..da832164 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/PlayerHeadHashCache.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/PlayerHeadHashCache.java @@ -1,7 +1,6 @@ package de.hysky.skyblocker.skyblock.item; -import java.net.MalformedURLException; -import java.net.URL; +import java.net.URI; import java.util.Base64; import java.util.concurrent.CompletableFuture; @@ -50,8 +49,8 @@ public class PlayerHeadHashCache { //From MinecraftProfileTexture#getHash public static String getSkinHash(String url) { try { - return FilenameUtils.getBaseName(new URL(url).getPath()); - } catch (MalformedURLException e) { + return FilenameUtils.getBaseName(new URI(url).getPath()); + } catch (Exception e) { LOGGER.error("[Skyblocker Player Head Hash Cache] Malformed Skin URL! URL: {}", url, e); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java index 855a4760..94153c01 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java @@ -12,7 +12,7 @@ import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.scheduler.Scheduler; import it.unimi.dsi.fastutil.Pair; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.item.TooltipContext; +import net.minecraft.client.item.TooltipType; import net.minecraft.component.type.DyedColorComponent; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; @@ -34,7 +34,7 @@ public class ItemTooltip { protected static final SkyblockerConfig.ItemTooltip config = SkyblockerConfigManager.get().general.itemTooltip; private static volatile boolean sentNullWarning = false; - public static void getTooltip(ItemStack stack, TooltipContext context, List lines) { + public static void getTooltip(ItemStack stack, TooltipType context, List lines) { if (!Utils.isOnSkyblock() || client.player == null) return; String name = getInternalNameFromNBT(stack, false); diff --git a/src/main/java/de/hysky/skyblocker/utils/Utils.java b/src/main/java/de/hysky/skyblocker/utils/Utils.java index bbee3ce1..dcd39de7 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Utils.java +++ b/src/main/java/de/hysky/skyblocker/utils/Utils.java @@ -3,6 +3,7 @@ package de.hysky.skyblocker.utils; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import de.hysky.skyblocker.events.SkyblockEvents; +import de.hysky.skyblocker.mixin.accessor.MinecraftClientAccessor; import de.hysky.skyblocker.skyblock.item.MuseumItemCache; import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; import de.hysky.skyblocker.utils.scheduler.MessageScheduler; @@ -19,6 +20,7 @@ import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.PlayerListEntry; import net.minecraft.scoreboard.*; import net.minecraft.text.Text; +import net.minecraft.util.ApiServices; import net.minecraft.util.Formatting; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; @@ -74,6 +76,7 @@ public class Utils { private static boolean canSendLocRaw = false; private static String mayor = ""; + private static ApiServices apiServices; /** * @implNote The parent text will always be empty, the actual text content is inside the text's siblings. @@ -217,7 +220,6 @@ public class Utils { } if (sidebar.isEmpty() && !fabricLoader.isDevelopmentEnvironment()) return; - String string = sidebar.toString(); if (fabricLoader.isDevelopmentEnvironment() || isConnectedToHypixel(client)) { if (!isOnHypixel) { @@ -466,4 +468,16 @@ public class Utils { }); } + + public static ApiServices getApiServices() { + if (apiServices == null) { + MinecraftClient client = MinecraftClient.getInstance(); + ApiServices apiServicesInstance = ApiServices.create(((MinecraftClientAccessor) client).getAuthenticationService(), client.runDirectory); + apiServices = apiServicesInstance; + + return apiServicesInstance; + } else { + return apiServices; + } + } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 3638a9d5..684fd66d 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -33,10 +33,11 @@ ], "accessWidener": "skyblocker.accesswidener", "depends": { - "fabricloader": ">=0.15.7", - "fabric-api": ">=0.96.13+1.20.5", + "fabricloader": ">=0.15.9", + "fabric-api": ">=0.96.14+1.20.5", "yet_another_config_lib_v3": ">=3.3.3+1.20.4+update.1.20.5-SNAPSHOT+update.1.20.5-SNAPSHOT", - "minecraft": "~1.20.5-alpha.24.13.a" + "minecraft": "~1.20.5-alpha.24.14.a", + "java": ">=21" }, "conflicts": { "immediatelyfast": "<=1.2.11+1.20.4" diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json index dac3a201..f728f64f 100644 --- a/src/main/resources/skyblocker.mixins.json +++ b/src/main/resources/skyblocker.mixins.json @@ -44,6 +44,7 @@ "accessor.HandledScreenAccessor", "accessor.LayeredDrawerAccessor", "accessor.MessageHandlerAccessor", + "accessor.MinecraftClientAccessor", "accessor.PlayerListHudAccessor", "accessor.RecipeBookWidgetAccessor", "accessor.ScreenAccessor", -- cgit From fad294b43f7386afc08915ea2f2accf0523b588a Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Tue, 23 Apr 2024 13:58:52 -0400 Subject: Update to YACL 3.4.0 --- build.gradle | 2 +- gradle.properties | 2 +- src/main/resources/fabric.mod.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'build.gradle') diff --git a/build.gradle b/build.gradle index f6c0d984..fd21ebd5 100644 --- a/build.gradle +++ b/build.gradle @@ -48,7 +48,7 @@ dependencies { modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}" // YACL - include modImplementation("dev.isxander.yacl:yet-another-config-lib-fabric:${project.yacl_version}") + include modImplementation("dev.isxander:yet-another-config-lib:${project.yacl_version}-fabric") // Mod Menu modImplementation "com.terraformersmc:modmenu:${project.mod_menu_version}" diff --git a/gradle.properties b/gradle.properties index 48a45dc1..f335d2b2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ fabric_api_version=0.97.5+1.20.5 # Minecraft Mods ## YACL (https://github.com/isXander/YetAnotherConfigLib) -yacl_version=3.3.2+1.20.4+update.1.20.5-SNAPSHOT+update.1.20.5-SNAPSHOT +yacl_version=3.4.0+1.20.5 ## Mod Menu (https://modrinth.com/mod/modmenu/versions) mod_menu_version = 10.0.0-alpha.1 ## REI (https://modrinth.com/mod/rei/versions?l=fabric) diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 4972377e..650b82af 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -35,7 +35,7 @@ "depends": { "fabricloader": ">=0.15.10", "fabric-api": ">=0.97.5+1.20.5", - "yet_another_config_lib_v3": ">=3.3.2+1.20.4+update.1.20.5-SNAPSHOT+update.1.20.5-SNAPSHOT", + "yet_another_config_lib_v3": ">=3.4.0+1.20.5", "minecraft": "~1.20.5", "java": ">=21" }, -- cgit