Тогда дрэгон тебе всё правильно описал, и ссылку кинул нужную.
http://www.minecraftforge.net/wiki/Packet_Handling
public Packet250CustomPayload buildPacket() {
Random random = new Random();
int randomInt1 = random.nextInt();
int randomInt2 = random.nextInt();
ByteArrayOutputStream bos = new ByteArrayOutputStream(8); // пишем 2 int, размер int = 4, 2*4 = 8
DataOutputStream outputStream = new DataOutputStream(bos);
try {
outputStream.writeInt(randomInt1);
outputStream.writeInt(randomInt2);
} catch (Exception ex) {
ex.printStackTrace();
}
Packet250CustomPayload packet = new Packet250CustomPayload();
packet.channel = "OurModID";
packet.data = bos.toByteArray();
packet.length = bos.size();
return packet;
}
Так пакет создается.
Отправление:
PacketDispatcher.sendPacketToPlayer(buildPacket(), (Player)player)
Далее для каждой стороны создаются хандлеры пакета (если пакет отправляется туда\обратно, если только с сервера - делаем хандлер @SideOnly на Client, или как там это делается, я с форджем не работал).
public class PacketHandler implements IPacketHandler {
@Override
public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player playerEntity) {
if (!packet.channel.equals("OurModID")) //если пакет не наш - нафиг его
return;
DataInputStream inputStream = new DataInputStream(new ByteArrayInputStream(packet.data));
int randomInt1;
int randomInt2;
try {
randomInt1 = inputStream.readInt();
randomInt2 = inputStream.readInt();
} catch (IOException e) {
e.printStackTrace();
return;
}
System.out.println(randomInt1 + " " + randomInt2);
}
}
Короче, там в конце статьи есть полный код.