Jump to content

Recommended Posts

Posted

I am trying to render energy in cables  in my mod.

The TileEntity sends a packet to the Client that says where to render the energy.

But between toBytes(ByteBuf and fromBytes(ByteBuf, it causes several Exceptions and a crash.

There seems to be a problem with the discriminator, it seems to be -1 when the ID of the message is 0.

 

Here is the message registered:

public static SimpleNetworkWrapper network;

@EventHandler
public void preInit(FMLPreInitializationEvent event){
	HyperItems.load();
	HyperBlocks.load();
	network = NetworkRegistry.INSTANCE.newSimpleChannel("knokko Hyper Combat");
	network.registerMessage(CableMessage.Handler.class, CableMessage.class, 0, Side.CLIENT);
}

 

Here is the packet class:

public class CableMessage implements IMessage {

public static final byte[] BYTES = new byte[]{64,32,16,8,4,2,1};

private int x;
private int y;
private int z;
private boolean[] energy;

public CableMessage() {}

public CableMessage(int x, int y, int z, boolean[] energy){
	this.x = x;
	this.y = y;
	this.z = z;
	this.energy = energy;
}

@Override
public void fromBytes(ByteBuf buf) {
	System.out.println("decode from bytes...");
	x = buf.getInt(0);
	y = buf.getInt(4);
	z = buf.getInt(;
	energy = toBinair(buf.getByte(12));
	System.out.println("decoded from bytes");
}

@Override
public void toBytes(ByteBuf buf) {
	System.out.println("convert to bytes...");
	buf.setInt(0, x);
	buf.setInt(4, y);
	buf.setInt(8, z);
	buf.setByte(12, fromBinair(new boolean[]{energy[0], energy[1], energy[2], energy[3], energy[4], energy[5], false, false}));
	System.out.println("converted to bytes");
}

public static class Handler implements IMessageHandler<CableMessage, IMessage> {
//Gets the TileEntity at the given position and marks the places to render the energy
	@Override
	public IMessage onMessage(final CableMessage message, MessageContext ctx) {
		IThreadListener listener = Minecraft.getMinecraft();
		listener.addScheduledTask(new Runnable(){
			@Override
			public void run(){
				World world = Minecraft.getMinecraft().theWorld;
				TileEntity entity = world.getTileEntity(new BlockPos(message.x, message.y, message.z));
				if(world.isRemote && entity instanceof TileEntityCable)
					((TileEntityCable)entity).isEnergy = new boolean[]{message.energy[0], message.energy[1], message.energy[2], message.energy[3], message.energy[4], message.energy[5]};
				System.out.println("packet arrived: energy = " + message.energy + " and entity = " + entity);
		}});
		return null;
	}
}
//gets 8 booleans from 1 byte
public static boolean[] toBinair(byte b){
	boolean[] bools = new boolean[8];
	if(b >= 0)
		bools[7] = true;
	else {
		b++;
		b *= -1;
	}
	byte t = 0;
	while(t < 7){
		if(b >= BYTES[t]){
			b -= BYTES[t];
			bools[t] = true;
		}
		++t;
	}
	return bools;
}
//stores 8 booleans into 1 byte
public static byte fromBinair(boolean[] bools){
	byte b = 0;
	int t = 0;
	while(t < 7){
		if(bools[t])
			b += BYTES[t];
		++t;
	}
	if(!bools[7]){
		b *= -1;
		b--;
	}
	return b;
}
}

 

Here is the method where the packet is sent:

@Override
public int drainEnergy(EnumFacing facing, int requestedAmount) {
	//isEnergy = new boolean[6];
	System.out.println("drainEnergy...");
	int energy = 0;
//isDraining is here to prevent infinite loops
	if(!isDraining){
		if(capacity == 0){
			Block block = worldObj.getBlockState(pos).getBlock();
			if(block instanceof BlockCable)
				capacity = ((BlockCable) block).getCapacity();
		}
		if(requestedAmount > capacity)
			requestedAmount = capacity;
		isDraining = true;
		int t = 0;
		while(t < EnumFacing.values().length){
			if(energy >= requestedAmount){
				isDraining = false;
//sending the packet...
				System.out.println("starting to send message...");
				HyperCombat.network.sendToAllAround(new CableMessage(pos.getX(), pos.getY(), pos.getZ(), isEnergy), new TargetPoint(worldObj.provider.getDimensionId(), pos.getX(), pos.getY(), pos.getZ(), 32));
				System.out.println("message send... hopefully");
				return energy;
			}
			if(facing != EnumFacing.values()[t].getOpposite()){
				int extra = drain(EnumFacing.values()[t], requestedAmount - energy);
				energy += extra;
				if(extra > 0)
					isEnergy[t] = true;
			}
			++t;
		}
	}
	isDraining = false;
	if(energy > 0)
		isEnergy[facing.ordinal()] = true;
	System.out.println("starting to send message...");
	HyperCombat.network.sendToAllAround(new CableMessage(pos.getX(), pos.getY(), pos.getZ(), isEnergy), new TargetPoint(worldObj.provider.getDimensionId(), pos.getX(), pos.getY(), pos.getZ(), 32));
	System.out.println("message send... hopefully");
	return energy;
}

 

Here is the important part of the console log:

[11:51:02] [server thread/INFO] [FML]: Injecting existing block and item data into this server instance

[11:51:02] [server thread/INFO] [FML]: Applying holder lookups

[11:51:02] [server thread/INFO] [FML]: Holder lookups applied

[11:51:02] [server thread/INFO] [FML]: Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@5af49ae5)

[11:51:02] [server thread/INFO] [FML]: Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@5af49ae5)

[11:51:02] [server thread/INFO] [FML]: Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@5af49ae5)

[11:51:02] [server thread/INFO]: Preparing start region for level 0

[11:51:03] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:03] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:03] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [server thread/INFO]: Changing view distance to 12, from 10

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [Netty Local Client IO #0/INFO] [FML]: Server protocol version 1

[11:51:04] [Netty Server IO #1/INFO] [FML]: Client protocol version 1

[11:51:04] [Netty Server IO #1/INFO] [FML]: Client attempting to join with 4 mods : [email protected],[email protected],[email protected],[email protected]

[11:51:04] [Netty Local Client IO #0/INFO] [FML]: [Netty Local Client IO #0] Client side modded connection established

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [server thread/INFO] [FML]: [server thread] Server side modded connection established

[11:51:04] [server thread/INFO]: Player968[local:E:d09b071f] logged in with entity id 176 at (-16.099691218639478, 4.0, -860.3548167033636)

[11:51:04] [server thread/INFO]: Player968 joined the game

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:04] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:05] [Netty Local Client IO #0/ERROR] [FML]: FMLIndexedMessageCodec exception caught

io.netty.handler.codec.DecoderException: java.lang.NullPointerException: Undefined message for discriminator -1 in channel knokko Hyper Combat

at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:4.0.15.Final]

at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:4.0.15.Final]

at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:4.0.15.Final]

at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:79) [FMLProxyPacket.class:?]

at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:136) [NetworkManager.class:?]

at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:414) [NetworkManager.class:?]

at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) [simpleChannelInboundHandler.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324) [DefaultChannelHandlerContext.class:4.0.15.Final]

at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleClientSideCustomPacket(NetworkDispatcher.java:360) [NetworkDispatcher.class:?]

at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:227) [NetworkDispatcher.class:?]

at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:49) [NetworkDispatcher.class:?]

at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) [simpleChannelInboundHandler.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:4.0.15.Final]

at io.netty.channel.local.LocalChannel.finishPeerRead(LocalChannel.java:312) [LocalChannel.class:4.0.15.Final]

at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:44) [LocalChannel.class:4.0.15.Final]

at io.netty.channel.local.LocalChannel$6.run(LocalChannel.java:298) [LocalChannel$6.class:4.0.15.Final]

at io.netty.channel.local.LocalEventLoop.run(LocalEventLoop.java:33) [LocalEventLoop.class:4.0.15.Final]

at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [singleThreadEventExecutor$2.class:4.0.15.Final]

at java.lang.Thread.run(Thread.java:745) [?:1.8.0_05]

Caused by: java.lang.NullPointerException: Undefined message for discriminator -1 in channel knokko Hyper Combat

at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]

at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:21) ~[FMLIndexedMessageToMessageCodec.class:?]

at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:4.0.15.Final]

at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:4.0.15.Final]

... 24 more

[11:51:05] [Netty Local Client IO #0/ERROR] [FML]: SimpleChannelHandlerWrapper exception

io.netty.handler.codec.DecoderException: java.lang.NullPointerException: Undefined message for discriminator -1 in channel knokko Hyper Combat

at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:4.0.15.Final]

at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:4.0.15.Final]

at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:4.0.15.Final]

at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:79) [FMLProxyPacket.class:?]

at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:136) [NetworkManager.class:?]

at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:414) [NetworkManager.class:?]

at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) [simpleChannelInboundHandler.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324) [DefaultChannelHandlerContext.class:4.0.15.Final]

at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleClientSideCustomPacket(NetworkDispatcher.java:360) [NetworkDispatcher.class:?]

at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:227) [NetworkDispatcher.class:?]

at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:49) [NetworkDispatcher.class:?]

at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) [simpleChannelInboundHandler.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:4.0.15.Final]

at io.netty.channel.local.LocalChannel.finishPeerRead(LocalChannel.java:312) [LocalChannel.class:4.0.15.Final]

at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:44) [LocalChannel.class:4.0.15.Final]

at io.netty.channel.local.LocalChannel$6.run(LocalChannel.java:298) [LocalChannel$6.class:4.0.15.Final]

at io.netty.channel.local.LocalEventLoop.run(LocalEventLoop.java:33) [LocalEventLoop.class:4.0.15.Final]

at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [singleThreadEventExecutor$2.class:4.0.15.Final]

at java.lang.Thread.run(Thread.java:745) [?:1.8.0_05]

Caused by: java.lang.NullPointerException: Undefined message for discriminator -1 in channel knokko Hyper Combat

at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]

at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:21) ~[FMLIndexedMessageToMessageCodec.class:?]

at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:4.0.15.Final]

at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:4.0.15.Final]

... 24 more

[11:51:05] [Netty Local Client IO #0/ERROR] [FML]: There was a critical exception handling a packet on channel knokko Hyper Combat

io.netty.handler.codec.DecoderException: java.lang.NullPointerException: Undefined message for discriminator -1 in channel knokko Hyper Combat

at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:4.0.15.Final]

at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338) ~[DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324) ~[DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) ~[DefaultChannelPipeline.class:4.0.15.Final]

at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) ~[EmbeddedChannel.class:4.0.15.Final]

at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:79) [FMLProxyPacket.class:?]

at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:136) [NetworkManager.class:?]

at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:414) [NetworkManager.class:?]

at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) [simpleChannelInboundHandler.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324) [DefaultChannelHandlerContext.class:4.0.15.Final]

at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleClientSideCustomPacket(NetworkDispatcher.java:360) [NetworkDispatcher.class:?]

at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:227) [NetworkDispatcher.class:?]

at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:49) [NetworkDispatcher.class:?]

at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) [simpleChannelInboundHandler.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324) [DefaultChannelHandlerContext.class:4.0.15.Final]

at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:4.0.15.Final]

at io.netty.channel.local.LocalChannel.finishPeerRead(LocalChannel.java:312) [LocalChannel.class:4.0.15.Final]

at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:44) [LocalChannel.class:4.0.15.Final]

at io.netty.channel.local.LocalChannel$6.run(LocalChannel.java:298) [LocalChannel$6.class:4.0.15.Final]

at io.netty.channel.local.LocalEventLoop.run(LocalEventLoop.java:33) [LocalEventLoop.class:4.0.15.Final]

at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [singleThreadEventExecutor$2.class:4.0.15.Final]

at java.lang.Thread.run(Thread.java:745) [?:1.8.0_05]

Caused by: java.lang.NullPointerException: Undefined message for discriminator -1 in channel knokko Hyper Combat

at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]

at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:21) ~[FMLIndexedMessageToMessageCodec.class:?]

at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:4.0.15.Final]

at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:4.0.15.Final]

... 24 more

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:33]: drainEnergy...

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:65]: starting to send message...

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:44]: convert to bytes...

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.packet.CableMessage:toBytes:49]: converted to bytes

[11:51:05] [server thread/INFO] [sTDOUT]: [knokko.tileentity.TileEntityCable:drainEnergy:67]: message send... hopefully

[11:51:05] [server thread/INFO]: Player968 lost connection: TextComponent{text='Disconnected', siblings=[], style=Style{hasParent=false, color=null, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null, insertion=null}}

[11:51:05] [server thread/INFO]: Player968 left the game

[11:51:05] [server thread/INFO]: Stopping singleplayer server as player logged out

 

 

Does anybody understand what goes wrong here?

Why is the discriminator -1?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.