- 477
- 7
- 51
Доброго времени суток, 2 день пытаюсь отправить пакет с мапой но всё четно, может кто сможет помочь с этим
Нужно отправить по сути мапу а на клиенте уже через фор добавить все данные в лист
Этот код мне предоставил Агравайн, на клиенте размер = 0, соответсвенно ничего не происходит :\
Нужно 1 раз отправить пакет с данными, я делал через цикл что явно не подходит каждый раз пакет приходит и очищая лист каждый раз в гуи остается последний пакет
Нужно отправить по сути мапу а на клиенте уже через фор добавить все данные в лист
Java:
@SideOnly(Side.CLIENT)
public void handleClientSide(PacketBuffer buf, byte id, Minecraft mc, WorldClient world,EntityClientPlayerMP player) {
if(TeleportMod.isClient) {
if(id == 0) {
int size = buf.readVarIntFromBuffer();
Map<Integer, String> map = Maps.newHashMapWithExpectedSize(size);
for(int i = 0; i < size; i++){
map.put(buf.readInt(), ByteBufUtils.readUTF8String(buf));
}
}
}
}
public void handleServerSide(PacketBuffer buf, byte id, WorldServer world, EntityPlayerMP player) {
if(TeleportMod.isServer) {
if(id == 0) {
Map<Integer, String> map = Maps.newHashMap();
map.put(0, "Azaza");
map.put(1, "Hello");
PacketBuffer bufmap = new PacketBuffer(Unpooled.buffer());
bufmap.writeVarIntToBuffer(map.size());
map.forEach((key, value) -> {
bufmap.writeVarIntToBuffer(key);
ByteBufUtils.writeUTF8String(bufmap, value);
});
TeleportMod.network.sendTo(TeleportMod.network.createPacket((byte)0,bufmap), player);
}
}
}
Нужно 1 раз отправить пакет с данными, я делал через цикл что явно не подходит каждый раз пакет приходит и очищая лист каждый раз в гуи остается последний пакет
Последнее редактирование: