Posted December 4, 201311 yr 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(; 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); } }
December 4, 201311 yr Author 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'
December 4, 201311 yr Author I was just checking it was the right channel. Wow... I just checked. In my block i had some older packet code. Removed it, now things work. Thanks, I feel kinda dumb now lol.
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.