Make new packets record (reading method still to be defined)

Signed-off-by: TheMode <themode@outlook.fr>
This commit is contained in:
TheMode 2021-10-23 13:47:56 +02:00
parent eb6b37f20b
commit e3b59c3b95
5 changed files with 27 additions and 52 deletions

View File

@ -181,21 +181,13 @@ public class DynamicChunk extends Chunk {
blockPalette.write(writer); // Blocks
new Palette(2, 2).write(writer); // Biomes
}
ChunkDataPacket packet = new ChunkDataPacket();
packet.chunkX = chunkX;
packet.chunkZ = chunkZ;
packet.chunkData = new ChunkData(heightmapsNBT, writer.toByteArray(), entries);
packet.lightData = createLightData();
return packet;
return new ChunkDataPacket(chunkX, chunkZ,
new ChunkData(heightmapsNBT, writer.toByteArray(), entries),
createLightData());
}
private synchronized @NotNull UpdateLightPacket createLightPacket() {
UpdateLightPacket updateLightPacket = new UpdateLightPacket();
updateLightPacket.chunkX = getChunkX();
updateLightPacket.chunkZ = getChunkZ();
updateLightPacket.lightData = createLightData();
return updateLightPacket;
return new UpdateLightPacket(chunkX, chunkZ, createLightData());
}
private LightData createLightData() {

View File

@ -4,18 +4,11 @@ import net.minestom.server.network.packet.server.ServerPacket;
import net.minestom.server.network.packet.server.ServerPacketIdentifier;
import net.minestom.server.network.packet.server.play.data.ChunkData;
import net.minestom.server.network.packet.server.play.data.LightData;
import net.minestom.server.utils.binary.BinaryReader;
import net.minestom.server.utils.binary.BinaryWriter;
import org.jetbrains.annotations.NotNull;
public class ChunkDataPacket implements ServerPacket {
public int chunkX, chunkZ;
public ChunkData chunkData;
public LightData lightData;
public ChunkDataPacket() {
}
public record ChunkDataPacket(int chunkX, int chunkZ, ChunkData chunkData, LightData lightData)
implements ServerPacket {
@Override
public void write(@NotNull BinaryWriter writer) {
writer.writeInt(chunkX);
@ -24,13 +17,6 @@ public class ChunkDataPacket implements ServerPacket {
this.lightData.write(writer);
}
@Override
public void read(@NotNull BinaryReader reader) {
this.chunkX = reader.readInt();
this.chunkZ = reader.readInt();
// TODO read
}
@Override
public int getId() {
return ServerPacketIdentifier.CHUNK_DATA;

View File

@ -3,38 +3,18 @@ package net.minestom.server.network.packet.server.play;
import net.minestom.server.network.packet.server.ServerPacket;
import net.minestom.server.network.packet.server.ServerPacketIdentifier;
import net.minestom.server.network.packet.server.play.data.LightData;
import net.minestom.server.utils.binary.BinaryReader;
import net.minestom.server.utils.binary.BinaryWriter;
import org.jetbrains.annotations.NotNull;
public class UpdateLightPacket implements ServerPacket {
public int chunkX;
public int chunkZ;
public LightData lightData;
/**
* Default constructor, required for reflection operations.
*/
public UpdateLightPacket() {
}
public record UpdateLightPacket(int chunkX, int chunkZ, LightData lightData)
implements ServerPacket {
@Override
public void write(@NotNull BinaryWriter writer) {
writer.writeVarInt(chunkX);
writer.writeVarInt(chunkZ);
this.lightData.write(writer);
}
@Override
public void read(@NotNull BinaryReader reader) {
chunkX = reader.readVarInt();
chunkZ = reader.readVarInt();
// TODO read light data
}
@Override
public int getId() {
return ServerPacketIdentifier.UPDATE_LIGHT;

View File

@ -0,0 +1,18 @@
package net.minestom.server.network.packet.server.play;
import net.minestom.server.network.packet.server.ServerPacket;
import net.minestom.server.network.packet.server.ServerPacketIdentifier;
import net.minestom.server.utils.binary.BinaryWriter;
import org.jetbrains.annotations.NotNull;
public record UpdateSimulationDistancePacket(int simulationDistance) implements ServerPacket {
@Override
public void write(@NotNull BinaryWriter writer) {
writer.writeVarInt(simulationDistance);
}
@Override
public int getId() {
return ServerPacketIdentifier.SET_SIMULATION_DISTANCE;
}
}

View File

@ -178,8 +178,7 @@ public final class Registry {
// Block entity
{
final JsonElement entityElement = element("blockEntity");
if (entityElement instanceof JsonObject) {
JsonObject entityObject = (JsonObject) entityElement;
if (entityElement instanceof JsonObject entityObject) {
this.blockEntity = entityObject.get("namespace").getAsString();
this.blockEntityId = entityObject.get("id").getAsInt();
} else {