Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[1.7.10][Solved] "Crash" (Something with IMessage onMessage and heldItem)[

Featured Replies

Posted

So it works fine without the heldItem part, but when i add that, it "crashes" (it shuts down and returns to the main menu).

 

The Message class (don't mind the "value")

 

 

package com.stefinus.Main.network;

 

import java.util.Random;

 

import com.stefinus.Main.SMainRegistry;

 

import net.minecraft.entity.passive.EntityCow;

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.entity.projectile.EntitySnowball;

import net.minecraft.item.ItemStack;

import net.minecraft.util.ChatComponentText;

import net.minecraft.world.World;

import cpw.mods.fml.common.network.simpleimpl.*;

import io.netty.buffer.ByteBuf;

 

public class ShootMessage implements IMessage {

 

 

private int value;

 

/**

    * This is needed for netty to decode the message

    * because the message is not created via a custom

    * constructor but via new {Message}.fromBytes(buf)

    */

    public ShootMessage()

    {

    this.value = new Random().nextInt();

    }

   

    /**

    * This is to read your bytes when receiving the packet.

    */

    @Override

    public void fromBytes(ByteBuf buf)

    {

    this.value = buf.readInt();

    }

 

    /**

    * This is to write your bytes when sending the packet.

    */

    @Override

    public void toBytes(ByteBuf buf)

    {

    buf.writeInt(this.value);

    }

 

    /**

    * This is the handler for the class, allowing access to all

    * the functions and variables.

    */

    public static class Handler implements IMessageHandler<ShootMessage, IMessage> {

        /**

        * This gets called when the packet is read and received.

        */

        @Override

        public IMessage onMessage(ShootMessage message, MessageContext ctx)

        {

       

        EntityPlayer player = ctx.getServerHandler().playerEntity;

        World world = player.worldObj;

        EntitySnowball ball = new EntitySnowball(world, player);

        ItemStack heldItem = player.getHeldItem();

       

        if(!world.isRemote && heldItem.getItem() == SMainRegistry.P90)

        {

        ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(ball);

        }

       

            return null;

        }

    }

}

 

 

 

The "crash" in the console.

 

 

[16:11:40] [server thread/INFO]: Player265 joined the game

[16:11:40] [Client thread/INFO] [FML]: [Client thread] Client side modded connection established

[16:11:41] [server thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception

java.lang.NullPointerException

at com.stefinus.Main.network.ShootMessage$Handler.onMessage(ShootMessage.java:66) ~[shootMessage$Handler.class:?]

at com.stefinus.Main.network.ShootMessage$Handler.onMessage(ShootMessage.java:1) ~[shootMessage$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.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.network.NetworkSystem.networkTick(NetworkSystem.java:182) [NetworkSystem.class:?]

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) [MinecraftServer.class:?]

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) [MinecraftServer.class:?]

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) [integratedServer.class:?]

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]

at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]

[16:11:41] [server thread/ERROR] [FML]: There was a critical exception handling a packet on channel stefinusguns

java.lang.NullPointerException

at com.stefinus.Main.network.ShootMessage$Handler.onMessage(ShootMessage.java:66) ~[shootMessage$Handler.class:?]

at com.stefinus.Main.network.ShootMessage$Handler.onMessage(ShootMessage.java:1) ~[shootMessage$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.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.network.NetworkSystem.networkTick(NetworkSystem.java:182) [NetworkSystem.class:?]

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) [MinecraftServer.class:?]

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) [MinecraftServer.class:?]

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) [integratedServer.class:?]

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]

at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]

[16:11:41] [server thread/INFO]: Player265 lost connection: TextComponent{text='A fatal error has occured, this connection is terminated', siblings=[], style=Style{hasParent=false, color=null, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null}}

[16:11:41] [server thread/INFO]: Player265 left the game

[16:11:41] [server thread/INFO]: Stopping singleplayer server as player logged out

[16:11:41] [server thread/INFO]: Stopping server

[16:11:41] [server thread/INFO]: Saving players

[16:11:41] [server thread/INFO]: Saving worlds

 

 

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.