From 9929e982c1e89f7f1b2b81df42d5a495e635368d Mon Sep 17 00:00:00 2001 From: lucsoft Date: Sun, 10 Jan 2021 17:44:12 +0100 Subject: [PATCH] Fixed errors when booting in dedicated server environment. --- .gitignore | 4 ++++ src/main/java/li/cil/oc2/client/ClientSetup.java | 3 +++ .../java/li/cil/oc2/common/block/ComputerBlock.java | 12 +++++++----- .../li/cil/oc2/common/bus/device/DeviceTypes.java | 5 +++-- .../li/cil/oc2/common/item/AbstractStorageItem.java | 11 ++++++++--- 5 files changed, 25 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index c0e5bc52..ba91e6c4 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,7 @@ logs # Files from Forge MDK forge*changelog.txt /src/generated/ + +#vscode + +.vscode \ No newline at end of file diff --git a/src/main/java/li/cil/oc2/client/ClientSetup.java b/src/main/java/li/cil/oc2/client/ClientSetup.java index ff1671f7..ce5ed50c 100644 --- a/src/main/java/li/cil/oc2/client/ClientSetup.java +++ b/src/main/java/li/cil/oc2/client/ClientSetup.java @@ -6,6 +6,7 @@ import li.cil.oc2.client.model.BusCableModelLoader; import li.cil.oc2.client.renderer.NetworkCableRenderer; import li.cil.oc2.client.renderer.tileentity.ComputerTileEntityRenderer; import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.DeviceTypes; import li.cil.oc2.common.container.Containers; import li.cil.oc2.common.tileentity.TileEntities; import net.minecraft.client.gui.ScreenManager; @@ -15,12 +16,14 @@ import net.minecraftforge.client.model.ModelLoaderRegistry; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; public final class ClientSetup { @SubscribeEvent public static void handleSetupEvent(final FMLClientSetupEvent event) { NetworkCableRenderer.initialize(); + FMLJavaModLoadingContext.get().getModEventBus().addListener(DeviceTypes::handleTextureStitchEvent); ScreenManager.registerFactory(Containers.COMPUTER_CONTAINER.get(), ComputerContainerScreen::new); ClientRegistry.bindTileEntityRenderer(TileEntities.COMPUTER_TILE_ENTITY.get(), ComputerTileEntityRenderer::new); diff --git a/src/main/java/li/cil/oc2/common/block/ComputerBlock.java b/src/main/java/li/cil/oc2/common/block/ComputerBlock.java index ddad8e21..7ff50b92 100644 --- a/src/main/java/li/cil/oc2/common/block/ComputerBlock.java +++ b/src/main/java/li/cil/oc2/common/block/ComputerBlock.java @@ -35,6 +35,7 @@ import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.IBlockReader; import net.minecraft.world.IWorldReader; import net.minecraft.world.World; @@ -162,8 +163,8 @@ public final class ComputerBlock extends HorizontalBlock { final ComputerTileEntity computer = (ComputerTileEntity) tileEntity; final ItemStack heldItem = player.getHeldItem(hand); if (Wrenches.isWrench(heldItem)) { - if (player instanceof ServerPlayerEntity) { - openContainerScreen(computer, (ServerPlayerEntity) player); + if (!world.isRemote() && player instanceof ServerPlayerEntity) { + openContainerScreen(computer, player); } } else { if (player.isSneaking()) { @@ -210,15 +211,16 @@ public final class ComputerBlock extends HorizontalBlock { /////////////////////////////////////////////////////////////////// + @OnlyIn(Dist.CLIENT) private void openTerminalScreen(final ComputerTileEntity computer) { Minecraft.getInstance().displayGuiScreen(new TerminalScreen(computer, getTranslatedName())); } - private void openContainerScreen(final ComputerTileEntity tileEntity, final ServerPlayerEntity player) { - NetworkHooks.openGui(player, new INamedContainerProvider() { + private void openContainerScreen(final ComputerTileEntity tileEntity, final PlayerEntity player) { + NetworkHooks.openGui((ServerPlayerEntity) player, new INamedContainerProvider() { @Override public ITextComponent getDisplayName() { - return getTranslatedName(); + return new TranslationTextComponent(getTranslationKey()); } @Override diff --git a/src/main/java/li/cil/oc2/common/bus/device/DeviceTypes.java b/src/main/java/li/cil/oc2/common/bus/device/DeviceTypes.java index 1bae67dd..311d35c6 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/DeviceTypes.java +++ b/src/main/java/li/cil/oc2/common/bus/device/DeviceTypes.java @@ -6,8 +6,10 @@ import li.cil.oc2.common.bus.device.util.DeviceTypeImpl; import net.minecraft.inventory.container.PlayerContainer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.TranslationTextComponent; +import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.fml.loading.FMLEnvironment; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.IForgeRegistry; import net.minecraftforge.registries.RegistryBuilder; @@ -31,7 +33,6 @@ public final class DeviceTypes { DEVICE_TYPES.register(FMLJavaModLoadingContext.get().getModEventBus()); - FMLJavaModLoadingContext.get().getModEventBus().addListener(DeviceTypes::handleTextureStitchEvent); } /////////////////////////////////////////////////////////////////// @@ -43,7 +44,7 @@ public final class DeviceTypes { )); } - private static void handleTextureStitchEvent(final TextureStitchEvent.Pre event) { + public static void handleTextureStitchEvent(final TextureStitchEvent.Pre event) { if (event.getMap().getTextureLocation() != PlayerContainer.LOCATION_BLOCKS_TEXTURE) { return; } diff --git a/src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java b/src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java index f7e7643b..95ba2954 100644 --- a/src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java +++ b/src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java @@ -4,7 +4,6 @@ import li.cil.oc2.api.API; import li.cil.oc2.common.util.ItemStackUtils; import li.cil.oc2.common.util.NBTTagIds; import li.cil.oc2.common.util.TextFormatUtils; -import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemModelsProperties; @@ -13,6 +12,9 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; +import net.minecraft.world.World; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.fml.loading.FMLEnvironment; public abstract class AbstractStorageItem extends Item { public static final ResourceLocation CAPACITY_PROPERTY = new ResourceLocation(API.MOD_ID, "capacity"); @@ -49,7 +51,10 @@ public abstract class AbstractStorageItem extends Item { public AbstractStorageItem(final Properties properties, final int defaultCapacity) { super(properties); this.defaultCapacity = defaultCapacity; - ItemModelsProperties.registerProperty(this, CAPACITY_PROPERTY, AbstractStorageItem::getCapacityProperty); + + if (FMLEnvironment.dist == Dist.CLIENT) { + ItemModelsProperties.registerProperty(this, CAPACITY_PROPERTY, AbstractStorageItem::getCapacityProperty); + } } /////////////////////////////////////////////////////////////////// @@ -71,7 +76,7 @@ public abstract class AbstractStorageItem extends Item { /////////////////////////////////////////////////////////////////// - private static float getCapacityProperty(final ItemStack stack, final ClientWorld world, final LivingEntity entity) { + private static float getCapacityProperty(final ItemStack stack, final World world, final LivingEntity entity) { return getCapacity(stack); } }