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.

Featured Replies

Posted

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);

}

}

 

 

  • 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'

 

 

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

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.