Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-12-27 00:22:51 +01:00
21w17a
Dieser Commit ist enthalten in:
Ursprung
cad358322d
Commit
8e15b6d42b
@ -76,7 +76,7 @@ public class ProtocolVersion {
|
||||
public static final ProtocolVersion v1_16_2 = register(751, "1.16.2");
|
||||
public static final ProtocolVersion v1_16_3 = register(753, "1.16.3");
|
||||
public static final ProtocolVersion v1_16_4 = register(754, "1.16.4/5", new VersionRange("1.16", 4, 5));
|
||||
public static final ProtocolVersion v1_17 = register(755, 23, "1.17");
|
||||
public static final ProtocolVersion v1_17 = register(755, 25, "1.17");
|
||||
public static final ProtocolVersion unknown = register(-1, "UNKNOWN");
|
||||
|
||||
public static ProtocolVersion register(int version, String name) {
|
||||
|
@ -8,7 +8,7 @@ plugins {
|
||||
|
||||
allprojects {
|
||||
group = "com.viaversion"
|
||||
version = "4.0.0-21w16a"
|
||||
version = "4.0.0-21w17a"
|
||||
description = "Allow newer clients to join older server versions."
|
||||
}
|
||||
|
||||
|
@ -78,7 +78,7 @@ public enum ClientboundPackets1_17 implements ClientboundPacketType {
|
||||
FACE_PLAYER, // 0x36
|
||||
PLAYER_POSITION, // 0x37
|
||||
UNLOCK_RECIPES, // 0x38
|
||||
DESTROY_ENTITIES, // 0x39
|
||||
REMOVE_ENTITY, // 0x39
|
||||
REMOVE_ENTITY_EFFECT, // 0x3A
|
||||
RESOURCE_PACK, // 0x3B
|
||||
RESPAWN, // 0x3C
|
||||
|
@ -215,7 +215,7 @@ public class Protocol1_17To1_16_4 extends AbstractProtocol<ClientboundPackets1_1
|
||||
"minecraft:snow_step_sound_blocks", "minecraft:inside_step_sound_blocks", "minecraft:occludes_vibration_signals", "minecraft:dripstone_replaceable_blocks",
|
||||
"minecraft:cave_vines", "minecraft:moss_replaceable", "minecraft:deepslate_ore_replaceables", "minecraft:lush_ground_replaceable",
|
||||
"minecraft:diamond_ores", "minecraft:iron_ores", "minecraft:lapis_ores", "minecraft:redstone_ores", "minecraft:stone_ore_replaceables",
|
||||
"minecraft:coal_ores", "minecraft:copper_ores", "minecraft:emerald_ores", "minecraft:dirt", "minecraft:snow");
|
||||
"minecraft:coal_ores", "minecraft:copper_ores", "minecraft:emerald_ores", "minecraft:dirt", "minecraft:snow", "minecraft:small_dripleaf_placeable");
|
||||
tagRewriter.addEmptyTags(RegistryType.ENTITY, "minecraft:powder_snow_walkable_mobs", "minecraft:axolotl_always_hostiles", "minecraft:axolotl_tempted_hostiles",
|
||||
"minecraft:axolotl_hunt_targets", "minecraft:freeze_hurts_extra_types", "minecraft:freeze_immune_entity_types");
|
||||
|
||||
|
@ -19,14 +19,17 @@ package com.viaversion.viaversion.protocols.protocol1_17to1_16_4.packets;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.entities.Entity1_17Types;
|
||||
import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType;
|
||||
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
|
||||
import com.viaversion.viaversion.api.protocol.remapper.PacketRemapper;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_14;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_17;
|
||||
import com.viaversion.viaversion.data.EntityTracker;
|
||||
import com.viaversion.viaversion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_16_2;
|
||||
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.ClientboundPackets1_17;
|
||||
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4;
|
||||
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.metadata.MetadataRewriter1_17To1_16_4;
|
||||
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.storage.EntityTracker1_17;
|
||||
|
||||
public class EntityPackets {
|
||||
|
||||
@ -36,7 +39,26 @@ public class EntityPackets {
|
||||
metadataRewriter.registerTracker(ClientboundPackets1_16_2.SPAWN_MOB);
|
||||
metadataRewriter.registerTracker(ClientboundPackets1_16_2.SPAWN_PLAYER, Entity1_17Types.PLAYER);
|
||||
metadataRewriter.registerMetadataRewriter(ClientboundPackets1_16_2.ENTITY_METADATA, Types1_14.METADATA_LIST, Types1_17.METADATA_LIST);
|
||||
metadataRewriter.registerEntityDestroy(ClientboundPackets1_16_2.DESTROY_ENTITIES);
|
||||
|
||||
protocol.registerClientbound(ClientboundPackets1_16_2.DESTROY_ENTITIES, ClientboundPackets1_17.REMOVE_ENTITY, new PacketRemapper() {
|
||||
@Override
|
||||
public void registerMap() {
|
||||
handler(wrapper -> {
|
||||
int[] entityIds = wrapper.read(Type.VAR_INT_ARRAY_PRIMITIVE);
|
||||
wrapper.cancel();
|
||||
|
||||
EntityTracker entityTracker = wrapper.user().get(EntityTracker1_17.class);
|
||||
for (int entityId : entityIds) {
|
||||
entityTracker.removeEntity(entityId);
|
||||
|
||||
// Send individual remove packets
|
||||
PacketWrapper newPacket = wrapper.create(ClientboundPackets1_17.REMOVE_ENTITY);
|
||||
newPacket.write(Type.VAR_INT, entityId);
|
||||
newPacket.send(Protocol1_17To1_16_4.class);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
protocol.registerClientbound(ClientboundPackets1_16_2.ENTITY_PROPERTIES, new PacketRemapper() {
|
||||
@Override
|
||||
|
@ -135,6 +135,11 @@ public abstract class MetadataRewriter {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sub 1.17 method for entity remove packets.
|
||||
*
|
||||
* @param packetType remove entities packet type
|
||||
*/
|
||||
public void registerEntityDestroy(ClientboundPacketType packetType) {
|
||||
protocol.registerClientbound(packetType, new PacketRemapper() {
|
||||
@Override
|
||||
@ -150,6 +155,24 @@ public abstract class MetadataRewriter {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 1.17+ method for entity remove packets.
|
||||
*
|
||||
* @param packetType remove entities packet type
|
||||
*/
|
||||
public void registerRemoveEntity(ClientboundPacketType packetType) {
|
||||
protocol.registerClientbound(packetType, new PacketRemapper() {
|
||||
@Override
|
||||
public void registerMap() {
|
||||
map(Type.VAR_INT); // 0 - Entity ids
|
||||
handler(wrapper -> {
|
||||
int entity = wrapper.get(Type.VAR_INT, 0);
|
||||
wrapper.user().get(entityTrackerClass).removeEntity(entity);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void registerMetadataRewriter(ClientboundPacketType packetType, @Nullable Type<List<Metadata>> oldMetaType, Type<List<Metadata>> newMetaType) {
|
||||
protocol.registerClientbound(packetType, new PacketRemapper() {
|
||||
@Override
|
||||
|
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren