Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-11-20 06:50:08 +01:00
Reuse 1.15, 1.16 and 1.16.2 chunk types as well
Dieser Commit ist enthalten in:
Ursprung
84a054aac1
Commit
7edde72416
@ -35,6 +35,7 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ChunkType1_15 extends Type<Chunk> {
|
public class ChunkType1_15 extends Type<Chunk> {
|
||||||
|
public static final Type<Chunk> TYPE = new ChunkType1_15();
|
||||||
private static final CompoundTag[] EMPTY_COMPOUNDS = new CompoundTag[0];
|
private static final CompoundTag[] EMPTY_COMPOUNDS = new CompoundTag[0];
|
||||||
|
|
||||||
public ChunkType1_15() {
|
public ChunkType1_15() {
|
||||||
|
@ -35,6 +35,7 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ChunkType1_16 extends Type<Chunk> {
|
public class ChunkType1_16 extends Type<Chunk> {
|
||||||
|
public static final Type<Chunk> TYPE = new ChunkType1_16();
|
||||||
private static final CompoundTag[] EMPTY_COMPOUNDS = new CompoundTag[0];
|
private static final CompoundTag[] EMPTY_COMPOUNDS = new CompoundTag[0];
|
||||||
|
|
||||||
public ChunkType1_16() {
|
public ChunkType1_16() {
|
||||||
|
@ -35,6 +35,7 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ChunkType1_16_2 extends Type<Chunk> {
|
public class ChunkType1_16_2 extends Type<Chunk> {
|
||||||
|
public static final Type<Chunk> TYPE = new ChunkType1_16_2();
|
||||||
private static final CompoundTag[] EMPTY_COMPOUNDS = new CompoundTag[0];
|
private static final CompoundTag[] EMPTY_COMPOUNDS = new CompoundTag[0];
|
||||||
|
|
||||||
public ChunkType1_16_2() {
|
public ChunkType1_16_2() {
|
||||||
|
@ -41,7 +41,7 @@ public final class WorldPackets {
|
|||||||
|
|
||||||
protocol.registerClientbound(ClientboundPackets1_14_4.CHUNK_DATA, wrapper -> {
|
protocol.registerClientbound(ClientboundPackets1_14_4.CHUNK_DATA, wrapper -> {
|
||||||
Chunk chunk = wrapper.read(ChunkType1_14.TYPE);
|
Chunk chunk = wrapper.read(ChunkType1_14.TYPE);
|
||||||
wrapper.write(new ChunkType1_15(), chunk);
|
wrapper.write(ChunkType1_15.TYPE, chunk);
|
||||||
|
|
||||||
if (chunk.isFullChunk()) {
|
if (chunk.isFullChunk()) {
|
||||||
int[] biomeData = chunk.getBiomeData();
|
int[] biomeData = chunk.getBiomeData();
|
||||||
|
@ -46,8 +46,8 @@ public class WorldPackets {
|
|||||||
blockRewriter.registerAcknowledgePlayerDigging(ClientboundPackets1_16.ACKNOWLEDGE_PLAYER_DIGGING);
|
blockRewriter.registerAcknowledgePlayerDigging(ClientboundPackets1_16.ACKNOWLEDGE_PLAYER_DIGGING);
|
||||||
|
|
||||||
protocol.registerClientbound(ClientboundPackets1_16.CHUNK_DATA, wrapper -> {
|
protocol.registerClientbound(ClientboundPackets1_16.CHUNK_DATA, wrapper -> {
|
||||||
Chunk chunk = wrapper.read(new ChunkType1_16());
|
Chunk chunk = wrapper.read(ChunkType1_16.TYPE);
|
||||||
wrapper.write(new ChunkType1_16_2(), chunk);
|
wrapper.write(ChunkType1_16_2.TYPE, chunk);
|
||||||
|
|
||||||
for (int s = 0; s < chunk.getSections().length; s++) {
|
for (int s = 0; s < chunk.getSections().length; s++) {
|
||||||
ChunkSection section = chunk.getSections()[s];
|
ChunkSection section = chunk.getSections()[s];
|
||||||
|
@ -59,8 +59,8 @@ public class WorldPackets {
|
|||||||
});
|
});
|
||||||
|
|
||||||
protocol.registerClientbound(ClientboundPackets1_15.CHUNK_DATA, wrapper -> {
|
protocol.registerClientbound(ClientboundPackets1_15.CHUNK_DATA, wrapper -> {
|
||||||
Chunk chunk = wrapper.read(new ChunkType1_15());
|
Chunk chunk = wrapper.read(ChunkType1_15.TYPE);
|
||||||
wrapper.write(new ChunkType1_16(), chunk);
|
wrapper.write(ChunkType1_16.TYPE, chunk);
|
||||||
|
|
||||||
chunk.setIgnoreOldLightData(chunk.isFullChunk());
|
chunk.setIgnoreOldLightData(chunk.isFullChunk());
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ public final class WorldPackets {
|
|||||||
});
|
});
|
||||||
|
|
||||||
protocol.registerClientbound(ClientboundPackets1_16_2.CHUNK_DATA, wrapper -> {
|
protocol.registerClientbound(ClientboundPackets1_16_2.CHUNK_DATA, wrapper -> {
|
||||||
Chunk chunk = wrapper.read(new ChunkType1_16_2());
|
Chunk chunk = wrapper.read(ChunkType1_16_2.TYPE);
|
||||||
if (!chunk.isFullChunk()) {
|
if (!chunk.isFullChunk()) {
|
||||||
// All chunks are full chunk packets now (1.16 already stopped sending non-full chunks)
|
// All chunks are full chunk packets now (1.16 already stopped sending non-full chunks)
|
||||||
// Construct multi block change packets instead
|
// Construct multi block change packets instead
|
||||||
|
@ -110,7 +110,7 @@ public final class Protocol1_19_4To1_19_3 extends AbstractProtocol<ClientboundPa
|
|||||||
public void init(final UserConnection user) {
|
public void init(final UserConnection user) {
|
||||||
addEntityTracker(user, new EntityTrackerBase(user, EntityTypes1_19_4.PLAYER));
|
addEntityTracker(user, new EntityTrackerBase(user, EntityTypes1_19_4.PLAYER));
|
||||||
|
|
||||||
user.put(new PlayerVehicleTracker(user));
|
user.put(new PlayerVehicleTracker());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -179,7 +179,7 @@ public final class EntityPackets extends EntityRewriter<ClientboundPackets1_19_3
|
|||||||
map(Type.STRING); // Dimension
|
map(Type.STRING); // Dimension
|
||||||
map(Type.STRING); // World
|
map(Type.STRING); // World
|
||||||
handler(worldDataTrackerHandlerByKey());
|
handler(worldDataTrackerHandlerByKey());
|
||||||
handler(wrapper -> wrapper.user().put(new PlayerVehicleTracker(wrapper.user())));
|
handler(wrapper -> wrapper.user().put(new PlayerVehicleTracker()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -17,17 +17,12 @@
|
|||||||
*/
|
*/
|
||||||
package com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3.storage;
|
package com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3.storage;
|
||||||
|
|
||||||
import com.viaversion.viaversion.api.connection.StoredObject;
|
import com.viaversion.viaversion.api.connection.StorableObject;
|
||||||
import com.viaversion.viaversion.api.connection.UserConnection;
|
|
||||||
|
|
||||||
public class PlayerVehicleTracker extends StoredObject {
|
public class PlayerVehicleTracker implements StorableObject {
|
||||||
|
|
||||||
private int vehicleId = -1;
|
private int vehicleId = -1;
|
||||||
|
|
||||||
public PlayerVehicleTracker(final UserConnection user) {
|
|
||||||
super(user);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getVehicleId() {
|
public int getVehicleId() {
|
||||||
return this.vehicleId;
|
return this.vehicleId;
|
||||||
}
|
}
|
||||||
@ -35,5 +30,4 @@ public class PlayerVehicleTracker extends StoredObject {
|
|||||||
public void setVehicleId(final int vehicleId) {
|
public void setVehicleId(final int vehicleId) {
|
||||||
this.vehicleId = vehicleId;
|
this.vehicleId = vehicleId;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren