aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerScreen.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockerEMIPlugin.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/config/ConfigUtils.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/QuickNavigationConfig.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix2QuickNav.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/events/HudRenderEvents.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ComponentHolderMixin.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/accessors/BeaconBlockEntityRendererInvoker.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionViewScreen.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/AuctionTypeWidget.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/CategoryTabWidget.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/SortWidget.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleAnnouncementScreen.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/KuudraWaypoints.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonTextures.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/CreeperBeams.java13
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/IceFill.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/Silverfish.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/TicTacToe.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/boulder/Boulder.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/waterboard/Waterboard.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/ColorTerminal.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/end/EnderNodes.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBarsConfigScreen.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java14
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java17
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorPreviewTooltipComponent.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListTab.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemStackBuilder.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/SearchResultsWidget.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/rift/EffigyWaypoints.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/rift/EnigmaSouls.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/rift/MirrorverseWaypoints.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/OverlayScreen.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/waypoint/FairySouls.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/waypoint/MythologicalRitual.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/waypoint/Relics.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsListWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/ColorUtils.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java28
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java53
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractPopupScreen.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/gui/SideTabButtonWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java5
-rw-r--r--src/main/resources/fabric.mod.json10
75 files changed, 240 insertions, 199 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..86e8d23e 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.set(DataComponentTypes.ENCHANTMENT_GLINT_OVERRIDE, true);
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/CustomArmorTrims.java b/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java
index 65e1b138..6170eab1 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java
@@ -47,14 +47,14 @@ public class CustomArmorTrims {
}
private static void initializeTrimCache() {
- ClientPlayerEntity player = MinecraftClient.getInstance().player;
+ MinecraftClient client = MinecraftClient.getInstance();
FabricLoader loader = FabricLoader.getInstance();
- if (trimsInitialized || (player == null && !Debug.debugEnabled())) {
+ if (trimsInitialized || (client == null && !Debug.debugEnabled())) {
return;
}
try {
TRIMS_CACHE.clear();
- RegistryWrapper.WrapperLookup wrapperLookup = getWrapperLookup(loader, player);
+ RegistryWrapper.WrapperLookup wrapperLookup = getWrapperLookup(loader, client);
for (Reference<ArmorTrimMaterial> material : wrapperLookup.getWrapperOrThrow(RegistryKeys.TRIM_MATERIAL).streamEntries().toList()) {
for (Reference<ArmorTrimPattern> pattern : wrapperLookup.getWrapperOrThrow(RegistryKeys.TRIM_PATTERN).streamEntries().toList()) {
ArmorTrim trim = new ArmorTrim(material, pattern);
@@ -70,8 +70,8 @@ public class CustomArmorTrims {
}
}
- private static RegistryWrapper.WrapperLookup getWrapperLookup(FabricLoader loader, ClientPlayerEntity player) {
- return !Debug.debugEnabled() ? player.networkHandler.getRegistryManager() : BuiltinRegistries.createWrapperLookup();
+ private static RegistryWrapper.WrapperLookup getWrapperLookup(FabricLoader loader, MinecraftClient client) {
+ return client != null && client.getNetworkHandler() != null && client.getNetworkHandler().getRegistryManager() != null ? client.getNetworkHandler().getRegistryManager() : BuiltinRegistries.createWrapperLookup();
}
private static void registerCommand(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess registryAccess) {
@@ -140,8 +140,8 @@ public class CustomArmorTrims {
public record ArmorTrimId(@SerialEntry Identifier material, @SerialEntry Identifier pattern) implements Pair<Identifier, Identifier> {
public static final Codec<ArmorTrimId> CODEC = RecordCodecBuilder.create(instance -> instance.group(
- Identifier.CODEC.fieldOf("material").forGetter(ArmorTrimId::material),
- Identifier.CODEC.fieldOf("pattern").forGetter(ArmorTrimId::pattern))
+ Identifier.CODEC.fieldOf("material").forGetter(ArmorTrimId::material),
+ Identifier.CODEC.fieldOf("pattern").forGetter(ArmorTrimId::pattern))
.apply(instance, ArmorTrimId::new));
@Override
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..e7cc61ae 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,7 +154,7 @@ public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingT
public void clearCraftingSlots() {}
@Override
- public boolean matches(RecipeEntry<? extends Recipe<SimpleInventory>> recipe) {
+ 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..cad1eaab 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,11 @@ public class BackpackPreview {
}
}
+ private static RegistryOps<NbtElement> getOps() {
+ MinecraftClient client = MinecraftClient.getInstance();
+ return client != null && client.getNetworkHandler() != null && client.getNetworkHandler().getRegistryManager() != null ? client.getNetworkHandler().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 +116,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/ItemListTab.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListTab.java
index 4109246d..89d41290 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListTab.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListTab.java
@@ -72,14 +72,16 @@ public class ItemListTab extends ItemListWidget.TabContainerWidget {
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (!visible) return false;
- if (this.searchField.mouseClicked(mouseX, mouseY, button)) {
+ if (this.searchField.mouseClicked(mouseX, mouseY, button) && this.results != null) {
this.results.closeRecipeView();
this.searchField.setFocused(true);
return true;
- } else {
+ } else if (results != null) {
this.searchField.setFocused(false);
- return this.results.mouseClicked(mouseX, mouseY, button);
+ this.results.mouseClicked(mouseX, mouseY, button);
}
+
+ return false;
}
@Override
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/ItemRepository.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java
index b9e45af1..4dca91d6 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java
@@ -51,9 +51,13 @@ public class ItemRepository {
}
private static void loadItem(NEUItem item) {
- ItemStack stack = ItemStackBuilder.fromNEUItem(item);
- items.add(stack);
- itemsMap.put(item.getSkyblockItemId(), stack);
+ try {
+ ItemStack stack = ItemStackBuilder.fromNEUItem(item);
+ items.add(stack);
+ itemsMap.put(item.getSkyblockItemId(), stack);
+ } catch (Exception e) {
+ LOGGER.error("[Skyblocker Item Repo Loader] Failed to load item, please report this! Skyblock Id: {}", item.getSkyblockItemId(), e);
+ }
}
private static void loadRecipes(NEUItem item) {
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..7eda7646 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.of(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..2c8f5e4a 100644
--- a/src/main/java/de/hysky/skyblocker/utils/ColorUtils.java
+++ b/src/main/java/de/hysky/skyblocker/utils/ColorUtils.java
@@ -1,8 +1,11 @@
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.
+ *
* @param color The color to get the components of.
* @return An array of the color's components as floats.
*/
@@ -13,4 +16,11 @@ 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 getFloatComponents(dye.getEntityColor());
+ }
}
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..a9b227a1 100644
--- a/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java
+++ b/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java
@@ -1,25 +1,26 @@
package de.hysky.skyblocker.utils.datafixer;
import java.util.Arrays;
-import java.util.List;
import java.util.Objects;
import java.util.Optional;
import com.mojang.brigadier.StringReader;
import com.mojang.serialization.Dynamic;
+import net.minecraft.client.MinecraftClient;
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 +31,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<>(getRegistryLookup().getOps(NbtOps.INSTANCE), nbt), ITEM_NBT_DATA_VERSION, ITEM_COMPONENTS_DATA_VERSION);
return ItemStack.CODEC.parse(dynamic).getOrThrow();
}
@@ -44,11 +45,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 = getRegistryLookup().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,17 +67,26 @@ 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(getRegistryLookup());
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) {}
return ItemStack.EMPTY;
}
+
+ /**
+ * Tries to get the dynamic registry manager instance currently in use or else returns {@link #LOOKUP}
+ */
+ public static WrapperLookup getRegistryLookup() {
+ MinecraftClient client = MinecraftClient.getInstance();
+ return client != null && client.getNetworkHandler() != null && client.getNetworkHandler().getRegistryManager() != null ? client.getNetworkHandler().getRegistryManager() : LOOKUP;
+ }
}
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..a5b9bf6b 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 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);
@@ -290,20 +287,18 @@ public class RenderHelper {
Matrix4f positionMatrix = new Matrix4f();
Camera camera = context.camera();
Vec3d cameraPos = camera.getPos();
- TextRenderer textRenderer = client.textRenderer;
+ TextRenderer textRenderer = CLIENT.textRenderer;
scale *= 0.025f;
positionMatrix
.translate((float) (pos.getX() - cameraPos.getX()), (float) (pos.getY() - cameraPos.getY()), (float) (pos.getZ() - cameraPos.getZ()))
.rotate(camera.getRotation())
- .scale(-scale, -scale, scale);
+ .scale(scale, -scale, scale);
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);
@@ -361,8 +356,8 @@ public class RenderHelper {
}
private static void playNotificationSound() {
- if (client.player != null) {
- client.player.playSound(SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, 100f, 0.1f);
+ if (CLIENT.player != null) {
+ CLIENT.player.playSound(SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, 100f, 0.1f);
}
}
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) {
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index 5a7732a0..e46085de 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -33,14 +33,14 @@
],
"accessWidener": "skyblocker.accesswidener",
"depends": {
- "fabricloader": ">=0.15.10",
- "fabric-api": ">=0.100.0+1.20.6",
- "yet_another_config_lib_v3": ">=3.4.4+1.20.6",
- "minecraft": "~1.20.5",
+ "fabricloader": ">=0.15.11",
+ "fabric-api": ">=0.100.1+1.21",
+ "yet_another_config_lib_v3": ">=3.5.0+1.21",
+ "minecraft": "~1.21",
"java": ">=21"
},
"conflicts": {
- "immediatelyfast": "<=1.2.17+1.20.6"
+ "immediatelyfast": "<=1.2.18+1.21"
},
"breaks": {
"forcecloseworldloadingscreen": "<=2.2.0"