From e6094a59fa0223a34fe678739fa671314cfb0fbe Mon Sep 17 00:00:00 2001 From: SquidDev Date: Mon, 29 Apr 2019 08:04:24 +0100 Subject: [PATCH] Get us booting on a dedicated server It doesn't appear that blocks are syncing, so we'll need to look into that. Hopefully fixes #193 --- src/main/java/dan200/computercraft/ComputerCraft.java | 3 ++- .../client/proxy/ComputerCraftProxyClient.java | 4 ++++ .../computercraft/shared/network/NetworkHandler.java | 7 ++++++- .../shared/proxy/ComputerCraftProxyCommon.java | 6 ------ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/dan200/computercraft/ComputerCraft.java b/src/main/java/dan200/computercraft/ComputerCraft.java index 9ca323ac8..1fc044cb4 100644 --- a/src/main/java/dan200/computercraft/ComputerCraft.java +++ b/src/main/java/dan200/computercraft/ComputerCraft.java @@ -36,6 +36,7 @@ import dan200.computercraft.shared.turtle.items.ItemTurtle; import dan200.computercraft.shared.turtle.upgrades.*; import net.fabricmc.api.EnvType; import net.fabricmc.api.ModInitializer; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.resource.ReloadableResourceManager; import net.minecraft.util.Identifier; import org.apache.logging.log4j.LogManager; @@ -196,7 +197,7 @@ public final class ComputerCraft implements ModInitializer public void onInitialize() { ComputerCraftProxyCommon.setup(); - if( net.fabricmc.loader.api.FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT ) + if( FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT ) { ComputerCraftProxyClient.setup(); } diff --git a/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java b/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java index 63c0ed324..d2fd4d5bb 100644 --- a/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java +++ b/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java @@ -7,6 +7,7 @@ package dan200.computercraft.client.proxy; import dan200.computercraft.ComputerCraft; +import dan200.computercraft.client.FrameInfo; import dan200.computercraft.client.ClientRegistry; import dan200.computercraft.client.gui.*; import dan200.computercraft.client.render.TileEntityCableRenderer; @@ -24,6 +25,7 @@ import dan200.computercraft.shared.turtle.inventory.ContainerTurtle; import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry; import net.fabricmc.fabric.api.client.render.BlockEntityRendererRegistry; import net.fabricmc.fabric.api.event.client.ClientSpriteRegistryCallback; +import net.fabricmc.fabric.api.event.client.ClientTickCallback; public final class ComputerCraftProxyClient { @@ -42,6 +44,8 @@ public final class ComputerCraftProxyClient ModelLoadingRegistry.INSTANCE.registerResourceProvider( loader -> ( name, context ) -> TurtleModelLoader.INSTANCE.accepts( name ) ? TurtleModelLoader.INSTANCE.loadModel( name ) : null ); + + ClientTickCallback.EVENT.register( client -> FrameInfo.onTick() ); } private static void registerContainers() diff --git a/src/main/java/dan200/computercraft/shared/network/NetworkHandler.java b/src/main/java/dan200/computercraft/shared/network/NetworkHandler.java index a33a6764c..5f58f2338 100644 --- a/src/main/java/dan200/computercraft/shared/network/NetworkHandler.java +++ b/src/main/java/dan200/computercraft/shared/network/NetworkHandler.java @@ -17,6 +17,8 @@ import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import net.fabricmc.fabric.api.network.ClientSidePacketRegistry; import net.fabricmc.fabric.api.network.PacketContext; import net.fabricmc.fabric.api.network.ServerSidePacketRegistry; +import net.fabricmc.api.EnvType; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.packet.CustomPayloadS2CPacket; import net.minecraft.entity.player.PlayerEntity; @@ -45,8 +47,11 @@ public final class NetworkHandler public static void setup() { - ClientSidePacketRegistry.INSTANCE.register( ID, NetworkHandler::receive ); ServerSidePacketRegistry.INSTANCE.register( ID, NetworkHandler::receive ); + if( FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT ) + { + ClientSidePacketRegistry.INSTANCE.register( ID, NetworkHandler::receive ); + } // Server messages registerMainThread( 0, ComputerActionServerMessage::new ); diff --git a/src/main/java/dan200/computercraft/shared/proxy/ComputerCraftProxyCommon.java b/src/main/java/dan200/computercraft/shared/proxy/ComputerCraftProxyCommon.java index 51bbf65d2..bb7570b68 100644 --- a/src/main/java/dan200/computercraft/shared/proxy/ComputerCraftProxyCommon.java +++ b/src/main/java/dan200/computercraft/shared/proxy/ComputerCraftProxyCommon.java @@ -11,7 +11,6 @@ import dan200.computercraft.api.ComputerCraftAPI; import dan200.computercraft.api.media.IMedia; import dan200.computercraft.api.peripheral.IPeripheralTile; import dan200.computercraft.api.turtle.event.TurtleEvent; -import dan200.computercraft.client.FrameInfo; import dan200.computercraft.core.computer.MainThread; import dan200.computercraft.core.tracking.Tracking; import dan200.computercraft.shared.Registry; @@ -35,7 +34,6 @@ import dan200.computercraft.shared.turtle.recipes.TurtleUpgradeRecipe; import dan200.computercraft.shared.util.ImpostorRecipe; import dan200.computercraft.shared.util.ImpostorShapelessRecipe; import dan200.computercraft.shared.util.TickScheduler; -import net.fabricmc.fabric.api.event.client.ClientTickCallback; import net.fabricmc.fabric.api.event.server.ServerStartCallback; import net.fabricmc.fabric.api.event.server.ServerStopCallback; import net.fabricmc.fabric.api.event.server.ServerTickCallback; @@ -109,10 +107,6 @@ public class ComputerCraftProxyCommon { CommandRegistry.INSTANCE.register( false, CommandComputerCraft::register ); - ClientTickCallback.EVENT.register( client -> { - FrameInfo.onTick(); - } ); - ServerTickCallback.EVENT.register( server -> { MainThread.executePendingTasks(); ComputerCraft.serverComputerRegistry.update();