ComputerCraft

ComputerCraft

21M Downloads

ComputerCraft+CCTweaks crash when MovingWorld initiates a moving structure

dshadowwolf opened this issue · 3 comments

commented

On pushing the "Mount Ship" button in Archimedes Ships Plus a crash occurred (invalid OpenGL calls leading to display flashing horridly bright followed by a complete system crash - in all connected clients at the time, with the server crashing as well)

This appears to be triggered by MovingWorld trying to move a structure containing active CC modems and network cables and CCTweaks running its "onServerTick" handler at the same time.

As I'm unsure of where a proper fix to this issue (a null pointer deref, technically) might be located, I'm reporting it here and have already reported it for CCTweaks.

Forge Version is 10.13.4.1614
ComputerCraft is version 1.75
Minecraft is at version 1.7.10
Forgot:
CCTweaks version is 3.3.7

Crash log from the server follows:
[21:22:25] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.NullPointerException
at dan200.computercraft.shared.peripheral.common.TilePeripheralBase.getPeripheralType(TilePeripheralBase.java:103) ~[TilePeripheralBase.class:?]
at dan200.computercraft.shared.peripheral.modem.TileCable$2.canConnect(TileCable_Patch.java:109) ~[TileCable$2.class:?]
at org.squiddev.cctweaks.core.network.NetworkHelpers.getAdjacentNodes(NetworkHelpers.java:45) ~[NetworkHelpers.class:?]
at org.squiddev.cctweaks.core.network.NetworkHelpers.getAdjacentNodes(NetworkHelpers.java:35) ~[NetworkHelpers.class:?]
at org.squiddev.cctweaks.core.network.AbstractWorldNode.getConnectedNodes(AbstractWorldNode.java:30) ~[AbstractWorldNode.class:?]
at org.squiddev.cctweaks.core.network.cable.SingleModemCable.getConnectedNodes(SingleModemCable.java:25) ~[SingleModemCable.class:?]
at org.squiddev.cctweaks.core.network.AbstractWorldNode.connect(AbstractWorldNode.java:37) ~[AbstractWorldNode.class:?]
at org.squiddev.cctweaks.core.network.cable.BasicCable.connect(BasicCable.java:68) ~[BasicCable.class:?]
at org.squiddev.cctweaks.core.network.cable.SingleModemCable.connect(SingleModemCable.java:19) ~[SingleModemCable.class:?]
at dan200.computercraft.shared.peripheral.modem.TileCable$3.run(TileCable_Patch.java:143) ~[TileCable$3.class:?]
at org.squiddev.cctweaks.core.FmlEvents.onServerTick(FmlEvents.java:48) ~[FmlEvents.class:?]
at cpw.mods.fml.common.eventhandler.ASMEventHandler_184_FmlEvents_onServerTick_ServerTickEvent.invoke(.dynamic) ~[?:?]
at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54) ~[ASMEventHandler.class:?]
at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140) ~[EventBus.class:?]
at cpw.mods.fml.common.FMLCommonHandler.onPreServerTick(FMLCommonHandler.java:260) ~[FMLCommonHandler.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:536) ~[MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:396) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685) [li.class:?]

commented

CCTweaks is an unsanctioned mod which modifies internal CC code without permission. Report the bug to them.

commented

@dan200 Whilst CCTweaks makes this problem worse, it also occurs with a vanilla CC installation (during rendering rather than tick cycle however):

java.lang.NullPointerException
at dan200.computercraft.shared.peripheral.common.TilePeripheralBase.getPeripheralType(TilePeripheralBase.java:103) ~[TilePeripheralBase.class:?]
at dan200.computercraft.shared.peripheral.modem.TileCable.getBounds(TileCable.java:449) ~[TileCable.class:?]
at dan200.computercraft.shared.common.BlockGeneric.func_149719_a(BlockGeneric.java:224) ~[BlockGeneric.class:?]
at net.minecraft.client.renderer.RenderBlocks.func_147805_b(RenderBlocks.java:249) ~[blm.class:?]
at darkevilmac.movingworld.client.render.MobileChunkRenderer.updateRender(MobileChunkRenderer.java:181) ~[MobileChunkRenderer.class:?]
at darkevilmac.movingworld.client.render.MobileChunkRenderer.render(MobileChunkRenderer.java:80) [MobileChunkRenderer.class:?]
at darkevilmac.movingworld.client.render.RenderMovingWorld.renderVehicle(RenderMovingWorld.java:37) [RenderMovingWorld.class:?]
at darkevilmac.movingworld.client.render.RenderMovingWorld.func_76986_a(RenderMovingWorld.java:45) [RenderMovingWorld.class:?]
at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:293) [bnn.class:?]
at net.minecraft.client.renderer.entity.RenderManager.func_147936_a(RenderManager.java:271) [bnn.class:?]
at net.minecraft.client.renderer.entity.RenderManager.func_147937_a(RenderManager.java:244) [bnn.class:?]
at net.minecraft.client.renderer.RenderGlobal.func_147589_a(RenderGlobal.java:471) [bma.class:?]
at net.minecraft.client.renderer.EntityRenderer.func_78471_a(EntityRenderer.java:1224) [blt.class:?]
at net.minecraft.client.renderer.EntityRenderer.func_78480_b(EntityRenderer.java:1011) [blt.class:?]
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:989) [bao.class:?]
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:887) [bao.class:?]

Whilst I realise you're not updating to 1.7.10 any more, to prevent similar issues it might be worth caching the current peripheral type inside the TE to prevent similar issues on 1.8.9+.

commented

I actually had, and was unaware that CCTweaks was doing things completely
unsanctioned by you.

On Sun, May 22, 2016 at 10:23 PM, Daniel Ratcliffe <[email protected]

wrote:

Closed #105 #105.


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#105 (comment)