diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d07e39..8676271 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +**1.0.28** +* Fix Server Crash + **1.0.27** * Use DataTracker diff --git a/gradle.properties b/gradle.properties index e1a8a53..902d0ec 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ org.gradle.jvmargs = -Xmx1G fabric_loader_version = 0.8.8+build.202 # Mod Properties - mod_version = 1.0.27 + mod_version = 1.0.28 maven_group = com.thebrokenrail archives_base_name = reliccraft diff --git a/src/main/java/com/thebrokenrail/reliccraft/client/RelicCraftClient.java b/src/main/java/com/thebrokenrail/reliccraft/client/RelicCraftClient.java index 2b304b8..ff2d208 100644 --- a/src/main/java/com/thebrokenrail/reliccraft/client/RelicCraftClient.java +++ b/src/main/java/com/thebrokenrail/reliccraft/client/RelicCraftClient.java @@ -2,6 +2,7 @@ package com.thebrokenrail.reliccraft.client; import com.thebrokenrail.reliccraft.RelicCraft; import com.thebrokenrail.reliccraft.client.entity.RelicEntityRenderer; +import com.thebrokenrail.reliccraft.item.DragonEggHolderBlockItem; import com.thebrokenrail.reliccraft.item.RelicItem; import com.thebrokenrail.reliccraft.packet.UpdateTimeDilationS2CPacket; import net.fabricmc.api.ClientModInitializer; @@ -75,6 +76,8 @@ public class RelicCraftClient implements ClientModInitializer { @Override public void onInitializeClient() { + DragonEggHolderBlockItem.initClient(); + ColorProviderRegistry.ITEM.register((stack, tintIndex) -> tintIndex > 0 ? -1 : getStackColor(stack), RelicCraft.ORB_ITEM); ColorProviderRegistry.ITEM.register((stack, tintIndex) -> tintIndex > 0 ? -1 : getStackColor(stack), RelicCraft.STAFF_ITEM); diff --git a/src/main/java/com/thebrokenrail/reliccraft/item/DragonEggHolderBlockItem.java b/src/main/java/com/thebrokenrail/reliccraft/item/DragonEggHolderBlockItem.java index e06e30e..47d6e8f 100644 --- a/src/main/java/com/thebrokenrail/reliccraft/item/DragonEggHolderBlockItem.java +++ b/src/main/java/com/thebrokenrail/reliccraft/item/DragonEggHolderBlockItem.java @@ -2,6 +2,8 @@ package com.thebrokenrail.reliccraft.item; import com.thebrokenrail.reliccraft.RelicCraft; import com.thebrokenrail.reliccraft.mixin.ModelPredicateProviderRegistryHook; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.block.Block; import net.minecraft.inventory.Inventories; import net.minecraft.item.BlockItem; @@ -11,19 +13,31 @@ import net.minecraft.util.Identifier; import net.minecraft.util.Rarity; import net.minecraft.util.collection.DefaultedList; +import java.util.ArrayList; +import java.util.List; + public class DragonEggHolderBlockItem extends BlockItem { + private static final List list = new ArrayList<>(); + public DragonEggHolderBlockItem(Block block) { super(block, new Settings().rarity(Rarity.UNCOMMON).group(RelicCraft.ITEM_GROUP)); - ModelPredicateProviderRegistryHook.callRegister(this, new Identifier(RelicCraft.NAMESPACE, "active"), (stack, world, entity) -> { - CompoundTag tag = stack.getSubTag("BlockEntityTag"); - if (tag != null) { - DefaultedList list = DefaultedList.ofSize(1, ItemStack.EMPTY); - Inventories.fromTag(tag, list); - if (!list.get(0).isEmpty()) { - return 1; + list.add(this); + } + + @Environment(EnvType.CLIENT) + public static void initClient() { + for (DragonEggHolderBlockItem item : list) { + ModelPredicateProviderRegistryHook.callRegister(item, new Identifier(RelicCraft.NAMESPACE, "active"), (stack, world, entity) -> { + CompoundTag tag = stack.getSubTag("BlockEntityTag"); + if (tag != null) { + DefaultedList list = DefaultedList.ofSize(1, ItemStack.EMPTY); + Inventories.fromTag(tag, list); + if (!list.get(0).isEmpty()) { + return 1; + } } - } - return 0; - }); + return 0; + }); + } } }