Posted August 27, 201510 yr Hello, i have a problem with packets. I need to send information from gui to server, information is id of pressed button . Do i have to create special class for every id or they all can be sent from one ? I tried with one but it doesn't work, when i try to get information i sent it just returns static one from class. my packet code: package ga.warixmods.akamegakillmod; import io.netty.buffer.ByteBuf; import net.minecraft.util.IThreadListener; import net.minecraft.world.WorldServer; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; public class SendBuff implements IMessage{ private int text = 0; public SendBuff() { } public SendBuff(int text) { this.text = text; System.out.println("Text set to: " + text); } @Override public void fromBytes(ByteBuf buf) { // TODO Auto-generated method stub } @Override public void toBytes(ByteBuf buf) { // TODO Auto-generated method stub } public int getText() { return this.text; } public static class Handler implements IMessageHandler<SendBuff, IMessage>{ @Override public IMessage onMessage(final SendBuff message, final MessageContext ctx) { IThreadListener mainThread = (WorldServer) ctx.getServerHandler().playerEntity.worldObj; // or Minecraft.getMinecraft() on the client mainThread.addScheduledTask(new Runnable() { @Override public void run() { ctx.getServerHandler().playerEntity.getHeldItem().getTagCompound().setInteger("id",message.text); System.out.println("Recieved: " + message.text); } }); return null; } } }
August 27, 201510 yr Author Thanks, that worked, I didn't know you had to use it that way, i thought i can just pass information when i call packets.
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.