
infchem
Members-
Posts
5 -
Joined
-
Last visited
Everything posted by infchem
-
[1.7.10] need help w/ oscillating redstone from network packet
infchem replied to infchem's topic in Modder Support
@diesieben07 thanks! -
[1.7.10] need help w/ oscillating redstone from network packet
infchem replied to infchem's topic in Modder Support
@diesieben07: If I have rs off, 1 sec wait, rs on, it looks like this: http://www.hancl.de/cis/wp-content/uploads/2015/09/rr_redstone_oscillating.gif If I have only rs off and rs on, without 1 sec. wait, a client lost connection message appears. (That's the crash I meant). I change the TE attribute "redstoneStatus" from the new Thread and call player.worldObj.notifyBlocksOfNeighborChange in WeDoRedstone.java. I think that causes the conflict with the server thread. Here's the log: [21:26:14] [Client thread/ERROR] [FML/]: SimpleChannelHandlerWrapper exception java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) ~[?:1.8.0_51] at java.lang.Thread.start(Thread.java:714) ~[?:1.8.0_51] at infchem.realrobots.wedo.WeDoVPLMessage$Handler.onMessage(WeDoVPLMessage.java:86) ~[WeDoVPLMessage$Handler.class:?] at infchem.realrobots.wedo.WeDoVPLMessage$Handler.onMessage(WeDoVPLMessage.java:1) ~[WeDoVPLMessage$Handler.class:?] at cpw.mods.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:37) ~[simpleChannelHandlerWrapper.class:?] at cpw.mods.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:17) ~[simpleChannelHandlerWrapper.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) ~[simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:101) [simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:101) [simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:101) [simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:101) [simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:101) [simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [MessageToMessageDecoder.class:?] at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [MessageToMessageCodec.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?] at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?] at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?] at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?] at net.minecraft.client.multiplayer.PlayerControllerMP.updateController(PlayerControllerMP.java:317) [PlayerControllerMP.class:?] at net.minecraft.client.Minecraft.runTick(Minecraft.java:1682) [Minecraft.class:?] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1028) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:951) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?] at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?] at GradleStart.main(Unknown Source) [start/:?] [21:26:14] [Client thread/ERROR] [FML/]: There was a critical exception handling a packet on channel RealRobotsChannel java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) ~[?:1.8.0_51] at java.lang.Thread.start(Thread.java:714) ~[?:1.8.0_51] at infchem.realrobots.wedo.WeDoVPLMessage$Handler.onMessage(WeDoVPLMessage.java:86) ~[WeDoVPLMessage$Handler.class:?] at infchem.realrobots.wedo.WeDoVPLMessage$Handler.onMessage(WeDoVPLMessage.java:1) ~[WeDoVPLMessage$Handler.class:?] at cpw.mods.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:37) ~[simpleChannelHandlerWrapper.class:?] at cpw.mods.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:17) ~[simpleChannelHandlerWrapper.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) ~[simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:101) ~[simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:101) ~[simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:101) ~[simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:101) ~[simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:101) ~[simpleChannelInboundHandler.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[MessageToMessageDecoder.class:?] at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) ~[DefaultChannelPipeline.class:?] at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) ~[EmbeddedChannel.class:?] at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?] at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?] at net.minecraft.client.multiplayer.PlayerControllerMP.updateController(PlayerControllerMP.java:317) [PlayerControllerMP.class:?] at net.minecraft.client.Minecraft.runTick(Minecraft.java:1682) [Minecraft.class:?] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1028) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:951) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?] at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?] at GradleStart.main(Unknown Source) [start/:?] [21:26:16] [server thread/TRACE] [mcp/mcp]: Sending event FMLServerStoppingEvent to mod mcp [21:26:20] [server thread/TRACE] [mcp/mcp]: Sent event FMLServerStoppingEvent to mod mcp [21:26:20] [server thread/TRACE] [FML/FML]: Sending event FMLServerStoppingEvent to mod FML [21:26:20] [server thread/TRACE] [FML/FML]: Sent event FMLServerStoppingEvent to mod FML [21:26:20] [server thread/TRACE] [Forge/Forge]: Sending event FMLServerStoppingEvent to mod Forge [21:26:20] [server thread/TRACE] [Forge/Forge]: Sent event FMLServerStoppingEvent to mod Forge [21:26:20] [server thread/TRACE] [realrobots/realrobots]: Sending event FMLServerStoppingEvent to mod realrobots [21:26:20] [server thread/TRACE] [realrobots/realrobots]: Sent event FMLServerStoppingEvent to mod realrobots [21:26:20] [server thread/DEBUG] [FML/]: Gathering id map for writing to world save RealRobots [21:26:20] [server thread/INFO] [FML/]: Unloading dimension 0 [21:26:20] [server thread/INFO] [FML/]: Unloading dimension -1 [21:26:20] [server thread/INFO] [FML/]: Unloading dimension 1 [21:26:20] [server thread/DEBUG] [FML/]: Reverting to frozen data state. [21:26:20] [server thread/INFO] [FML/]: Applying holder lookups [21:26:20] [server thread/INFO] [FML/]: Holder lookups applied [21:26:20] [server thread/TRACE] [mcp/mcp]: Sending event FMLServerStoppedEvent to mod mcp [21:26:20] [server thread/TRACE] [mcp/mcp]: Sent event FMLServerStoppedEvent to mod mcp [21:26:20] [server thread/TRACE] [FML/FML]: Sending event FMLServerStoppedEvent to mod FML [21:26:20] [server thread/TRACE] [FML/FML]: Sent event FMLServerStoppedEvent to mod FML [21:26:20] [server thread/TRACE] [Forge/Forge]: Sending event FMLServerStoppedEvent to mod Forge [21:26:20] [server thread/TRACE] [Forge/Forge]: Sent event FMLServerStoppedEvent to mod Forge [21:26:20] [server thread/TRACE] [realrobots/realrobots]: Sending event FMLServerStoppedEvent to mod realrobots [21:26:20] [server thread/TRACE] [realrobots/realrobots]: Sent event FMLServerStoppedEvent to mod realrobots The repo is here: https://github.com/infchem/RealRobots Thanks for helping! infchem -
[1.7.10] need help w/ oscillating redstone from network packet
infchem replied to infchem's topic in Modder Support
@weckar: yes, it's different hardware. Lego WeDo and Arduino Leonardo -
Hi all! I've a "programming interface" gui to control real hardware (an "IDE for young children", primary school). For extending the possibilities I added two command items for enabling and disabling redstone. The code is triggered itself with redstone. If I only use "enable redstone" items, it works fine. The same with "disable redstone". If I mix both commands, for example enable rs, wait 1 sec. (another item), disable rs, the world crashes. I have to use Runnable and packets on client and server side, because the other commands control the hardware on client side. All ItemSlots for the code are sent to the client in a packet and checked in a Thread. If the item type is sendredstone RealRobots.network.sendToServer(new WeDoRedstoneMessage(true,x,y,z)); is called in a Runnable. The Handler: public static class Handler implements IMessageHandler<WeDoRedstoneMessage, IMessage> { @Override public IMessage onMessage(WeDoRedstoneMessage message, MessageContext ctx) { EntityPlayer player = ctx.getServerHandler().playerEntity; TileEntity te = player.worldObj.getTileEntity(message.x,message.y,message.z); if (te instanceof TileEntityWeDo) { TileEntityWeDo tewd = (TileEntityWeDo) te; tewd.setRedstoneStatus(message.redstoneStatus); } else if (te instanceof TileEntityLeonardo) { TileEntityLeonardo tel = (TileEntityLeonardo) te; tel.setRedstoneStatus(message.redstoneStatus); } player.worldObj.notifyBlocksOfNeighborChange(message.x,message.y,message.z, player.worldObj.getBlock(message.x,message.y,message.z)); return null; // no response in this case } } The result (with redstone actived AND deactived) is that onNeighborBlockChange in the block is called again. Maybe someone has a hint? The kids want to check a tilt sensor and trigger a logic circuit with redstone in Minecraft
-
I've done some work for Arduino Leonardo and other devices...