From c458a42575d51169d20d7171dcaadd8504356b53 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Thu, 18 Jan 2024 00:20:47 +0200 Subject: Fix a dedicated server crash --- .../lv/enes/mc/eris_alchemy/ErisAlchemyRegistry.java | 16 ---------------- .../block/entity/AlchemicalChestEntity.java | 12 ++++++++++-- .../mc/eris_alchemy/block/entity/ChestLikeEntity.java | 10 +++++----- .../block/entity/EnergyCondenserEntity.java | 12 ++++++++++-- .../eris_alchemy/client/ErisAlchemyClientRegistry.java | 18 ++++++++++++++++++ .../enes/mc/eris_alchemy/mixin/client/SheetsMixin.java | 2 +- 6 files changed, 44 insertions(+), 26 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemyRegistry.java b/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemyRegistry.java index e0f6e31..ea17bbb 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemyRegistry.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemyRegistry.java @@ -8,8 +8,6 @@ import lv.enes.mc.eris_alchemy.menu.AlchemicalChestMenu; import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu; import lv.enes.mc.eris_alchemy.recipe.CovalenceRepair; import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerType; -import net.minecraft.client.renderer.Sheets; -import net.minecraft.client.resources.model.Material; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.flag.FeatureFlags; @@ -125,20 +123,6 @@ public final class ErisAlchemyRegistry { } } - public static final class Materials { - private Materials() {} - - public static final Material ALCHEMICAL_CHEST = new Material( - Sheets.CHEST_SHEET, - new ResourceLocation(ErisAlchemy.ID, "entity/chest/alchemical_chest") - ); - - public static final Material ENERGY_CONDENSER = new Material( - Sheets.CHEST_SHEET, - new ResourceLocation(ErisAlchemy.ID, "entity/chest/energy_condenser") - ); - } - public static final class Menus { private Menus() {} diff --git a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/AlchemicalChestEntity.java b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/AlchemicalChestEntity.java index 659e4b1..4fff3fa 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/AlchemicalChestEntity.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/AlchemicalChestEntity.java @@ -3,15 +3,17 @@ package lv.enes.mc.eris_alchemy.block.entity; import jakarta.annotation.Nonnull; import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.BlockEntities; import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Blocks; -import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Materials; +import lv.enes.mc.eris_alchemy.client.ErisAlchemyClientRegistry.Materials; import lv.enes.mc.eris_alchemy.menu.AlchemicalChestMenu; import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; +import net.minecraft.client.resources.model.Material; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; +import org.quiltmc.loader.api.minecraft.ClientOnly; public class AlchemicalChestEntity extends ChestLikeEntity { private final static int WIDTH = 13; @@ -20,7 +22,7 @@ public class AlchemicalChestEntity extends ChestLikeEntity { private final NonNullList items = NonNullList.withSize(WIDTH * HEIGHT, ItemStack.EMPTY); public AlchemicalChestEntity(BlockPos pos, BlockState state) { - super(BlockEntities.ALCHEMICAL_CHEST, pos, state, Materials.ALCHEMICAL_CHEST); + super(BlockEntities.ALCHEMICAL_CHEST, pos, state); } @Nonnull @@ -35,6 +37,12 @@ public class AlchemicalChestEntity extends ChestLikeEntity { return items; } + @ClientOnly + @Nonnull + public Material getMaterial() { + return Materials.ALCHEMICAL_CHEST; + } + @Nonnull @Override protected Block getParent() { diff --git a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/ChestLikeEntity.java b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/ChestLikeEntity.java index 8f40d26..09aecc7 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/ChestLikeEntity.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/ChestLikeEntity.java @@ -18,12 +18,11 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.*; import net.minecraft.world.level.block.state.BlockState; +import org.quiltmc.loader.api.minecraft.ClientOnly; public abstract class ChestLikeEntity extends BaseContainerBlockEntity implements LidBlockEntity { protected static final int EVENT_INTERACTED = 1; - public final Material material; - protected final ChestLidController lidController = new ChestLidController(); protected final ContainerOpenersCounter openersCounter = new ContainerOpenersCounter() { @Override @@ -53,16 +52,17 @@ public abstract class ChestLikeEntity extends BaseContainerBlockEntity implement public ChestLikeEntity( BlockEntityType type, BlockPos pos, - BlockState state, - Material material + BlockState state ) { super(type, pos, state); - this.material = material; } @Nonnull protected abstract NonNullList getItems(); + @ClientOnly + @Nonnull + public abstract Material getMaterial(); @Nonnull protected abstract Block getParent(); diff --git a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/EnergyCondenserEntity.java b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/EnergyCondenserEntity.java index 432ba6f..33a6250 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/EnergyCondenserEntity.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/EnergyCondenserEntity.java @@ -4,12 +4,13 @@ import jakarta.annotation.Nonnull; import lv.enes.mc.eris_alchemy.Emc; import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.BlockEntities; import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Blocks; -import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Materials; +import lv.enes.mc.eris_alchemy.client.ErisAlchemyClientRegistry; import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu; import lv.enes.mc.eris_alchemy.utils.ContainerOpenersCounterUtil; import lv.enes.mc.eris_alchemy.utils.SyncedValue.SyncedDouble; import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; +import net.minecraft.client.resources.model.Material; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; @@ -20,6 +21,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; +import org.quiltmc.loader.api.minecraft.ClientOnly; import java.util.stream.IntStream; @@ -32,7 +34,7 @@ public class EnergyCondenserEntity extends ChestLikeEntity implements ExtendedSc public final SyncedDouble storedEmc = new SyncedDouble(0); public EnergyCondenserEntity(BlockPos pos, BlockState state) { - super(BlockEntities.ENERGY_CONDENSER, pos, state, Materials.ENERGY_CONDENSER); + super(BlockEntities.ENERGY_CONDENSER, pos, state); } @Nonnull @@ -47,6 +49,12 @@ public class EnergyCondenserEntity extends ChestLikeEntity implements ExtendedSc return items; } + @ClientOnly + @Nonnull + public Material getMaterial() { + return ErisAlchemyClientRegistry.Materials.ENERGY_CONDENSER; + } + @Nonnull @Override protected Block getParent() { diff --git a/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClientRegistry.java b/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClientRegistry.java index 30c6690..c20134a 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClientRegistry.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClientRegistry.java @@ -1,13 +1,17 @@ package lv.enes.mc.eris_alchemy.client; +import lv.enes.mc.eris_alchemy.ErisAlchemy; import lv.enes.mc.eris_alchemy.block.entity.AlchemicalChestEntity; import lv.enes.mc.eris_alchemy.block.entity.EnergyCondenserEntity; import net.fabricmc.fabric.api.client.rendering.v1.BuiltinItemRendererRegistry.DynamicItemRenderer; import net.minecraft.client.gui.screens.MenuScreens.ScreenConstructor; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.MenuAccess; +import net.minecraft.client.renderer.Sheets; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.renderer.blockentity.ChestRenderer; +import net.minecraft.client.resources.model.Material; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.MenuType; import net.minecraft.world.level.ItemLike; @@ -84,6 +88,20 @@ public final class ErisAlchemyClientRegistry { } } + public static final class Materials { + private Materials() {} + + public static final Material ALCHEMICAL_CHEST = new Material( + Sheets.CHEST_SHEET, + new ResourceLocation(ErisAlchemy.ID, "entity/chest/alchemical_chest") + ); + + public static final Material ENERGY_CONDENSER = new Material( + Sheets.CHEST_SHEET, + new ResourceLocation(ErisAlchemy.ID, "entity/chest/energy_condenser") + ); + } + public static final class MenuScreens { private MenuScreens() {} diff --git a/src/main/java/lv/enes/mc/eris_alchemy/mixin/client/SheetsMixin.java b/src/main/java/lv/enes/mc/eris_alchemy/mixin/client/SheetsMixin.java index bc9e7b8..1f32d53 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/mixin/client/SheetsMixin.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/mixin/client/SheetsMixin.java @@ -24,7 +24,7 @@ public abstract class SheetsMixin { CallbackInfoReturnable cir ) { if (entity instanceof ChestLikeEntity chestlike) { - cir.setReturnValue(chestlike.material); + cir.setReturnValue(chestlike.getMaterial()); } } } -- cgit v1.2.3