Jump to content

Packet Handler EOF


CJLetsGame

Recommended Posts

When I shift click to open the GUI, it opens and then immediately after, my server gets a packet on the channel CJTECH and gets an EOF error.

It shouldnt be getting any packets though from opening the Gui should it?

 

Packet Handler Class

 

 

package mods.CJTech.lib;

import java.io.ByteArrayInputStream;

import java.io.DataInputStream;

import java.io.EOFException;

import java.io.IOException;

import java.util.logging.Level;

import java.util.logging.Logger;

 

import com.google.common.io.ByteArrayDataInput;

import com.google.common.io.ByteStreams;

 

import mods.CJTech.lib.CJPacket.ProtocolException;

import mods.CJTech.tileentity.machines.TileEntityTransporter;

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.entity.player.EntityPlayerMP;

import net.minecraft.network.INetworkManager;

import net.minecraft.network.packet.Packet250CustomPayload;

import net.minecraft.tileentity.TileEntity;

import cpw.mods.fml.common.network.IPacketHandler;

import cpw.mods.fml.common.network.Player;

import cpw.mods.fml.relauncher.Side;

public class PacketHandler implements IPacketHandler{

@Override

    public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) {

            //try {

Logger.getLogger("CJTECH").log(Level.INFO, "Packet has channel " + packet.channel + " Data " + packet.data.toString());

if (packet.channel != "CJTECH")

return;

                    EntityPlayer entityPlayer = (EntityPlayer)player;

                    ByteArrayDataInput in = ByteStreams.newDataInput(packet.data);

                    int X = in.readInt();

                    int Y = in.readInt();

                    int Z = in.readInt();

                    int DX = in.readInt();

                    int DY = in.readInt();

                    int DZ = in.readInt();

                    EntityPlayerMP playerMP = (EntityPlayerMP)player;

 

                    TileEntity te = playerMP.worldObj.getBlockTileEntity(X, Y, Z);

                   

                    if(te != null){

                        if(te instanceof TileEntityTransporter){

                        TileEntityTransporter tet = (TileEntityTransporter)te;

                            tet.DestX = DX;

                            tet.DestY = DY;

                            tet.DestZ = DZ;

                            playerMP.worldObj.markBlockForUpdate(X, Y, Z);

                        }

                    }

                    //Logger.getLogger("CJTECH").log(Level.INFO, "Packet Data: " + packet.data);

                    //try{

                    //int packetId = in.readUnsignedByte(); // Assuming your packetId is between 0 (inclusive) and 256 (exclusive). If you need more you need to change this

                    //CJPacket demoPacket = CJPacket.constructPacket(packetId);

                    //demoPacket.read(in);

                    //demoPacket.execute(entityPlayer, entityPlayer.worldObj.isRemote ? Side.CLIENT : Side.SERVER);

                    //}

                    //finally

                    //{

                    //Logger.getLogger("CJTECH").log(Level.INFO, "Packet Error");

                    //}

                   

            //} catch (ProtocolException e) {

            //Logger.getLogger("CJTECH").log(Level.INFO, "Protocol Exception");

            //} catch (ReflectiveOperationException e) {

// TODO Auto-generated catch block

//e.printStackTrace();

//}

    }

 

private void HandleTeleporter() throws IOException

{

 

}

}

 

 

 

 

GUI which should be the only thing sending a packet on that channel

 

 

package mods.CJTech.gui;

 

import java.io.ByteArrayOutputStream;

import java.io.DataOutputStream;

import java.util.logging.Level;

import java.util.logging.Logger;

 

import org.lwjgl.opengl.GL11;

 

import cpw.mods.fml.common.network.PacketDispatcher;

import mods.CJTech.blocks.blockTransporter;

import mods.CJTech.tileentity.machines.TileEntityTransporter;

import net.minecraft.client.gui.GuiButton;

import net.minecraft.client.gui.GuiScreen;

import net.minecraft.client.gui.GuiTextField;

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.entity.player.EntityPlayerMP;

import net.minecraft.network.packet.Packet250CustomPayload;

import net.minecraft.world.World;

 

public class guiTeleporter extends GuiScreen{

public final int xSize = 250;

public final int ySize = 200;

public EntityPlayer User;

public TileEntityTransporter Linked;

private World world;

private GuiTextField textX;

private GuiTextField textY;

private GuiTextField textZ;

private GuiTextField textDim;

public guiTeleporter(EntityPlayer player, TileEntityTransporter transporter, World world)

{

User = player;

Linked = transporter;

this.world = world;

Logger.getLogger("CJTECH").log(Level.INFO, "End of Constructor");

}

 

public void initGui()

{

Logger.getLogger("CJTECH").log(Level.INFO, "Start Ini Gui");

this.buttonList.clear();

 

int posX = (this.width - xSize) / 2;

int posY = (this.height - ySize) / 2;

 

textX = new GuiTextField(fontRenderer, posX + 5, posY + 31, 30, 10);

textX.setMaxStringLength(4);

textX.setFocused(false);

textY = new GuiTextField(fontRenderer, posX + 60, posY + 31, 30, 10);

textY.setMaxStringLength(4);

textY.setFocused(false);

textZ = new GuiTextField(fontRenderer, posX + 105, posY + 31, 30, 10);

textZ.setMaxStringLength(5);

textZ.setFocused(false);

 

textX.setText(String.valueOf(Linked.DestX));

textY.setText(String.valueOf(Linked.DestY));

textZ.setText(String.valueOf(Linked.DestZ));

this.buttonList.add(new GuiButton(0, posX + 30, posY + 60, 100, 20, "Set Coordinates"));

Logger.getLogger("CJTECH").log(Level.INFO, "End of Ini");

}

 

@Override

public boolean doesGuiPauseGame()

{

return false;

}

 

@Override

public void drawScreen(int x, int y, float f)

{

drawDefaultBackground();

 

GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

//this.mc.renderEngine.bindTexture("/Gui/Teleporter");

 

int posX = (this.width - xSize) / 2;

int posY = (this.height - ySize) / 2;

 

drawRect(posX, posY, xSize, ySize, 0xFFaaaaaa);

 

this.drawString(fontRenderer, "Transporter", posX + 5, posY + 5, 0x222222);

this.drawString(fontRenderer, "X Coord", posX + 5, posY + 18, 0x222222);

this.drawString(fontRenderer, "Y Coord", posX + 60, posY + 18, 0x222222);

this.drawString(fontRenderer, "Z Coord", posX + 105, posY + 18, 0x222222);

 

textX.drawTextBox();

textY.drawTextBox();

textZ.drawTextBox();

//textY.drawTextBox();

//textZ.drawTextBox();

 

super.drawScreen(x, y, f);

}

 

public void actionPerformed(GuiButton button)

{

Logger.getLogger("CJTECH").log(Level.INFO, "actionPerformed");

switch(button.id)

{

case 0:

if (textX.getText().matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+"))

{

Logger.getLogger("CJTECH").log(Level.INFO, "X Linked " + Integer.parseInt(textX.getText()));

Linked.DestX = Integer.parseInt(textX.getText());

}

else

{

Linked.DestX = Linked.xCoord;

}

if (textY.getText().matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+"))

{

Logger.getLogger("CJTECH").log(Level.INFO, "Y Linked " + Integer.parseInt(textY.getText()));

Linked.DestY = Integer.parseInt(textY.getText());

}

else

{

Linked.DestY = Linked.yCoord + 2;

}

if (textZ.getText().matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+"))

{

Logger.getLogger("CJTECH").log(Level.INFO, "Z Linked " + Integer.parseInt(textZ.getText()));

Linked.DestZ = Integer.parseInt(textZ.getText());

}

else

{

Linked.DestZ = Linked.zCoord;

}

 

 

//int TX = Linked.xCoord;

//int TY = Linked.yCoord;

//int TZ = Linked.zCoord;

//world.setBlockTileEntity(TX, TY, TZ, new TileEntityTransporter(Linked.DestX, Linked.DestY, Linked.DestZ));

sendChangeToServer();

this.mc.thePlayer.closeScreen();

break;

default:

}

}

public void sendChangeToServer(){

Logger.getLogger("CJTECH").log(Level.INFO, "Sending Packet");

    ByteArrayOutputStream bos = new ByteArrayOutputStream(8);

    DataOutputStream outputStream = new DataOutputStream(bos);

    try {

   

    //outputStream.writeByte(0);

        outputStream.writeInt(Linked.xCoord);

        outputStream.writeInt(Linked.yCoord);

        outputStream.writeInt(Linked.zCoord);

        //write the relevant information here... exemple:

       

        outputStream.writeInt(Linked.DestX);

        outputStream.writeInt(Linked.DestY);

        outputStream.writeInt(Linked.DestZ);

    } catch (Exception ex) {

        ex.printStackTrace();

    }

             

    Packet250CustomPayload packet = new Packet250CustomPayload();

    packet.channel = "CJTECH";

    packet.data = bos.toByteArray();

    packet.length = bos.size();

   

    PacketDispatcher.sendPacketToServer(packet);

}

public void keyTyped(char c, int i)

{

super.keyTyped(c, i);

if(textX.isFocused())

{

textX.textboxKeyTyped(c, i);

}

else if(textY.isFocused())

{

textY.textboxKeyTyped(c, i);

}

else if(textZ.isFocused())

{

textZ.textboxKeyTyped(c, i);

}

}

 

public void mouseClicked(int i, int j, int k)

{

super.mouseClicked(i, j, k);

textX.mouseClicked(i, j, k);

textY.mouseClicked(i, j, k);

textZ.mouseClicked(i, j, k);

}

}

 

 

Link to comment
Share on other sites

I dont know if it helps but Im currently coding with Minecraft 1.5.2.

 

Forge Crash Log

 

 

---- Minecraft Crash Report ----

// Daisy, daisy...

 

Time: 12/4/13 7:00 AM

Description: Ticking memory connection

 

java.lang.IllegalStateException: java.io.EOFException

at com.google.common.io.ByteStreams$ByteArrayDataInputStream.readInt(ByteStreams.java:377)

at mods.CJTech.lib.PacketHandler.onPacketData(PacketHandler.java:31)

at cpw.mods.fml.common.network.NetworkRegistry.handlePacket(NetworkRegistry.java:255)

at cpw.mods.fml.common.network.NetworkRegistry.handleCustomPacket(NetworkRegistry.java:245)

at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:84)

at net.minecraft.network.NetServerHandler.handleCustomPayload(NetServerHandler.java:1055)

at net.minecraft.network.packet.Packet250CustomPayload.processPacket(Packet250CustomPayload.java:70)

at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)

at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:127)

