Compare commits
5 Commits
69a47053af
...
e11204d632
Author | SHA1 | Date |
---|---|---|
Glicz | e11204d632 | |
EnZaXD | abb1803aaf | |
Nassim Jahnke | e45a95c6ec | |
Nassim Jahnke | 17bda0fc29 | |
GliczDev | 503e8bd7e1 |
|
@ -68,7 +68,7 @@ import java.util.logging.Logger;
|
|||
|
||||
public interface ViaBackwardsPlatform {
|
||||
|
||||
String MINIMUM_VV_VERSION = "4.10.1";
|
||||
String MINIMUM_VV_VERSION = "4.10.2";
|
||||
|
||||
/**
|
||||
* Initialize ViaBackwards.
|
||||
|
|
|
@ -133,11 +133,11 @@ public final class EntityPackets1_19 extends EntityRewriter<ClientboundPackets1_
|
|||
final ListTag<CompoundTag> dimensions = TagUtil.getRegistryEntries(registry, "dimension_type");
|
||||
boolean found = false;
|
||||
for (final CompoundTag dimension : dimensions) {
|
||||
final StringTag nameTag = dimension.getStringTag("name");
|
||||
final String name = Key.stripMinecraftNamespace(dimension.getString("name"));
|
||||
final CompoundTag dimensionData = dimension.getCompoundTag("element");
|
||||
dimensionRegistryStorage.addDimension(nameTag.getValue(), dimensionData.copy());
|
||||
dimensionRegistryStorage.addDimension(name, dimensionData.copy());
|
||||
|
||||
if (!found && Key.stripMinecraftNamespace(nameTag.getValue()).equals(dimensionKey)) {
|
||||
if (!found && name.equals(dimensionKey)) {
|
||||
wrapper.write(Type.NAMED_COMPOUND_TAG, dimensionData);
|
||||
found = true;
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectOpenHashMap;
|
|||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
public final class DimensionRegistryStorage implements StorableObject {
|
||||
|
@ -32,7 +33,7 @@ public final class DimensionRegistryStorage implements StorableObject {
|
|||
private final Int2ObjectMap<CompoundTag> chatTypes = new Int2ObjectOpenHashMap<>();
|
||||
|
||||
public @Nullable CompoundTag dimension(final String dimensionKey) {
|
||||
final CompoundTag compoundTag = dimensions.get(dimensionKey);
|
||||
final CompoundTag compoundTag = dimensions.get(Key.stripMinecraftNamespace(dimensionKey));
|
||||
return compoundTag != null ? compoundTag.copy() : null;
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,31 @@ public final class EntityPackets1_19_4 extends EntityRewriter<ClientboundPackets
|
|||
|
||||
@Override
|
||||
public void registerPackets() {
|
||||
registerTrackerWithData1_19(ClientboundPackets1_19_4.SPAWN_ENTITY, EntityTypes1_19_4.FALLING_BLOCK);
|
||||
protocol.registerClientbound(ClientboundPackets1_19_4.SPAWN_ENTITY, new PacketHandlers() {
|
||||
@Override
|
||||
public void register() {
|
||||
map(Type.VAR_INT); // Entity id
|
||||
map(Type.UUID); // Entity UUID
|
||||
map(Type.VAR_INT); // Entity type
|
||||
map(Type.DOUBLE); // X
|
||||
map(Type.DOUBLE); // Y
|
||||
map(Type.DOUBLE); // Z
|
||||
map(Type.BYTE); // Pitch
|
||||
map(Type.BYTE); // Yaw
|
||||
map(Type.BYTE); // Head yaw
|
||||
map(Type.VAR_INT); // Data
|
||||
handler(wrapper -> {
|
||||
if (typeFromId(wrapper.get(Type.VAR_INT, 1)) == EntityTypes1_19_4.BLOCK_DISPLAY) {
|
||||
wrapper.set(Type.VAR_INT, 1, EntityTypes1_19_4.FALLING_BLOCK.getId());
|
||||
wrapper.set(Type.VAR_INT, 2, 1);
|
||||
wrapper.set(Type.DOUBLE, 0, wrapper.get(Type.DOUBLE, 0) + 0.5);
|
||||
wrapper.set(Type.DOUBLE, 2, wrapper.get(Type.DOUBLE, 2) + 0.5);
|
||||
}
|
||||
});
|
||||
handler(getSpawnTrackerWithDataHandler1_19(EntityTypes1_19_4.FALLING_BLOCK));
|
||||
}
|
||||
});
|
||||
|
||||
registerRemoveEntities(ClientboundPackets1_19_4.REMOVE_ENTITIES);
|
||||
registerMetadataRewriter(ClientboundPackets1_19_4.ENTITY_METADATA, Types1_19_4.METADATA_LIST, Types1_19_3.METADATA_LIST);
|
||||
|
||||
|
@ -156,6 +180,7 @@ public final class EntityPackets1_19_4 extends EntityRewriter<ClientboundPackets
|
|||
}
|
||||
});
|
||||
|
||||
filter().type(EntityTypes1_19_4.TEXT_DISPLAY).cancel(8); // Interpolation delay
|
||||
filter().type(EntityTypes1_19_4.TEXT_DISPLAY).index(22).handler(((event, meta) -> {
|
||||
// Send as custom display name
|
||||
event.setIndex(2);
|
||||
|
@ -165,13 +190,17 @@ public final class EntityPackets1_19_4 extends EntityRewriter<ClientboundPackets
|
|||
final JsonElement element = meta.value();
|
||||
protocol.getTranslatableRewriter().processText(event.user(), element);
|
||||
}));
|
||||
filter().type(EntityTypes1_19_4.DISPLAY).handler((event, meta) -> {
|
||||
// TODO Maybe spawn an extra entity to ride the armor stand for blocks and items
|
||||
// Remove a large heap of display metadata
|
||||
if (event.index() > 7) {
|
||||
event.cancel();
|
||||
}
|
||||
filter().type(EntityTypes1_19_4.ITEM_DISPLAY).index(22).handler((event, meta) -> {
|
||||
event.setIndex(8);
|
||||
event.createExtraMeta(new Metadata(5, Types1_19_3.META_TYPES.booleanType, true)); // No gravity
|
||||
});
|
||||
for (int i = 9; i < 22; i++) {
|
||||
filter().type(EntityTypes1_19_4.DISPLAY).cancel(i);
|
||||
/*
|
||||
Interpolation Duration, Translation, scale, rotation left, rotation right, billboard constraints,
|
||||
brightness override, view range, shadow radius, shadow strength, width, height, glow color override
|
||||
*/
|
||||
}
|
||||
|
||||
filter().type(EntityTypes1_19_4.INTERACTION).removeIndex(8); // Width
|
||||
filter().type(EntityTypes1_19_4.INTERACTION).removeIndex(9); // Height
|
||||
|
@ -181,6 +210,10 @@ public final class EntityPackets1_19_4 extends EntityRewriter<ClientboundPackets
|
|||
filter().type(EntityTypes1_19_4.SNIFFER).removeIndex(18); // Drop seed at tick
|
||||
|
||||
filter().type(EntityTypes1_19_4.ABSTRACT_HORSE).addIndex(18); // Owner UUID
|
||||
|
||||
filter().type(EntityTypes1_19_4.FALLING_BLOCK).handler((event, meta) ->
|
||||
event.createExtraMeta(new Metadata(5, Types1_19_3.META_TYPES.booleanType, true)) // No gravity
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -193,8 +226,7 @@ public final class EntityPackets1_19_4 extends EntityRewriter<ClientboundPackets
|
|||
storage.add(new Metadata(15, Types1_19_3.META_TYPES.byteType, (byte) (0x01 | 0x10))); // Small marker
|
||||
};
|
||||
mapEntityTypeWithData(EntityTypes1_19_4.TEXT_DISPLAY, EntityTypes1_19_4.ARMOR_STAND).spawnMetadata(displayMetaCreator);
|
||||
mapEntityTypeWithData(EntityTypes1_19_4.ITEM_DISPLAY, EntityTypes1_19_4.ARMOR_STAND).spawnMetadata(displayMetaCreator);
|
||||
mapEntityTypeWithData(EntityTypes1_19_4.BLOCK_DISPLAY, EntityTypes1_19_4.ARMOR_STAND).spawnMetadata(displayMetaCreator);
|
||||
mapEntityTypeWithData(EntityTypes1_19_4.ITEM_DISPLAY, EntityTypes1_19_4.ITEM);
|
||||
|
||||
mapEntityTypeWithData(EntityTypes1_19_4.INTERACTION, EntityTypes1_19_4.ARMOR_STAND).spawnMetadata(displayMetaCreator); // Not much we can do about this one
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
projectVersion=4.10.2-SNAPSHOT
|
||||
projectVersion=4.10.3-SNAPSHOT
|
||||
|
||||
# Smile emoji
|
||||
mcVersions=1.20.6,1.20.5,1.20.4, 1.20.3, 1.20.2, 1.20.1, 1.20, 1.19.4, 1.19.3, 1.19.2, 1.19.1, 1.19, 1.18.2, 1.18.1, 1.18, 1.17.1, 1.17, 1.16.5, 1.16.4, 1.16.3, 1.16.2, 1.16.1, 1.16, 1.15.2, 1.15.1, 1.15, 1.14.4, 1.14.3, 1.14.2, 1.14.1, 1.14, 1.13.2, 1.13.1, 1.13, 1.12.2, 1.12.1, 1.12, 1.11.2, 1.11.1, 1.11, 1.10.2, 1.10.1, 1.10
|
||||
|
|
Loading…
Reference in New Issue