diff options
Diffstat (limited to 'src/main/java/de/hysky')
71 files changed, 210 insertions, 180 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerScreen.java b/src/main/java/de/hysky/skyblocker/SkyblockerScreen.java index 15c855a0..0196a37a 100644 --- a/src/main/java/de/hysky/skyblocker/SkyblockerScreen.java +++ b/src/main/java/de/hysky/skyblocker/SkyblockerScreen.java @@ -41,7 +41,7 @@ public class SkyblockerScreen extends Screen { static { LocalDate date = LocalDate.now(); - ICON = date.getMonthValue() == 4 && date.getDayOfMonth() == 1 ? new Identifier(SkyblockerMod.NAMESPACE, "icons.png") : new Identifier(SkyblockerMod.NAMESPACE, "icon.png"); + ICON = date.getMonthValue() == 4 && date.getDayOfMonth() == 1 ? Identifier.of(SkyblockerMod.NAMESPACE, "icons.png") : Identifier.of(SkyblockerMod.NAMESPACE, "icon.png"); } private SkyblockerScreen() { diff --git a/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockerEMIPlugin.java b/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockerEMIPlugin.java index 8dfc5dc9..c02300ec 100644 --- a/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockerEMIPlugin.java +++ b/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockerEMIPlugin.java @@ -16,9 +16,9 @@ import net.minecraft.util.Identifier; * EMI integration */ public class SkyblockerEMIPlugin implements EmiPlugin { - public static final Identifier SIMPLIFIED_TEXTURES = new Identifier("emi", "textures/gui/widgets.png"); + public static final Identifier SIMPLIFIED_TEXTURES = Identifier.of("emi", "textures/gui/widgets.png"); // TODO: Custom simplified texture for Skyblock - public static final EmiRecipeCategory SKYBLOCK = new EmiRecipeCategory(new Identifier(SkyblockerMod.NAMESPACE, "skyblock"), EmiStack.of(ItemUtils.getSkyblockerStack()), new EmiTexture(SIMPLIFIED_TEXTURES, 240, 240, 16, 16)); + public static final EmiRecipeCategory SKYBLOCK = new EmiRecipeCategory(Identifier.of(SkyblockerMod.NAMESPACE, "skyblock"), EmiStack.of(ItemUtils.getSkyblockerStack()), new EmiTexture(SIMPLIFIED_TEXTURES, 240, 240, 16, 16)); @Override public void register(EmiRegistry registry) { diff --git a/src/main/java/de/hysky/skyblocker/config/ConfigUtils.java b/src/main/java/de/hysky/skyblocker/config/ConfigUtils.java index 781f7f15..ee8dfb19 100644 --- a/src/main/java/de/hysky/skyblocker/config/ConfigUtils.java +++ b/src/main/java/de/hysky/skyblocker/config/ConfigUtils.java @@ -52,7 +52,7 @@ public class ConfigUtils { public static OptionDescription withImage(Path imagePath, @Nullable Text... texts) { return OptionDescription.createBuilder() .text(ArrayUtils.isNotEmpty(texts) ? texts : new Text[] {}) - .image(IMAGE_DIRECTORY.resolve(imagePath), new Identifier(SkyblockerMod.NAMESPACE, "config_image_" + FileUtils.normalizePath(imagePath))) + .image(IMAGE_DIRECTORY.resolve(imagePath), Identifier.of(SkyblockerMod.NAMESPACE, "config_image_" + FileUtils.normalizePath(imagePath))) .build(); } } diff --git a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java index aa7566a0..9f612028 100644 --- a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java @@ -157,8 +157,8 @@ public class GeneralConfig { } public enum RarityBackgroundStyle { - CIRCULAR(new Identifier(SkyblockerMod.NAMESPACE, "item_rarity_background_circular")), - SQUARE(new Identifier(SkyblockerMod.NAMESPACE, "item_rarity_background_square")); + CIRCULAR(Identifier.of(SkyblockerMod.NAMESPACE, "item_rarity_background_circular")), + SQUARE(Identifier.of(SkyblockerMod.NAMESPACE, "item_rarity_background_square")); public final Identifier tex; @@ -181,8 +181,8 @@ public class GeneralConfig { } public enum SlotLockStyle { - CLASSIC(new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/slot_lock.png")), - FANCY(new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/fancy_slot_lock.png")); + CLASSIC(Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/slot_lock.png")), + FANCY(Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/fancy_slot_lock.png")); public final Identifier tex; diff --git a/src/main/java/de/hysky/skyblocker/config/configs/QuickNavigationConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/QuickNavigationConfig.java index 20a0c9cc..e8e9c27f 100644 --- a/src/main/java/de/hysky/skyblocker/config/configs/QuickNavigationConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/configs/QuickNavigationConfig.java @@ -91,7 +91,7 @@ public class QuickNavigationConfig { } public ItemData(String item, int count, String components) { - this(Registries.ITEM.get(new Identifier(item)), count, components); + this(Registries.ITEM.get(Identifier.ofVanilla(item)), count, components); } public ItemData(Item item) { diff --git a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java index f4e4aad1..b887d415 100644 --- a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java +++ b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java @@ -69,7 +69,7 @@ public class ConfigDataFixer { Schema schema3 = builder.addSchema(3, Schema::new); builder.addFixer(new ConfigFix2QuickNav(schema3, true)); - return builder.buildUnoptimized(); + return builder.build().fixer(); } private static JsonObject loadConfig(Path path) { diff --git a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix2QuickNav.java b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix2QuickNav.java index bd67b1b0..48dea0a7 100644 --- a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix2QuickNav.java +++ b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix2QuickNav.java @@ -33,6 +33,6 @@ public class ConfigFix2QuickNav extends ConfigDataFix { } private <T> Dynamic<T> fixButton(Dynamic<T> button) { - return button.renameAndFixField("item", "itemData", itemData -> itemData.renameAndFixField("id", "item", id -> id.createString(new Identifier(id.asString().getOrThrow()).toString()))); + return button.renameAndFixField("item", "itemData", itemData -> itemData.renameAndFixField("id", "item", id -> id.createString(Identifier.of(id.asString().getOrThrow()).toString()))); } } diff --git a/src/main/java/de/hysky/skyblocker/events/HudRenderEvents.java b/src/main/java/de/hysky/skyblocker/events/HudRenderEvents.java index 13e70498..f6ee1ff5 100644 --- a/src/main/java/de/hysky/skyblocker/events/HudRenderEvents.java +++ b/src/main/java/de/hysky/skyblocker/events/HudRenderEvents.java @@ -3,6 +3,7 @@ package de.hysky.skyblocker.events; import net.fabricmc.fabric.api.event.Event; import net.fabricmc.fabric.api.event.EventFactory; import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.render.RenderTickCounter; /** * HUD render events that allow for proper layering between different HUD elements. @@ -43,8 +44,8 @@ public class HudRenderEvents { * Called sometime during a specific HUD render stage. * * @param drawContext The {@link DrawContext} instance - * @param tickDelta Progress for linearly interpolating between the previous and current game state + * @param tickCounter The {@link RenderTickCounter} instance */ - void onRender(DrawContext context, float tickDelta); + void onRender(DrawContext context, RenderTickCounter tickCounter); } } diff --git a/src/main/java/de/hysky/skyblocker/mixins/ComponentHolderMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ComponentHolderMixin.java index 8fa03cdc..199f5c26 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/ComponentHolderMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/ComponentHolderMixin.java @@ -11,7 +11,7 @@ import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.Utils; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.minecraft.component.ComponentHolder; -import net.minecraft.component.DataComponentType; +import net.minecraft.component.ComponentType; import net.minecraft.component.DataComponentTypes; import net.minecraft.item.ItemStack; import net.minecraft.item.trim.ArmorTrim; @@ -21,7 +21,7 @@ public interface ComponentHolderMixin { @SuppressWarnings("unchecked") @ModifyReturnValue(method = "get", at = @At("RETURN")) - private <T> T skyblocker$customArmorTrims(T original, DataComponentType<? extends T> dataComponentType) { + private <T> T skyblocker$customArmorTrims(T original, ComponentType<? extends T> dataComponentType) { if (Utils.isOnSkyblock() && ((Object) this) instanceof ItemStack stack) { if (dataComponentType == DataComponentTypes.TRIM) { Object2ObjectOpenHashMap<String, CustomArmorTrims.ArmorTrimId> customTrims = SkyblockerConfigManager.get().general.customArmorTrims; diff --git a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java index 1a97c471..a7685ffc 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java @@ -60,7 +60,7 @@ public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen private static final int OUT_OF_BOUNDS_SLOT = -999; @Unique - private static final Identifier ITEM_PROTECTION = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png"); + private static final Identifier ITEM_PROTECTION = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png"); @Unique private static final Set<String> FILLER_ITEMS = Set.of( diff --git a/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java b/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java index 7f4721a5..fffd74f9 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java @@ -43,7 +43,7 @@ public abstract class InGameHudMixin { private static final Supplier<Identifier> SLOT_LOCK_ICON = () -> SkyblockerConfigManager.get().general.itemProtection.slotLockStyle.tex; @Unique - private static final Identifier ITEM_PROTECTION = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png"); + private static final Identifier ITEM_PROTECTION = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png"); @Unique private static final Pattern DICER_TITLE_BLACKLIST = Pattern.compile(".+? DROP!"); @@ -58,7 +58,7 @@ public abstract class InGameHudMixin { @Final private LayeredDrawer layeredDrawer; - @Inject(method = "renderHotbar", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/InGameHud;renderHotbarItem(Lnet/minecraft/client/gui/DrawContext;IIFLnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;I)V", ordinal = 0)) + @Inject(method = "renderHotbar", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/InGameHud;renderHotbarItem(Lnet/minecraft/client/gui/DrawContext;IILnet/minecraft/client/render/RenderTickCounter;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;I)V", ordinal = 0)) public void skyblocker$renderHotbarItemLockOrRarityBg(CallbackInfo ci, @Local(argsOnly = true) DrawContext context, @Local(ordinal = 4, name = "m") int index, @Local(ordinal = 5, name = "n") int x, @Local(ordinal = 6, name = "o") int y, @Local PlayerEntity player) { if (Utils.isOnSkyblock()) { // slot lock @@ -141,17 +141,17 @@ public abstract class InGameHudMixin { @ModifyArg(method = "<init>", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/LayeredDrawer;addLayer(Lnet/minecraft/client/gui/LayeredDrawer$Layer;)Lnet/minecraft/client/gui/LayeredDrawer;", ordinal = 2)) private LayeredDrawer.Layer skyblocker$afterMainHud(LayeredDrawer.Layer mainHudLayer) { - return (context, tickDelta) -> { - mainHudLayer.render(context, tickDelta); - HudRenderEvents.AFTER_MAIN_HUD.invoker().onRender(context, tickDelta); + return (context, tickCounter) -> { + mainHudLayer.render(context, tickCounter); + HudRenderEvents.AFTER_MAIN_HUD.invoker().onRender(context, tickCounter); }; } @ModifyArg(method = "<init>", slice = @Slice(from = @At(value = "NEW", target = "Lnet/minecraft/client/gui/LayeredDrawer;", ordinal = 1)), at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/LayeredDrawer;addLayer(Lnet/minecraft/client/gui/LayeredDrawer$Layer;)Lnet/minecraft/client/gui/LayeredDrawer;", ordinal = 5)) private LayeredDrawer.Layer skyblocker$beforeChat(LayeredDrawer.Layer beforeChatLayer) { - return (context, tickDelta) -> { - HudRenderEvents.BEFORE_CHAT.invoker().onRender(context, tickDelta); - beforeChatLayer.render(context, tickDelta); + return (context, tickCounter) -> { + HudRenderEvents.BEFORE_CHAT.invoker().onRender(context, tickCounter); + beforeChatLayer.render(context, tickCounter); }; } diff --git a/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java index 6797cb61..2154c4b5 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java @@ -12,7 +12,7 @@ import it.unimi.dsi.fastutil.ints.IntIntPair; import net.minecraft.component.ComponentHolder; import net.minecraft.component.type.ItemEnchantmentsComponent; import net.minecraft.item.ItemStack; -import net.minecraft.item.TooltipAppender; +import net.minecraft.item.tooltip.TooltipAppender; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; import net.minecraft.text.Text; diff --git a/src/main/java/de/hysky/skyblocker/mixins/accessors/BeaconBlockEntityRendererInvoker.java b/src/main/java/de/hysky/skyblocker/mixins/accessors/BeaconBlockEntityRendererInvoker.java index 833cfc22..a2a98a68 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/accessors/BeaconBlockEntityRendererInvoker.java +++ b/src/main/java/de/hysky/skyblocker/mixins/accessors/BeaconBlockEntityRendererInvoker.java @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.gen.Invoker; public interface BeaconBlockEntityRendererInvoker { @SuppressWarnings("unused") @Invoker("renderBeam") - static void renderBeam(MatrixStack matrices, VertexConsumerProvider vertexConsumers, float tickDelta, long worldTime, int yOffset, int maxY, float[] color) { + static void renderBeam(MatrixStack matrices, VertexConsumerProvider vertexConsumers, float tickDelta, long worldTime, int yOffset, int maxY, int color) { throw new UnsupportedOperationException(); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java b/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java index a8155b43..354c92fb 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java @@ -85,7 +85,7 @@ public class TeleportOverlay { render(wrc, blockHitResult); } else if (client.interactionManager != null && range > client.player.getAttributeInstance(EntityAttributes.PLAYER_BLOCK_INTERACTION_RANGE).getValue()) { @SuppressWarnings("DataFlowIssue") - HitResult result = client.player.raycast(range, wrc.tickDelta(), false); + HitResult result = client.player.raycast(range, wrc.tickCounter().getTickDelta(true), false); if (result.getType() == HitResult.Type.BLOCK && result instanceof BlockHitResult blockHitResult) { render(wrc, blockHitResult); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java index 557cb6c9..b690baa1 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java @@ -41,11 +41,11 @@ import java.util.function.Supplier; public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseScreenHandler> { private static final Logger LOGGER = LoggerFactory.getLogger(AuctionBrowserScreen.class); - private static final Identifier TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/browser/background.png"); - private static final Identifier SCROLLER_TEXTURE = new Identifier("container/creative_inventory/scroller"); + private static final Identifier TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/browser/background.png"); + private static final Identifier SCROLLER_TEXTURE = Identifier.ofVanilla("container/creative_inventory/scroller"); - private static final Identifier up_arrow_tex = new Identifier(SkyblockerMod.NAMESPACE, "up_arrow_even"); // Put them in their own fields to avoid object allocation on each frame - private static final Identifier down_arrow_tex = new Identifier(SkyblockerMod.NAMESPACE, "down_arrow_even"); + private static final Identifier up_arrow_tex = Identifier.of(SkyblockerMod.NAMESPACE, "up_arrow_even"); // Put them in their own fields to avoid object allocation on each frame + private static final Identifier down_arrow_tex = Identifier.of(SkyblockerMod.NAMESPACE, "down_arrow_even"); public static final Supplier<Sprite> UP_ARROW = () -> MinecraftClient.getInstance().getGuiAtlasManager().getSprite(up_arrow_tex); public static final Supplier<Sprite> DOWN_ARROW = () -> MinecraftClient.getInstance().getGuiAtlasManager().getSprite(down_arrow_tex); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionViewScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionViewScreen.java index f3db2a25..ed5e0f59 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionViewScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionViewScreen.java @@ -31,7 +31,7 @@ import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; public class AuctionViewScreen extends AbstractCustomHypixelGUI<AuctionHouseScreenHandler> { - protected static final Identifier BACKGROUND_TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/browser/background_view.png"); + protected static final Identifier BACKGROUND_TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/browser/background_view.png"); public static final int BACK_BUTTON_SLOT = 49; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/AuctionTypeWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/AuctionTypeWidget.java index 2204d39c..86202ffe 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/AuctionTypeWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/AuctionTypeWidget.java @@ -23,11 +23,11 @@ public class AuctionTypeWidget extends SliderWidget<AuctionTypeWidget.Option> { private final Identifier texture; private static final String prefix = "textures/gui/auctions_gui/auction_type_widget/"; - private static final Identifier HOVER_TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, prefix + "hover.png"); - private static final Identifier BACK_TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, prefix + "back.png"); + private static final Identifier HOVER_TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, prefix + "hover.png"); + private static final Identifier BACK_TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, prefix + "back.png"); Option(String textureName) { - texture = new Identifier(SkyblockerMod.NAMESPACE, prefix + textureName); + texture = Identifier.of(SkyblockerMod.NAMESPACE, prefix + textureName); } private static final AuctionTypeWidget.Option[] values = values(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/CategoryTabWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/CategoryTabWidget.java index a0b5f0b9..89744085 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/CategoryTabWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/CategoryTabWidget.java @@ -4,9 +4,10 @@ import de.hysky.skyblocker.skyblock.auction.SlotClickHandler; import de.hysky.skyblocker.utils.render.gui.SideTabButtonWidget; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.item.TooltipType; import net.minecraft.item.Item.TooltipContext; import net.minecraft.item.ItemStack; +import net.minecraft.item.tooltip.TooltipType; + import org.jetbrains.annotations.NotNull; public class CategoryTabWidget extends SideTabButtonWidget { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java index b6bd42a9..696b9f50 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java @@ -19,8 +19,8 @@ import java.util.Map; public class RarityWidget extends ClickableWidget { - private static final Identifier HOVER_TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/rarity_widget/hover.png"); - private static final Identifier TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/rarity_widget/background.png"); + private static final Identifier HOVER_TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/rarity_widget/hover.png"); + private static final Identifier TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/rarity_widget/background.png"); private final SlotClickHandler onClick; private int slotId = -1; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/SortWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/SortWidget.java index 84b8ae4d..205cba33 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/SortWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/SortWidget.java @@ -24,11 +24,11 @@ public class SortWidget extends SliderWidget<SortWidget.Option> { private final Identifier texture; private static final String prefix = "textures/gui/auctions_gui/sort_widget/"; - private static final Identifier HOVER_TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, prefix + "hover.png"); - private static final Identifier BACK_TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, prefix + "back.png"); + private static final Identifier HOVER_TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, prefix + "hover.png"); + private static final Identifier BACK_TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, prefix + "back.png"); Option(String textureName) { - texture = new Identifier(SkyblockerMod.NAMESPACE, prefix + textureName); + texture = Identifier.of(SkyblockerMod.NAMESPACE, prefix + textureName); } public Identifier getOptionTexture() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java index b8d409ae..5fac426e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java @@ -4,6 +4,7 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.events.HudRenderEvents; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.render.RenderTickCounter; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; @@ -13,11 +14,11 @@ public class ChatRuleAnnouncementScreen { private static Text text = null; public static void init() { - HudRenderEvents.BEFORE_CHAT.register((context, tickDelta) -> { + HudRenderEvents.BEFORE_CHAT.register((context, tickCounter) -> { if (timer <= 0 || text == null) { return; } - render(context, tickDelta); + render(context, tickCounter); }); } @@ -26,10 +27,10 @@ public class ChatRuleAnnouncementScreen { * @param context render context * @param tickDelta difference from last render to remove from timer */ - private static void render(DrawContext context, float tickDelta) { + private static void render(DrawContext context, RenderTickCounter tickCounter) { int scale = SkyblockerConfigManager.get().chat.chatRuleConfig.announcementScale; //decrement timer - timer -= tickDelta; + timer -= tickCounter.getTickDelta(true); //scale text up and center MatrixStack matrices = context.getMatrices(); matrices.push(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/KuudraWaypoints.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/KuudraWaypoints.java index 5b586f71..dbf7409a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/KuudraWaypoints.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/KuudraWaypoints.java @@ -17,7 +17,6 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.JsonOps; import de.hysky.skyblocker.SkyblockerMod; -import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.PosUtils; import de.hysky.skyblocker.utils.Utils; @@ -53,8 +52,8 @@ public class KuudraWaypoints { private static boolean loaded; static void load(MinecraftClient client) { - CompletableFuture<Void> safeSpots = loadWaypoints(client, new Identifier(SkyblockerMod.NAMESPACE, "crimson/kuudra/safe_spot_waypoints.json"), SAFE_SPOT_WAYPOINTS, SAFE_SPOT_COLOR); - CompletableFuture<Void> pearls = loadWaypoints(client, new Identifier(SkyblockerMod.NAMESPACE, "crimson/kuudra/pearl_waypoints.json"), PEARL_WAYPOINTS, PEARL_COLOR); + CompletableFuture<Void> safeSpots = loadWaypoints(client, Identifier.of(SkyblockerMod.NAMESPACE, "crimson/kuudra/safe_spot_waypoints.json"), SAFE_SPOT_WAYPOINTS, SAFE_SPOT_COLOR); + CompletableFuture<Void> pearls = loadWaypoints(client, Identifier.of(SkyblockerMod.NAMESPACE, "crimson/kuudra/pearl_waypoints.json"), PEARL_WAYPOINTS, PEARL_COLOR); CompletableFuture.allOf(safeSpots, pearls).whenComplete((_result, _throwable) -> loaded = true); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java index 1e896794..a46daf52 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java @@ -26,7 +26,7 @@ public class DungeonMap { private static MapIdComponent cachedMapIdComponent = null; public static void init() { - HudRenderEvents.AFTER_MAIN_HUD.register((context, tickDelta) -> render(context)); + HudRenderEvents.AFTER_MAIN_HUD.register((context, tickCounter) -> render(context)); ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker") .then(ClientCommandManager.literal("hud") .then(ClientCommandManager.literal("dungeon") diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java index 068510c2..bcddbee3 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java @@ -15,7 +15,7 @@ public class DungeonMapConfigScreen extends Screen { private int mapY = SkyblockerConfigManager.get().dungeons.dungeonMap.mapY; private int scoreX = SkyblockerConfigManager.get().dungeons.dungeonScore.scoreX; private int scoreY = SkyblockerConfigManager.get().dungeons.dungeonScore.scoreY; - private static final Identifier MAP_BACKGROUND = new Identifier("textures/map/map_background.png"); + private static final Identifier MAP_BACKGROUND = Identifier.ofVanilla("textures/map/map_background.png"); private final Screen parent; protected DungeonMapConfigScreen() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java index 1896eb53..cd8b9706 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java @@ -14,7 +14,7 @@ public class DungeonScoreHUD { } public static void init() { - HudRenderEvents.AFTER_MAIN_HUD.register((context, tickDelta) -> render(context)); + HudRenderEvents.AFTER_MAIN_HUD.register((context, tickCounter) -> render(context)); } //This is 4+5 wide, needed to offset the extra width from bold numbers (3×1 wide) in S+ and the "+" (6 wide) so that it doesn't go off the screen if the score is S+ and the hud element is at the right edge of the screen diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonTextures.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonTextures.java index 1d55491f..502efc6f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonTextures.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonTextures.java @@ -8,7 +8,7 @@ import net.minecraft.util.Identifier; public class DungeonTextures { public static void init() { ResourceManagerHelper.registerBuiltinResourcePack( - new Identifier(SkyblockerMod.NAMESPACE, "recolored_dungeon_items"), + Identifier.of(SkyblockerMod.NAMESPACE, "recolored_dungeon_items"), SkyblockerMod.SKYBLOCKER_MOD, ResourcePackActivationType.NORMAL ); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java index b2a9b521..3422bc0f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java @@ -7,6 +7,7 @@ import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.render.RenderTickCounter; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -19,7 +20,7 @@ public class FireFreezeStaffTimer { ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> FireFreezeStaffTimer.reset()); } - private static void onDraw(DrawContext context, float v) { + private static void onDraw(DrawContext context, RenderTickCounter tickCounter) { MinecraftClient client = MinecraftClient.getInstance(); if (client.currentScreen != null) return; 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 588e2431..0b52f1ed 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 @@ -33,8 +33,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class PartyEntry extends ElementListWidget.Entry<PartyEntry> { - private static final Identifier PARTY_CARD_TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/party_card.png"); - private static final Identifier PARTY_CARD_TEXTURE_HOVER = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/party_card_hover.png"); + private static final Identifier PARTY_CARD_TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/party_card.png"); + private static final Identifier PARTY_CARD_TEXTURE_HOVER = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/party_card_hover.png"); public static final Text JOIN_TEXT = Text.translatable("skyblocker.partyFinder.join"); private static final Map<String, ProfileComponent> SKULL_CACHE = new Object2ObjectOpenHashMap<>(); protected final PartyFinderScreen screen; 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 d22084f2..ad002057 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 @@ -37,8 +37,8 @@ import java.util.concurrent.CompletableFuture; public class PartyFinderScreen extends Screen { protected static final Logger LOGGER = LoggerFactory.getLogger(PartyFinderScreen.class); - protected static final Identifier BACKGROUND_TEXTURE = new Identifier("social_interactions/background"); - protected static final Identifier SEARCH_ICON_TEXTURE = new Identifier("icon/search"); + protected static final Identifier BACKGROUND_TEXTURE = Identifier.ofVanilla("social_interactions/background"); + protected static final Identifier SEARCH_ICON_TEXTURE = Identifier.ofVanilla("icon/search"); protected static final Text SEARCH_TEXT = Text.translatable("gui.socialInteractions.search_hint").formatted(Formatting.ITALIC).formatted(Formatting.GRAY); public static boolean isInKuudraPartyFinder = false; @@ -110,7 +110,7 @@ public class PartyFinderScreen extends Screen { CompletableFuture.runAsync(() -> { floorIconsNormal = new HashMap<>(); floorIconsMaster = new HashMap<>(); - try (BufferedReader skullTextureReader = client.getResourceManager().openAsReader(new Identifier(SkyblockerMod.NAMESPACE, "dungeons/catacombs/floorskulls.json"))) { + try (BufferedReader skullTextureReader = client.getResourceManager().openAsReader(Identifier.of(SkyblockerMod.NAMESPACE, "dungeons/catacombs/floorskulls.json"))) { JsonObject json = SkyblockerMod.GSON.fromJson(skullTextureReader, JsonObject.class); 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()))); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/CreeperBeams.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/CreeperBeams.java index 3d9e05ae..75dd7708 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/CreeperBeams.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/CreeperBeams.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.skyblock.dungeon.puzzle; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.RenderHelper; import it.unimi.dsi.fastutil.objects.ObjectDoublePair; @@ -28,13 +29,13 @@ public class CreeperBeams extends DungeonPuzzle { private static final Logger LOGGER = LoggerFactory.getLogger(CreeperBeams.class.getName()); private static final float[][] COLORS = { - DyeColor.LIGHT_BLUE.getColorComponents(), - DyeColor.LIME.getColorComponents(), - DyeColor.YELLOW.getColorComponents(), - DyeColor.MAGENTA.getColorComponents(), - DyeColor.PINK.getColorComponents(), + ColorUtils.getFloatComponents(DyeColor.LIGHT_BLUE), + ColorUtils.getFloatComponents(DyeColor.LIME), + ColorUtils.getFloatComponents(DyeColor.YELLOW), + ColorUtils.getFloatComponents(DyeColor.MAGENTA), + ColorUtils.getFloatComponents(DyeColor.PINK), }; - private static final float[] GREEN_COLOR_COMPONENTS = DyeColor.GREEN.getColorComponents(); + private static final float[] GREEN_COLOR_COMPONENTS = ColorUtils.getFloatComponents(DyeColor.GREEN); private static final int FLOOR_Y = 68; private static final int BASE_Y = 74; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/IceFill.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/IceFill.java index 8bc14b52..883a469a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/IceFill.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/IceFill.java @@ -7,6 +7,7 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.debug.Debug; import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; import de.hysky.skyblocker.skyblock.dungeon.secrets.Room; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.render.RenderHelper; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; @@ -27,7 +28,7 @@ import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.lit public class IceFill extends DungeonPuzzle { public static final IceFill INSTANCE = new IceFill(); - private static final float[] RED_COLOR_COMPONENTS = DyeColor.RED.getColorComponents(); + private static final float[] RED_COLOR_COMPONENTS = ColorUtils.getFloatComponents(DyeColor.RED); private static final BlockPos[] BOARD_ORIGINS = { new BlockPos(16, 70, 9), new BlockPos(17, 71, 16), diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/Silverfish.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/Silverfish.java index 3b0ee65c..f4376c54 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/Silverfish.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/Silverfish.java @@ -6,6 +6,7 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.debug.Debug; import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; import de.hysky.skyblocker.skyblock.dungeon.secrets.Room; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.render.RenderHelper; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; @@ -19,17 +20,14 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; import org.joml.Vector2i; import org.joml.Vector2ic; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.*; import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal; public class Silverfish extends DungeonPuzzle { - private static final Logger LOGGER = LoggerFactory.getLogger(Silverfish.class); public static final Silverfish INSTANCE = new Silverfish(); - private static final float[] RED_COLOR_COMPONENTS = DyeColor.RED.getColorComponents(); + private static final float[] RED_COLOR_COMPONENTS = ColorUtils.getFloatComponents(DyeColor.RED); final boolean[][] silverfishBoard = new boolean[17][17]; Vector2ic silverfishPos; final List<Vector2ic> silverfishPath = new ArrayList<>(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/TicTacToe.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/TicTacToe.java index 3c0b0dc9..5a497c19 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/TicTacToe.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/TicTacToe.java @@ -55,7 +55,7 @@ public class TicTacToe extends DungeonPuzzle { char[][] board = new char[3][3]; for (ItemFrameEntity itemFrame : itemFramesThatHoldMaps) { - MapState mapState = client.world.getMapState(itemFrame.getMapId()); + MapState mapState = client.world.getMapState(itemFrame.getMapId(itemFrame.getHeldItemStack())); if (mapState == null) continue; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/boulder/Boulder.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/boulder/Boulder.java index 68671896..aef9109f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/boulder/Boulder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/boulder/Boulder.java @@ -4,6 +4,7 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.dungeon.puzzle.DungeonPuzzle; import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; import de.hysky.skyblocker.skyblock.dungeon.secrets.Room; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.render.RenderHelper; import de.hysky.skyblocker.utils.render.title.Title; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; @@ -18,17 +19,14 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.Vec3d; import net.minecraft.world.BlockView; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.Arrays; import java.util.List; public class Boulder extends DungeonPuzzle { - private static final Logger LOGGER = LoggerFactory.getLogger(Boulder.class.getName()); private static final Boulder INSTANCE = new Boulder(); - private static final float[] RED_COLOR_COMPONENTS = DyeColor.RED.getColorComponents(); - private static final float[] ORANGE_COLOR_COMPONENTS = DyeColor.ORANGE.getColorComponents(); + private static final float[] RED_COLOR_COMPONENTS = ColorUtils.getFloatComponents(DyeColor.RED); + private static final float[] ORANGE_COLOR_COMPONENTS = ColorUtils.getFloatComponents(DyeColor.ORANGE); private static final int BASE_Y = 65; static Vec3d[] linePoints; static Box boundingBox; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/waterboard/Waterboard.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/waterboard/Waterboard.java index 4e8122c3..511827b9 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/waterboard/Waterboard.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/waterboard/Waterboard.java @@ -11,6 +11,7 @@ import de.hysky.skyblocker.skyblock.dungeon.puzzle.DungeonPuzzle; import de.hysky.skyblocker.skyblock.dungeon.puzzle.waterboard.Cell.SwitchCell; import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; import de.hysky.skyblocker.skyblock.dungeon.secrets.Room; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.render.RenderHelper; import de.hysky.skyblocker.utils.scheduler.Scheduler; @@ -71,7 +72,7 @@ public class Waterboard extends DungeonPuzzle { new BlockPos(10, 61, 10) }; public static final BlockPos WATER_LEVER = new BlockPos(15, 60, 5); - private static final float[] LIME_COLOR_COMPONENTS = DyeColor.LIME.getColorComponents(); + private static final float[] LIME_COLOR_COMPONENTS = ColorUtils.getFloatComponents(DyeColor.LIME); private CompletableFuture<Void> solve; private final Cell[][] cells = new Cell[19][19]; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java index e4504cc9..b9986731 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java @@ -295,7 +295,7 @@ public class DungeonManager { })); } dungeonFutures.add(CompletableFuture.runAsync(() -> { - try (BufferedReader roomsReader = MinecraftClient.getInstance().getResourceManager().openAsReader(new Identifier(SkyblockerMod.NAMESPACE, "dungeons/dungeonrooms.json")); BufferedReader waypointsReader = MinecraftClient.getInstance().getResourceManager().openAsReader(new Identifier(SkyblockerMod.NAMESPACE, "dungeons/secretlocations.json"))) { + try (BufferedReader roomsReader = MinecraftClient.getInstance().getResourceManager().openAsReader(Identifier.of(SkyblockerMod.NAMESPACE, "dungeons/dungeonrooms.json")); BufferedReader waypointsReader = MinecraftClient.getInstance().getResourceManager().openAsReader(Identifier.of(SkyblockerMod.NAMESPACE, "dungeons/secretlocations.json"))) { loadJson(roomsReader, roomsJson); loadJson(waypointsReader, waypointsJson); LOGGER.debug("[Skyblocker Dungeon Secrets] Loaded dungeon secret waypoints json"); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/ColorTerminal.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/ColorTerminal.java index 2abe5183..7a966b48 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/ColorTerminal.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/ColorTerminal.java @@ -72,7 +72,7 @@ public final class ColorTerminal extends ContainerSolver implements TerminalSolv itemColor = new HashMap<>(); for (DyeColor color : DyeColor.values()) for (String item : new String[]{"dye", "wool", "stained_glass", "terracotta"}) - itemColor.put(Registries.ITEM.get(new Identifier(color.getName() + '_' + item)), color); + itemColor.put(Registries.ITEM.get(Identifier.ofVanilla(color.getName() + '_' + item)), color); itemColor.put(Items.BONE_MEAL, DyeColor.WHITE); itemColor.put(Items.LAPIS_LAZULI, DyeColor.BLUE); itemColor.put(Items.COCOA_BEANS, DyeColor.BROWN); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java index 63430489..7f4dbdbf 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java @@ -21,8 +21,8 @@ import java.util.Map; public class CrystalsHud { private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); - protected static final Identifier MAP_TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/crystals_map.png"); - private static final Identifier MAP_ICON = new Identifier("textures/map/decorations/player.png"); + protected static final Identifier MAP_TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/crystals_map.png"); + private static final Identifier MAP_ICON = Identifier.ofVanilla("textures/map/decorations/player.png"); private static final List<String> SMALL_LOCATIONS = List.of("Fairy Grotto", "King Yolkar", "Corleone", "Odawa", "Key Guardian"); @@ -34,13 +34,13 @@ public class CrystalsHud { .then(ClientCommandManager.literal("crystals") .executes(Scheduler.queueOpenScreenCommand(CrystalsHudConfigScreen::new)))))); - HudRenderEvents.AFTER_MAIN_HUD.register((context, tickDelta) -> { + HudRenderEvents.AFTER_MAIN_HUD.register((context, tickCounter) -> { if (!SkyblockerConfigManager.get().mining.crystalsHud.enabled || CLIENT.player == null || !visible) { return; } - render(context, tickDelta, SkyblockerConfigManager.get().mining.crystalsHud.x, + render(context, SkyblockerConfigManager.get().mining.crystalsHud.x, SkyblockerConfigManager.get().mining.crystalsHud.y); }); } @@ -54,11 +54,10 @@ public class CrystalsHud { * Renders the map to the players UI. renders the background image ({@link CrystalsHud#MAP_TEXTURE}) of the map then if enabled special locations on the map. then finally the player to the map. * * @param context DrawContext to draw map to - * @param tickDelta For interpolating the player's yaw for map marker * @param hudX Top left X coordinate of the map * @param hudY Top left Y coordinate of the map */ - private static void render(DrawContext context, float tickDelta, int hudX, int hudY) { + private static void render(DrawContext context, int hudX, int hudY) { float scale = SkyblockerConfigManager.get().mining.crystalsHud.mapScaling; //make sure the map renders infront of some stuff - improve this in the future with better layering (1.20.5?) diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java index 9ca9953b..16c36dde 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java @@ -62,7 +62,7 @@ public class DwarvenHud { ) )); - HudRenderEvents.AFTER_MAIN_HUD.register((context, tickDelta) -> { + HudRenderEvents.AFTER_MAIN_HUD.register((context, tickCounter) -> { if (!SkyblockerConfigManager.get().mining.dwarvenHud.enabledCommissions && !SkyblockerConfigManager.get().mining.dwarvenHud.enabledPowder || CLIENT.options.playerListKey.isPressed() || CLIENT.player == null diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java index 3839a712..f2911f9a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java @@ -13,7 +13,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class GlaciteColdOverlay { - private static final Identifier POWDER_SNOW_OUTLINE = new Identifier("textures/misc/powder_snow_outline.png"); + private static final Identifier POWDER_SNOW_OUTLINE = Identifier.ofVanilla("textures/misc/powder_snow_outline.png"); private static final Pattern COLD_PATTERN = Pattern.compile("Cold: -(\\d+)❄"); private static int cold = 0; private static long resetTime = System.currentTimeMillis(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java index 53c4336e..0d9822fe 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java @@ -9,6 +9,8 @@ import net.minecraft.component.type.ProfileComponent; import net.minecraft.enchantment.Enchantments; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.registry.BuiltinRegistries; +import net.minecraft.registry.RegistryKeys; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -35,7 +37,7 @@ public class EndHudWidget extends Widget { static { ENDERMAN_HEAD.set(DataComponentTypes.PROFILE, new ProfileComponent(Optional.of("MHF_Enderman"), Optional.empty(), new PropertyMap())); - POPPY.addEnchantment(Enchantments.INFINITY, 1); + POPPY.addEnchantment(BuiltinRegistries.createWrapperLookup().getWrapperOrThrow(RegistryKeys.ENCHANTMENT).getOptional(Enchantments.INFINITY).get(), 1); INSTANCE.setX(SkyblockerConfigManager.get().otherLocations.end.x); INSTANCE.setY(SkyblockerConfigManager.get().otherLocations.end.y); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/end/EnderNodes.java b/src/main/java/de/hysky/skyblocker/skyblock/end/EnderNodes.java index b0282a69..e5a3a9fa 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/end/EnderNodes.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/end/EnderNodes.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.skyblock.end; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.scheduler.Scheduler; import de.hysky.skyblocker.utils.waypoint.Waypoint; @@ -117,7 +118,7 @@ public class EnderNodes { private long lastConfirmed; private EnderNode(BlockPos pos) { - super(pos, () -> SkyblockerConfigManager.get().uiAndVisuals.waypoints.waypointType, DyeColor.CYAN.getColorComponents(), false); + super(pos, () -> SkyblockerConfigManager.get().uiAndVisuals.waypoints.waypointType, ColorUtils.getFloatComponents(DyeColor.CYAN), false); } private void updateParticles() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java b/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java index ac961dd8..872d2823 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java @@ -5,6 +5,7 @@ import com.google.gson.JsonObject; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.events.HudRenderEvents; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.waypoint.Waypoint; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientChunkEvents; @@ -73,7 +74,7 @@ public class TheEnd { }); - HudRenderEvents.AFTER_MAIN_HUD.register((drawContext, tickDelta) -> { + HudRenderEvents.AFTER_MAIN_HUD.register((drawContext, tickCounter) -> { if (!Utils.isInTheEnd()) return; if (!SkyblockerConfigManager.get().otherLocations.end.hudEnabled) return; @@ -268,7 +269,7 @@ public class TheEnd { public record ProtectorLocation(int x, int z, Text name, Waypoint waypoint) { public ProtectorLocation(int x, int z, Text name) { - this(x, z, name, new Waypoint(new BlockPos(x, 0, z), Waypoint.Type.WAYPOINT, DyeColor.MAGENTA.getColorComponents())); + this(x, z, name, new Waypoint(new BlockPos(x, 0, z), Waypoint.Type.WAYPOINT, ColorUtils.getFloatComponents(DyeColor.MAGENTA))); } } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java b/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java index 567c800a..48ea05c4 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java @@ -18,7 +18,7 @@ import net.minecraft.util.Identifier; import java.util.List; public class EventToast implements Toast { - protected static final Identifier TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "notification"); + protected static final Identifier TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, "notification"); private final long eventStartTime; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java index 72c1370c..c60fdd1a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java @@ -52,16 +52,16 @@ public class FancyStatusBars { } public static void init() { - statusBars.put("health", new StatusBar(new Identifier(SkyblockerMod.NAMESPACE, "bars/icons/health"), + statusBars.put("health", new StatusBar(Identifier.of(SkyblockerMod.NAMESPACE, "bars/icons/health"), new Color[]{new Color(255, 0, 0), new Color(255, 220, 0)}, true, new Color(255, 85, 85), Text.translatable("skyblocker.bars.config.health"))); - statusBars.put("intelligence", new StatusBar(new Identifier(SkyblockerMod.NAMESPACE, "bars/icons/intelligence"), + statusBars.put("intelligence", new StatusBar(Identifier.of(SkyblockerMod.NAMESPACE, "bars/icons/intelligence"), new Color[]{new Color(0, 255, 255), new Color(180, 0, 255)}, true, new Color(85, 255, 255), Text.translatable("skyblocker.bars.config.intelligence"))); - statusBars.put("defense", new StatusBar(new Identifier(SkyblockerMod.NAMESPACE, "bars/icons/defense"), + statusBars.put("defense", new StatusBar(Identifier.of(SkyblockerMod.NAMESPACE, "bars/icons/defense"), new Color[]{new Color(255, 255, 255)}, false, new Color(185, 185, 185), Text.translatable("skyblocker.bars.config.defense"))); - statusBars.put("experience", new StatusBar(new Identifier(SkyblockerMod.NAMESPACE, "bars/icons/experience"), + statusBars.put("experience", new StatusBar(Identifier.of(SkyblockerMod.NAMESPACE, "bars/icons/experience"), new Color[]{new Color(100, 230, 70)}, false, new Color(128, 255, 32), Text.translatable("skyblocker.bars.config.experience"))); @@ -292,7 +292,7 @@ public class FancyStatusBars { Collection<StatusBar> barCollection = statusBars.values(); for (StatusBar statusBar : barCollection) { - if (statusBar.anchor != null) statusBar.render(context, -1, -1, client.getLastFrameDuration()); + if (statusBar.anchor != null) statusBar.render(context, -1, -1, client.getRenderTickCounter().getLastFrameDuration()); } for (StatusBar statusBar : barCollection) { if (statusBar.anchor != null && statusBar.showText()) statusBar.renderText(context); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java index 467691fd..6392f08a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java @@ -21,8 +21,8 @@ import java.util.function.Consumer; public class StatusBar implements Widget, Drawable, Element, Selectable { - private static final Identifier BAR_FILL = new Identifier(SkyblockerMod.NAMESPACE, "bars/bar_fill"); - private static final Identifier BAR_BACK = new Identifier(SkyblockerMod.NAMESPACE, "bars/bar_back"); + private static final Identifier BAR_FILL = Identifier.of(SkyblockerMod.NAMESPACE, "bars/bar_fill"); + private static final Identifier BAR_BACK = Identifier.of(SkyblockerMod.NAMESPACE, "bars/bar_back"); /* public static final Codec<StatusBar> CODEC = RecordCodecBuilder.create(instance -> instance.group( diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBarsConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBarsConfigScreen.java index 0a9b2b7a..a412c1c5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBarsConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBarsConfigScreen.java @@ -23,7 +23,7 @@ import java.util.HashMap; import java.util.Map; public class StatusBarsConfigScreen extends Screen { - private static final Identifier HOTBAR_TEXTURE = new Identifier("hud/hotbar"); + private static final Identifier HOTBAR_TEXTURE = Identifier.ofVanilla("hud/hotbar"); public static final long RESIZE_CURSOR = GLFW.glfwCreateStandardCursor(GLFW.GLFW_HRESIZE_CURSOR); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java index 5837ea20..8bed581e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java @@ -44,7 +44,7 @@ public class FarmingHud { private static float farmingXpPercentProgress; public static void init() { - HudRenderEvents.AFTER_MAIN_HUD.register((context, tickDelta) -> { + HudRenderEvents.AFTER_MAIN_HUD.register((context, tickCounter) -> { if (shouldRender()) { if (!counter.isEmpty() && counter.peek().rightLong() + 5000 < System.currentTimeMillis()) { counter.poll(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java index a09b260a..6bd163e9 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java @@ -15,10 +15,12 @@ import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.SimpleInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.recipe.CraftingRecipe; import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeEntry; import net.minecraft.recipe.RecipeMatcher; import net.minecraft.recipe.book.RecipeBookCategory; +import net.minecraft.recipe.input.CraftingRecipeInput; import net.minecraft.screen.AbstractRecipeScreenHandler; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.screen.slot.Slot; @@ -28,14 +30,14 @@ import net.minecraft.text.Text; import net.minecraft.util.Identifier; public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingTableScreenHandler> { - private static final Identifier TEXTURE = new Identifier("textures/gui/container/crafting_table.png"); + private static final Identifier TEXTURE = Identifier.ofVanilla("textures/gui/container/crafting_table.png"); protected static final ButtonTextures MORE_CRAFTS_TEXTURES = new ButtonTextures( - new Identifier(SkyblockerMod.NAMESPACE, "quick_craft/more_button"), - new Identifier(SkyblockerMod.NAMESPACE, "quick_craft/more_button_disabled"), - new Identifier(SkyblockerMod.NAMESPACE, "quick_craft/more_button_highlighted") + Identifier.of(SkyblockerMod.NAMESPACE, "quick_craft/more_button"), + Identifier.of(SkyblockerMod.NAMESPACE, "quick_craft/more_button_disabled"), + Identifier.of(SkyblockerMod.NAMESPACE, "quick_craft/more_button_highlighted") ); - protected static final Identifier QUICK_CRAFT = new Identifier(SkyblockerMod.NAMESPACE, "quick_craft/quick_craft_overlay"); + protected static final Identifier QUICK_CRAFT = Identifier.of(SkyblockerMod.NAMESPACE, "quick_craft/quick_craft_overlay"); private final ItemListWidget recipeBook = new ItemListWidget(); private boolean narrow; private TexturedButtonWidget moreCraftsButton; @@ -139,7 +141,7 @@ public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingT } - static class DummyRecipeScreenHandler extends AbstractRecipeScreenHandler<SimpleInventory> { + static class DummyRecipeScreenHandler extends AbstractRecipeScreenHandler<CraftingRecipeInput, CraftingRecipe> { public DummyRecipeScreenHandler() { super(ScreenHandlerType.GENERIC_9X6, -69); @@ -152,11 +154,6 @@ public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingT public void clearCraftingSlots() {} @Override - public boolean matches(RecipeEntry<? extends Recipe<SimpleInventory>> recipe) { - return false; - } - - @Override public int getCraftingResultSlotIndex() { return 0; } @@ -195,5 +192,10 @@ public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingT public boolean canUse(PlayerEntity player) { return false; } + + @Override + public boolean matches(RecipeEntry<CraftingRecipe> recipe) { + return false; + } } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java index 50772789..ecbd2f31 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java @@ -15,13 +15,17 @@ import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; +import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.inventory.Inventory; import net.minecraft.inventory.SimpleInventory; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NbtElement; import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.StringNbtReader; import net.minecraft.nbt.visitor.StringNbtWriter; +import net.minecraft.registry.BuiltinRegistries; +import net.minecraft.registry.RegistryOps; import net.minecraft.util.Identifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,8 +42,8 @@ import java.util.stream.Collectors; public class BackpackPreview { private static final Logger LOGGER = LoggerFactory.getLogger(BackpackPreview.class); - private static final Identifier ITEM_PROTECTION = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png"); - private static final Identifier TEXTURE = new Identifier("textures/gui/container/generic_54.png"); + private static final Identifier ITEM_PROTECTION = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png"); + private static final Identifier TEXTURE = Identifier.ofVanilla("textures/gui/container/generic_54.png"); private static final Pattern ECHEST_PATTERN = Pattern.compile("Ender Chest.*\\((\\d+)/\\d+\\)"); private static final Pattern BACKPACK_PATTERN = Pattern.compile("Backpack.*\\(Slot #(\\d+)\\)"); private static final int STORAGE_SIZE = 27; @@ -88,7 +92,7 @@ public class BackpackPreview { Path storageFile = saveDir.resolve(index + ".nbt"); if (Files.isRegularFile(storageFile)) { try (BufferedReader reader = Files.newBufferedReader(storageFile)) { - storages[index] = Storage.CODEC.parse(NbtOps.INSTANCE, StringNbtReader.parse(reader.lines().collect(Collectors.joining()))).getOrThrow(); + storages[index] = Storage.CODEC.parse(getOps(), StringNbtReader.parse(reader.lines().collect(Collectors.joining()))).getOrThrow(); } catch (Exception e) { LOGGER.error("Failed to load backpack preview file: {}", storageFile.getFileName().toString(), e); } @@ -96,6 +100,12 @@ public class BackpackPreview { } } + private static RegistryOps<NbtElement> getOps() { + ClientPlayNetworkHandler handler = MinecraftClient.getInstance().player != null ? MinecraftClient.getInstance().player.networkHandler : null; + + return handler != null ? handler.getRegistryManager().getOps(NbtOps.INSTANCE) : BuiltinRegistries.createWrapperLookup().getOps(NbtOps.INSTANCE); + } + private static void saveStorages() { for (int index = 0; index < STORAGE_SIZE; ++index) { if (storages[index] != null && storages[index].dirty) { @@ -107,7 +117,7 @@ public class BackpackPreview { private static void saveStorage(int index) { Path storageFile = saveDir.resolve(index + ".nbt"); try (BufferedWriter writer = Files.newBufferedWriter(storageFile)) { - writer.write(new StringNbtWriter().apply(Storage.CODEC.encodeStart(NbtOps.INSTANCE, storages[index]).getOrThrow())); + writer.write(new StringNbtWriter().apply(Storage.CODEC.encodeStart(getOps(), storages[index]).getOrThrow())); storages[index].markClean(); } catch (Exception e) { LOGGER.error("Failed to save backpack preview file: {}", storageFile.getFileName().toString(), e); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorPreviewTooltipComponent.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorPreviewTooltipComponent.java index 8f2c0901..b7ac2856 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorPreviewTooltipComponent.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorPreviewTooltipComponent.java @@ -10,7 +10,7 @@ import net.minecraft.item.Items; import net.minecraft.util.Identifier; public class CompactorPreviewTooltipComponent implements TooltipComponent { - private static final Identifier TEXTURE = new Identifier("textures/gui/container/generic_54.png"); + private static final Identifier TEXTURE = Identifier.ofVanilla("textures/gui/container/generic_54.png"); private static final ItemStack BLACK_STAINED_GLASS_PANE = new ItemStack(Items.BLACK_STAINED_GLASS_PANE); private final Iterable<IntObjectPair<ItemStack>> items; private final IntIntPair dimensions; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java index a618f4df..be1f4b98 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java @@ -37,7 +37,7 @@ public class ItemListWidget extends RecipeBookWidget { } @Override - public void initialize(int parentWidth, int parentHeight, MinecraftClient client, boolean narrow, AbstractRecipeScreenHandler<?> craftingScreenHandler) { + public void initialize(int parentWidth, int parentHeight, MinecraftClient client, boolean narrow, AbstractRecipeScreenHandler<?, ?> craftingScreenHandler) { super.initialize(parentWidth, parentHeight, client, narrow, craftingScreenHandler); this.parentWidth = parentWidth; this.parentHeight = parentHeight; 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 6ee75161..f256ff9d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemStackBuilder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemStackBuilder.java @@ -41,7 +41,7 @@ public class ItemStackBuilder { List<Pair<String, String>> injectors = new ArrayList<>(petData(internalName)); String legacyId = item.getMinecraftItemId(); - Identifier itemId = new Identifier(ItemFixerUpper.convertItemId(legacyId, item.getDamage())); + Identifier itemId = Identifier.ofVanilla(ItemFixerUpper.convertItemId(legacyId, item.getDamage())); ItemStack stack = new ItemStack(Registries.ITEM.get(itemId)); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java index 6af03f31..6c7d1cbc 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java @@ -12,7 +12,7 @@ import net.minecraft.util.Identifier; import java.util.List; public class ResultButtonWidget extends ClickableWidget { - private static final Identifier BACKGROUND_TEXTURE = new Identifier("recipe_book/slot_craftable"); + private static final Identifier BACKGROUND_TEXTURE = Identifier.ofVanilla("recipe_book/slot_craftable"); protected ItemStack itemStack = null; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/SearchResultsWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/SearchResultsWidget.java index 48d3a8f6..dfb53628 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/SearchResultsWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/SearchResultsWidget.java @@ -25,8 +25,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class SearchResultsWidget implements Drawable, Element { - private static final ButtonTextures PAGE_FORWARD_TEXTURES = new ButtonTextures(new Identifier("recipe_book/page_forward"), new Identifier("recipe_book/page_forward_highlighted")); - private static final ButtonTextures PAGE_BACKWARD_TEXTURES = new ButtonTextures(new Identifier("recipe_book/page_backward"), new Identifier("recipe_book/page_backward_highlighted")); + private static final ButtonTextures PAGE_FORWARD_TEXTURES = new ButtonTextures(Identifier.ofVanilla("recipe_book/page_forward"), Identifier.ofVanilla("recipe_book/page_forward_highlighted")); + private static final ButtonTextures PAGE_BACKWARD_TEXTURES = new ButtonTextures(Identifier.ofVanilla("recipe_book/page_backward"), Identifier.ofVanilla("recipe_book/page_backward_highlighted")); private static final int COLS = 5; private static final int MAX_TEXT_WIDTH = 124; private static final String ELLIPSIS = "..."; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java b/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java index f9ca0940..f7f33d0f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java @@ -94,7 +94,7 @@ public class QuickNavButton extends ClickableWidget { RenderSystem.disableDepthTest(); // Construct the texture identifier based on the index and toggled state - Identifier tabTexture = new Identifier("container/creative_inventory/tab_" + (isTopTab() ? "top" : "bottom") + "_" + (toggled ? "selected" : "unselected") + "_" + (index % 7 + 1)); + Identifier tabTexture = Identifier.ofVanilla("container/creative_inventory/tab_" + (isTopTab() ? "top" : "bottom") + "_" + (toggled ? "selected" : "unselected") + "_" + (index % 7 + 1)); // Render the button texture context.drawGuiTexture(tabTexture, this.getX(), this.getY(), this.width, this.height); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/rift/EffigyWaypoints.java b/src/main/java/de/hysky/skyblocker/skyblock/rift/EffigyWaypoints.java index 11963857..ef77c602 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/rift/EffigyWaypoints.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/rift/EffigyWaypoints.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.skyblock.rift; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.RenderHelper; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; @@ -26,6 +27,7 @@ public class EffigyWaypoints { new BlockPos(240, 129, 118) //Effigy 6 ); private static final List<BlockPos> UNBROKEN_EFFIGIES = new ArrayList<>(); + private static final float[] RED = ColorUtils.getFloatComponents(DyeColor.RED); protected static void updateEffigies() { if (!SkyblockerConfigManager.get().slayers.vampireSlayer.enableEffigyWaypoints || !Utils.isOnSkyblock() || !Utils.isInTheRift() || !Utils.getIslandArea().contains("Stillgore Château")) return; @@ -57,13 +59,12 @@ public class EffigyWaypoints { protected static void render(WorldRenderContext context) { if (SkyblockerConfigManager.get().slayers.vampireSlayer.enableEffigyWaypoints && Utils.getIslandArea().contains("Stillgore Château")) { for (BlockPos effigy : UNBROKEN_EFFIGIES) { - float[] colorComponents = DyeColor.RED.getColorComponents(); if (SkyblockerConfigManager.get().slayers.vampireSlayer.compactEffigyWaypoints) { - RenderHelper.renderFilledWithBeaconBeam(context, effigy.down(6), colorComponents, 0.5F, true); + RenderHelper.renderFilledWithBeaconBeam(context, effigy.down(6), RED, 0.5F, true); } else { - RenderHelper.renderFilledWithBeaconBeam(context, effigy, colorComponents, 0.5F, true); + RenderHelper.renderFilledWithBeaconBeam(context, effigy, RED, 0.5F, true); for (int i = 1; i < 6; i++) { - RenderHelper.renderFilled(context, effigy.down(i), colorComponents, 0.5F - (0.075F * i), true); + RenderHelper.renderFilled(context, effigy.down(i), RED, 0.5F - (0.075F * i), true); } } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/rift/EnigmaSouls.java b/src/main/java/de/hysky/skyblocker/skyblock/rift/EnigmaSouls.java index 039d331c..8e3d1a91 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/rift/EnigmaSouls.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/rift/EnigmaSouls.java @@ -7,9 +7,9 @@ import com.google.gson.JsonParser; import com.mojang.brigadier.Command; import com.mojang.brigadier.CommandDispatcher; import de.hysky.skyblocker.SkyblockerMod; -import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.config.configs.OtherLocationsConfig; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.PosUtils; import de.hysky.skyblocker.utils.Utils; @@ -43,11 +43,11 @@ import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.lit public class EnigmaSouls { private static final Logger LOGGER = LoggerFactory.getLogger(EnigmaSouls.class); private static final Supplier<Waypoint.Type> TYPE_SUPPLIER = () -> SkyblockerConfigManager.get().uiAndVisuals.waypoints.waypointType; - private static final Identifier WAYPOINTS_JSON = new Identifier(SkyblockerMod.NAMESPACE, "rift/enigma_soul_waypoints.json"); + private static final Identifier WAYPOINTS_JSON = Identifier.of(SkyblockerMod.NAMESPACE, "rift/enigma_soul_waypoints.json"); private static final Map<BlockPos, ProfileAwareWaypoint> SOUL_WAYPOINTS = new HashMap<>(42); private static final Path FOUND_SOULS_FILE = SkyblockerMod.CONFIG_DIR.resolve("found_enigma_souls.json"); - private static final float[] GREEN = DyeColor.GREEN.getColorComponents(); - private static final float[] RED = DyeColor.RED.getColorComponents(); + private static final float[] GREEN = ColorUtils.getFloatComponents(DyeColor.GREEN); + private static final float[] RED = ColorUtils.getFloatComponents(DyeColor.RED); private static CompletableFuture<Void> soulsLoaded; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/rift/MirrorverseWaypoints.java b/src/main/java/de/hysky/skyblocker/skyblock/rift/MirrorverseWaypoints.java index 7d7d0c34..6a366122 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/rift/MirrorverseWaypoints.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/rift/MirrorverseWaypoints.java @@ -5,6 +5,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.waypoint.Waypoint; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; @@ -23,11 +24,11 @@ import java.util.function.Supplier; public class MirrorverseWaypoints { private static final Logger LOGGER = LoggerFactory.getLogger("skyblocker"); private static final Supplier<Waypoint.Type> WAYPOINT_TYPE = () -> Waypoint.Type.HIGHLIGHT; - private static final Identifier WAYPOINTS_JSON = new Identifier(SkyblockerMod.NAMESPACE, "rift/mirrorverse_waypoints.json"); + private static final Identifier WAYPOINTS_JSON = Identifier.of(SkyblockerMod.NAMESPACE, "rift/mirrorverse_waypoints.json"); private static Waypoint[] LAVA_PATH_WAYPOINTS; private static Waypoint[] UPSIDE_DOWN_WAYPOINTS; private static Waypoint[] TURBULATOR_WAYPOINTS; - private static final float[] COLOR_COMPONENTS = DyeColor.RED.getColorComponents(); + private static final float[] COLOR_COMPONENTS = ColorUtils.getFloatComponents(DyeColor.RED); private static CompletableFuture<Void> waypointsLoaded; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/OverlayScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/OverlayScreen.java index b227ff01..3e392f07 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/OverlayScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/OverlayScreen.java @@ -18,8 +18,8 @@ import static de.hysky.skyblocker.skyblock.itemlist.ItemRepository.getItemStack; public class OverlayScreen extends Screen { - protected static final Identifier SEARCH_ICON_TEXTURE = new Identifier("icon/search"); - private static final Identifier BACKGROUND_TEXTURE = new Identifier("social_interactions/background"); + protected static final Identifier SEARCH_ICON_TEXTURE = Identifier.ofVanilla("icon/search"); + private static final Identifier BACKGROUND_TEXTURE = Identifier.ofVanilla("social_interactions/background"); private static final int rowHeight = 20; private TextFieldWidget searchField; private ButtonWidget finishedButton; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java index 982fa16e..18a65049 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java @@ -81,7 +81,7 @@ public class ScreenMaster { // WHY MUST IT ALWAYS BE SUCH NESTED GARBAGE MINECRAFT KEEP THAT IN DFU FFS ResourceManagerHelper.registerBuiltinResourcePack( - new Identifier(SkyblockerMod.NAMESPACE, "top_aligned"), + Identifier.of(SkyblockerMod.NAMESPACE, "top_aligned"), SkyblockerMod.SKYBLOCKER_MOD, ResourcePackActivationType.NORMAL ); @@ -91,7 +91,7 @@ public class ScreenMaster { new SimpleSynchronousResourceReloadListener() { @Override public Identifier getFabricId() { - return new Identifier("skyblocker", "tabhud"); + return Identifier.of(SkyblockerMod.NAMESPACE, "tabhud"); } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/FairySouls.java b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/FairySouls.java index 25741b22..91b98e90 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/FairySouls.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/FairySouls.java @@ -8,6 +8,7 @@ import com.mojang.brigadier.CommandDispatcher; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.config.configs.HelperConfig; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.NEURepoManager; import de.hysky.skyblocker.utils.PosUtils; @@ -73,7 +74,7 @@ public class FairySouls { private static void loadFairySouls() { fairySoulsLoaded = NEURepoManager.runAsyncAfterLoad(() -> { maxSouls = NEURepoManager.NEU_REPO.getConstants().getFairySouls().getMaxSouls(); - NEURepoManager.NEU_REPO.getConstants().getFairySouls().getSoulLocations().forEach((location, fairiesForLocation) -> fairySouls.put(location, fairiesForLocation.stream().map(coordinate -> new BlockPos(coordinate.getX(), coordinate.getY(), coordinate.getZ())).collect(Collectors.toUnmodifiableMap(pos -> pos, pos -> new ProfileAwareWaypoint(pos, TYPE_SUPPLIER, DyeColor.GREEN.getColorComponents(), DyeColor.RED.getColorComponents()))))); + NEURepoManager.NEU_REPO.getConstants().getFairySouls().getSoulLocations().forEach((location, fairiesForLocation) -> fairySouls.put(location, fairiesForLocation.stream().map(coordinate -> new BlockPos(coordinate.getX(), coordinate.getY(), coordinate.getZ())).collect(Collectors.toUnmodifiableMap(pos -> pos, pos -> new ProfileAwareWaypoint(pos, TYPE_SUPPLIER, ColorUtils.getFloatComponents(DyeColor.GREEN), ColorUtils.getFloatComponents(DyeColor.RED)))))); LOGGER.debug("[Skyblocker] Loaded {} fairy souls across {} locations", fairySouls.values().stream().mapToInt(Map::size).sum(), fairySouls.size()); try (BufferedReader reader = Files.newBufferedReader(SkyblockerMod.CONFIG_DIR.resolve("found_fairy_souls.json"))) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/MythologicalRitual.java b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/MythologicalRitual.java index 254077ad..ffeba7ea 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/MythologicalRitual.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/MythologicalRitual.java @@ -3,6 +3,7 @@ package de.hysky.skyblocker.skyblock.waypoint; import com.mojang.brigadier.Command; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.RenderHelper; @@ -46,7 +47,7 @@ import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.lit public class MythologicalRitual { private static final Pattern GRIFFIN_BURROW_DUG = Pattern.compile("(?<message>You dug out a Griffin Burrow!|You finished the Griffin burrow chain!) \\((?<index>\\d)/4\\)"); - private static final float[] ORANGE_COLOR_COMPONENTS = DyeColor.ORANGE.getColorComponents(); + private static final float[] ORANGE_COLOR_COMPONENTS = ColorUtils.getFloatComponents(DyeColor.ORANGE); private static long lastEchoTime; private static final Map<BlockPos, GriffinBurrow> griffinBurrows = new HashMap<>(); @Nullable diff --git a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/Relics.java b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/Relics.java index 3a9af459..38e30ea8 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/Relics.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/Relics.java @@ -8,6 +8,7 @@ import com.mojang.brigadier.CommandDispatcher; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.config.configs.OtherLocationsConfig; +import de.hysky.skyblocker.utils.ColorUtils; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.PosUtils; import de.hysky.skyblocker.utils.Utils; @@ -58,7 +59,7 @@ public class Relics { private static void loadRelics(MinecraftClient client) { relicsLoaded = CompletableFuture.runAsync(() -> { - try (BufferedReader reader = client.getResourceManager().openAsReader(new Identifier(SkyblockerMod.NAMESPACE, "spidersden/relics.json"))) { + try (BufferedReader reader = client.getResourceManager().openAsReader(Identifier.of(SkyblockerMod.NAMESPACE, "spidersden/relics.json"))) { for (Map.Entry<String, JsonElement> json : JsonParser.parseReader(reader).getAsJsonObject().asMap().entrySet()) { if (json.getKey().equals("total")) { totalRelics = json.getValue().getAsInt(); @@ -66,7 +67,7 @@ public class Relics { for (JsonElement locationJson : json.getValue().getAsJsonArray().asList()) { JsonObject posData = locationJson.getAsJsonObject(); BlockPos pos = new BlockPos(posData.get("x").getAsInt(), posData.get("y").getAsInt(), posData.get("z").getAsInt()); - relics.put(pos, new ProfileAwareWaypoint(pos, TYPE_SUPPLIER, DyeColor.YELLOW.getColorComponents(), DyeColor.BROWN.getColorComponents())); + relics.put(pos, new ProfileAwareWaypoint(pos, TYPE_SUPPLIER, ColorUtils.getFloatComponents(DyeColor.YELLOW), ColorUtils.getFloatComponents(DyeColor.BROWN))); } } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsListWidget.java index 045c694d..f4b54342 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsListWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsListWidget.java @@ -97,7 +97,7 @@ public class WaypointsListWidget extends ElementListWidget<WaypointsListWidget.A return client.crosshairTarget instanceof BlockHitResult blockHitResult && client.crosshairTarget.getType() == HitResult.Type.BLOCK ? blockHitResult.getBlockPos() : client.player != null ? client.player.getBlockPos() : BlockPos.ORIGIN; } - protected abstract static class AbstractWaypointEntry extends Entry<AbstractWaypointEntry> { + protected abstract static class AbstractWaypointEntry extends ElementListWidget.Entry<AbstractWaypointEntry> { } protected class WaypointCategoryEntry extends AbstractWaypointEntry { diff --git a/src/main/java/de/hysky/skyblocker/utils/ColorUtils.java b/src/main/java/de/hysky/skyblocker/utils/ColorUtils.java index 0196edf2..4b17ef1a 100644 --- a/src/main/java/de/hysky/skyblocker/utils/ColorUtils.java +++ b/src/main/java/de/hysky/skyblocker/utils/ColorUtils.java @@ -1,5 +1,7 @@ package de.hysky.skyblocker.utils; +import net.minecraft.util.DyeColor; + public class ColorUtils { /** * Takes an RGB color as an integer and returns an array of the color's components as floats, in RGB format. @@ -13,4 +15,15 @@ public class ColorUtils { (color & 0xFF) / 255f }; } + + /** + * @param dye The dye from which the entity color will be used for the components. + */ + public static float[] getFloatComponents(DyeColor dye) { + return new float[] { + ((dye.getEntityColor() >> 16) & 0xFF) / 255f, + ((dye.getEntityColor() >> 8) & 0xFF) / 255f, + (dye.getEntityColor() & 0xFF) / 255f + }; + } } diff --git a/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java b/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java index 3543a2f1..959e6a5f 100644 --- a/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java +++ b/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java @@ -1,7 +1,6 @@ package de.hysky.skyblocker.utils.datafixer; import java.util.Arrays; -import java.util.List; import java.util.Objects; import java.util.Optional; @@ -10,16 +9,17 @@ import com.mojang.serialization.Dynamic; import net.minecraft.command.argument.ItemStringReader; import net.minecraft.command.argument.ItemStringReader.ItemResult; -import net.minecraft.component.DataComponentType; +import net.minecraft.component.ComponentType; import net.minecraft.datafixer.Schemas; import net.minecraft.datafixer.TypeReferences; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; import net.minecraft.nbt.NbtOps; -import net.minecraft.registry.DynamicRegistryManager; +import net.minecraft.registry.BuiltinRegistries; import net.minecraft.registry.Registries; import net.minecraft.registry.RegistryOps; +import net.minecraft.registry.RegistryWrapper.WrapperLookup; import net.minecraft.util.Identifier; /** @@ -30,10 +30,10 @@ import net.minecraft.util.Identifier; public class ItemStackComponentizationFixer { private static final int ITEM_NBT_DATA_VERSION = 3817; private static final int ITEM_COMPONENTS_DATA_VERSION = 3825; - private static final DynamicRegistryManager REGISTRY_MANAGER = new DynamicRegistryManager.ImmutableImpl(List.of(Registries.ITEM, Registries.DATA_COMPONENT_TYPE)); + private static final WrapperLookup LOOKUP = BuiltinRegistries.createWrapperLookup(); public static ItemStack fixUpItem(NbtCompound nbt) { - Dynamic<NbtElement> dynamic = Schemas.getFixer().update(TypeReferences.ITEM_STACK, new Dynamic<>(NbtOps.INSTANCE, nbt), ITEM_NBT_DATA_VERSION, ITEM_COMPONENTS_DATA_VERSION); + Dynamic<NbtElement> dynamic = Schemas.getFixer().update(TypeReferences.ITEM_STACK, new Dynamic<>(LOOKUP.getOps(NbtOps.INSTANCE), nbt), ITEM_NBT_DATA_VERSION, ITEM_COMPONENTS_DATA_VERSION); return ItemStack.CODEC.parse(dynamic).getOrThrow(); } @@ -44,11 +44,11 @@ public class ItemStackComponentizationFixer { * @return The {@link ItemStack}'s components as a string which is in the format that the {@code /give} command accepts. */ public static String componentsAsString(ItemStack stack) { - RegistryOps<NbtElement> nbtRegistryOps = REGISTRY_MANAGER.getOps(NbtOps.INSTANCE); + RegistryOps<NbtElement> nbtRegistryOps = LOOKUP.getOps(NbtOps.INSTANCE); return Arrays.toString(stack.getComponentChanges().entrySet().stream().map(entry -> { @SuppressWarnings("unchecked") - DataComponentType<Object> dataComponentType = (DataComponentType<Object>) entry.getKey(); + ComponentType<Object> dataComponentType = (ComponentType<Object>) entry.getKey(); Identifier componentId = Registries.DATA_COMPONENT_TYPE.getId(dataComponentType); Optional<NbtElement> encodedComponent = dataComponentType.getCodec().encodeStart(nbtRegistryOps, entry.getValue().orElseThrow()).result(); @@ -66,13 +66,14 @@ public class ItemStackComponentizationFixer { * @return an {@link ItemStack} or {@link ItemStack#EMPTY} if there was an exception thrown. */ public static ItemStack fromComponentsString(String itemId, int count, String componentsString) { - ItemStringReader reader = new ItemStringReader(REGISTRY_MANAGER); + ItemStringReader reader = new ItemStringReader(LOOKUP); try { ItemResult result = reader.consume(new StringReader(itemId + componentsString)); ItemStack stack = new ItemStack(result.item(), count); - stack.applyComponentsFrom(result.components()); + //Vanilla skips validation with /give so we will too + stack.applyUnvalidatedChanges(result.components()); return stack; } catch (Exception ignored) {} diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java index a6772fb2..50ffabd6 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java @@ -18,6 +18,7 @@ import net.minecraft.client.render.*; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.texture.Scaling; import net.minecraft.client.texture.Sprite; +import net.minecraft.client.util.BufferAllocator; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.sound.SoundEvents; import net.minecraft.text.OrderedText; @@ -25,6 +26,7 @@ import net.minecraft.text.Text; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; +import net.minecraft.util.math.ColorHelper; import net.minecraft.util.math.Vec3d; import org.joml.Matrix3f; @@ -40,11 +42,12 @@ import java.lang.invoke.MethodType; public class RenderHelper { private static final Logger LOGGER = LogUtils.getLogger(); - private static final Identifier TRANSLUCENT_DRAW = new Identifier(SkyblockerMod.NAMESPACE, "translucent_draw"); + private static final Identifier TRANSLUCENT_DRAW = Identifier.of(SkyblockerMod.NAMESPACE, "translucent_draw"); private static final MethodHandle SCHEDULE_DEFERRED_RENDER_TASK = getDeferredRenderTaskHandle(); private static final Vec3d ONE = new Vec3d(1, 1, 1); private static final int MAX_OVERWORLD_BUILD_HEIGHT = 319; private static final MinecraftClient client = MinecraftClient.getInstance(); + private static final BufferAllocator ALLOCATOR = new BufferAllocator(1536); public static void init() { WorldRenderEvents.AFTER_TRANSLUCENT.addPhaseOrdering(Event.DEFAULT_PHASE, TRANSLUCENT_DRAW); @@ -95,7 +98,7 @@ public class RenderHelper { matrices.push(); matrices.translate(pos.getX() - camera.getX(), pos.getY() - camera.getY(), pos.getZ() - camera.getZ()); - BeaconBlockEntityRendererInvoker.renderBeam(matrices, context.consumers(), context.tickDelta(), context.world().getTime(), 0, MAX_OVERWORLD_BUILD_HEIGHT, colorComponents); + BeaconBlockEntityRendererInvoker.renderBeam(matrices, context.consumers(), context.tickCounter().getTickDelta(true), context.world().getTime(), 0, MAX_OVERWORLD_BUILD_HEIGHT, ColorHelper.Argb.fromFloats(1f, colorComponents[0], colorComponents[1], colorComponents[2])); matrices.pop(); } @@ -110,7 +113,6 @@ public class RenderHelper { MatrixStack matrices = context.matrixStack(); Vec3d camera = context.camera().getPos(); Tessellator tessellator = RenderSystem.renderThreadTesselator(); - BufferBuilder buffer = tessellator.getBuffer(); RenderSystem.setShader(GameRenderer::getRenderTypeLinesProgram); RenderSystem.setShaderColor(1f, 1f, 1f, 1f); @@ -122,9 +124,9 @@ public class RenderHelper { matrices.push(); matrices.translate(-camera.getX(), -camera.getY(), -camera.getZ()); - buffer.begin(DrawMode.LINES, VertexFormats.LINES); + BufferBuilder buffer = tessellator.begin(DrawMode.LINES, VertexFormats.LINES); WorldRenderer.drawBox(matrices, buffer, box, colorComponents[0], colorComponents[1], colorComponents[2], 1f); - tessellator.draw(); + BufferRenderer.drawWithGlobalProgram(buffer.end()); matrices.pop(); RenderSystem.lineWidth(1f); @@ -156,7 +158,6 @@ public class RenderHelper { matrices.translate(-camera.x, -camera.y, -camera.z); Tessellator tessellator = RenderSystem.renderThreadTesselator(); - BufferBuilder buffer = tessellator.getBuffer(); Matrix4f positionMatrix = matrices.peek().getPositionMatrix(); Matrix3f normalMatrix = matrices.peek().getNormalMatrix(); @@ -172,7 +173,7 @@ public class RenderHelper { RenderSystem.enableDepthTest(); RenderSystem.depthFunc(throughWalls ? GL11.GL_ALWAYS : GL11.GL_LEQUAL); - buffer.begin(DrawMode.LINE_STRIP, VertexFormats.LINES); + BufferBuilder buffer = tessellator.begin(DrawMode.LINE_STRIP, VertexFormats.LINES); for (int i = 0; i < points.length; i++) { Vec3d nextPoint = points[i + 1 == points.length ? i - 1 : i + 1]; @@ -180,11 +181,10 @@ public class RenderHelper { buffer .vertex(positionMatrix, (float) points[i].getX(), (float) points[i].getY(), (float) points[i].getZ()) .color(colorComponents[0], colorComponents[1], colorComponents[2], alpha) - .normal(normalVec.x, normalVec.y, normalVec.z) - .next(); + .normal(normalVec.x, normalVec.y, normalVec.z); } - tessellator.draw(); + BufferRenderer.drawWithGlobalProgram(buffer.end()); matrices.pop(); GL11.glDisable(GL11.GL_LINE_SMOOTH); @@ -201,7 +201,6 @@ public class RenderHelper { matrices.translate(-camera.x, -camera.y, -camera.z); Tessellator tessellator = RenderSystem.renderThreadTesselator(); - BufferBuilder buffer = tessellator.getBuffer(); Matrix4f positionMatrix = matrices.peek().getPositionMatrix(); GL11.glEnable(GL11.GL_LINE_SMOOTH); @@ -219,22 +218,21 @@ public class RenderHelper { Vec3d offset = Vec3d.fromPolar(context.camera().getPitch(), context.camera().getYaw()); Vec3d cameraPoint = camera.add(offset); - buffer.begin(DrawMode.LINES, VertexFormats.LINES); + BufferBuilder buffer = tessellator.begin(DrawMode.LINES, VertexFormats.LINES); + Vector3f normal = new Vector3f((float) offset.x, (float) offset.y, (float) offset.z); buffer .vertex(positionMatrix, (float) cameraPoint.x , (float) cameraPoint.y, (float) cameraPoint.z) .color(colorComponents[0], colorComponents[1], colorComponents[2], alpha) - .normal(normal.x, normal.y, normal.z) - .next(); + .normal(normal.x, normal.y, normal.z); buffer .vertex(positionMatrix, (float) point.getX(), (float) point.getY(), (float) point.getZ()) .color(colorComponents[0], colorComponents[1], colorComponents[2], alpha) - .normal(normal.x, normal.y, normal.z) - .next(); + .normal(normal.x, normal.y, normal.z); - tessellator.draw(); + BufferRenderer.drawWithGlobalProgram(buffer.end()); matrices.pop(); GL11.glDisable(GL11.GL_LINE_SMOOTH); @@ -250,7 +248,6 @@ public class RenderHelper { positionMatrix.translate((float) -camera.x, (float) -camera.y, (float) -camera.z); Tessellator tessellator = RenderSystem.renderThreadTesselator(); - BufferBuilder buffer = tessellator.getBuffer(); RenderSystem.setShader(GameRenderer::getPositionColorProgram); RenderSystem.setShaderColor(1f, 1f, 1f, 1f); @@ -259,11 +256,11 @@ public class RenderHelper { RenderSystem.disableCull(); RenderSystem.depthFunc(throughWalls ? GL11.GL_ALWAYS : GL11.GL_LEQUAL); - buffer.begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR); + BufferBuilder buffer = tessellator.begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR); for (int i = 0; i < 4; i++) { - buffer.vertex(positionMatrix, (float) points[i].getX(), (float) points[i].getY(), (float) points[i].getZ()).color(colorComponents[0], colorComponents[1], colorComponents[2], alpha).next(); + buffer.vertex(positionMatrix, (float) points[i].getX(), (float) points[i].getY(), (float) points[i].getZ()).color(colorComponents[0], colorComponents[1], colorComponents[2], alpha); } - tessellator.draw(); + BufferRenderer.drawWithGlobalProgram(buffer.end()); RenderSystem.enableCull(); RenderSystem.depthFunc(GL11.GL_LEQUAL); @@ -301,9 +298,7 @@ public class RenderHelper { float xOffset = -textRenderer.getWidth(text) / 2f; - Tessellator tessellator = RenderSystem.renderThreadTesselator(); - BufferBuilder buffer = tessellator.getBuffer(); - VertexConsumerProvider.Immediate consumers = VertexConsumerProvider.immediate(buffer); + VertexConsumerProvider.Immediate consumers = VertexConsumerProvider.immediate(ALLOCATOR); RenderSystem.depthFunc(throughWalls ? GL11.GL_ALWAYS : GL11.GL_LEQUAL); diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractPopupScreen.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractPopupScreen.java index e7a3e8b2..903611ae 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractPopupScreen.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractPopupScreen.java @@ -12,13 +12,11 @@ import net.minecraft.util.Identifier; import org.jetbrains.annotations.Nullable; import org.lwjgl.glfw.GLFW; -import java.util.function.Consumer; - /** * A more bare-bones version of Vanilla's Popup Screen. Meant to be extended. */ public class AbstractPopupScreen extends Screen { - private static final Identifier BACKGROUND_TEXTURE = new Identifier("popup/background"); + private static final Identifier BACKGROUND_TEXTURE = Identifier.ofVanilla("popup/background"); private final Screen backgroundScreen; protected AbstractPopupScreen(Text title, Screen backgroundScreen) { diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/SideTabButtonWidget.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/SideTabButtonWidget.java index 87da0d36..889d3b02 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/gui/SideTabButtonWidget.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/SideTabButtonWidget.java @@ -8,7 +8,7 @@ import net.minecraft.util.Identifier; import org.jetbrains.annotations.NotNull; public class SideTabButtonWidget extends ToggleButtonWidget { - private static final ButtonTextures TEXTURES = new ButtonTextures(new Identifier("recipe_book/tab"), new Identifier("recipe_book/tab_selected")); + private static final ButtonTextures TEXTURES = new ButtonTextures(Identifier.ofVanilla("recipe_book/tab"), Identifier.ofVanilla("recipe_book/tab_selected")); protected @NotNull ItemStack icon; public void setIcon(@NotNull ItemStack icon) { diff --git a/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java b/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java index c21485e2..cb754308 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java @@ -9,6 +9,7 @@ import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallba import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.render.RenderTickCounter; import net.minecraft.util.math.MathHelper; import java.util.LinkedHashSet; @@ -81,8 +82,8 @@ public class TitleContainer { titles.remove(title); } - private static void render(DrawContext context, float tickDelta) { - render(context, titles, SkyblockerConfigManager.get().uiAndVisuals.titleContainer.x, SkyblockerConfigManager.get().uiAndVisuals.titleContainer.y, tickDelta); + private static void render(DrawContext context, RenderTickCounter tickCounter) { + render(context, titles, SkyblockerConfigManager.get().uiAndVisuals.titleContainer.x, SkyblockerConfigManager.get().uiAndVisuals.titleContainer.y, tickCounter.getTickDelta(true)); } protected static void render(DrawContext context, Set<Title> titles, int xPos, int yPos, float tickDelta) { |