at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)

at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:684)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:584)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:144)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:481)

at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

Caused by: java.io.EOFException

at java.io.DataInputStream.readInt(Unknown Source)

at com.google.common.io.ByteStreams$ByteArrayDataInputStream.readInt(ByteStreams.java:375)

... 15 more

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- System Details --

Details:

Minecraft Version: 1.5.2

Operating System: Windows 8 (amd64) version 6.2

Java Version: 1.7.0_45, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 834198808 bytes (795 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

AABB Pool Size: 452 (25312 bytes; 0 MB) allocated, 377 (21112 bytes; 0 MB) used

Suspicious classes: FML is installed

IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0

FML: MCP v7.51 FML v5.2.23.657 3 mods loaded, 3 mods active

mcp{7.51} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

FML{5.2.23.657} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

CJTECH{0.1} [CJTech] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Profiler Position: N/A (disabled)

Vec3 Pool Size: 70 (3920 bytes; 0 MB) allocated, 55 (3080 bytes; 0 MB) used

Player Count: 1 / 8; [EntityPlayerMP['Player421'/23, l='New World', x=474.16, y=4.00, z=-704.71]]

Type: Integrated Server (map_client.txt)

Is Modded: Definitely; Client brand changed to 'fml'

 

 

Link to comment
Share on other sites

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.