Merge branch 'master' into dev

# Conflicts:
#	common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19to1_18_2/packets/EntityPackets.java
#	common/src/main/java/com/viaversion/viaversion/rewriter/EntityRewriter.java
#	gradle/libs.versions.toml
This commit is contained in:
Nassim Jahnke 2024-03-09 12:59:36 +01:00
commit b426302e76
No known key found for this signature in database
GPG Key ID: EF6771C01F6EF02F
13 changed files with 43 additions and 43 deletions

View File

@ -98,13 +98,13 @@ public class MappingDataBase implements MappingData {
particleMappings = new IdentityMappings(unmappedParticles.size(), mappedParticles.size()); particleMappings = new IdentityMappings(unmappedParticles.size(), mappedParticles.size());
} }
final List<String> identifiers = unmappedParticles.getValue().stream().map(t -> (String) t.getValue()).collect(Collectors.toList()); final List<String> identifiers = unmappedParticles.stream().map(StringTag::getValue).collect(Collectors.toList());
final List<String> mappedIdentifiers = mappedParticles.getValue().stream().map(t -> (String) t.getValue()).collect(Collectors.toList()); final List<String> mappedIdentifiers = mappedParticles.stream().map(StringTag::getValue).collect(Collectors.toList());
this.particleMappings = new ParticleMappings(identifiers, mappedIdentifiers, particleMappings); this.particleMappings = new ParticleMappings(identifiers, mappedIdentifiers, particleMappings);
} }
} }
final CompoundTag tagsTag = data.get("tags"); final CompoundTag tagsTag = data.getCompoundTag("tags");
if (tagsTag != null) { if (tagsTag != null) {
this.tags = new EnumMap<>(RegistryType.class); this.tags = new EnumMap<>(RegistryType.class);
loadTags(RegistryType.ITEM, tagsTag); loadTags(RegistryType.ITEM, tagsTag);
@ -132,7 +132,7 @@ public class MappingDataBase implements MappingData {
} }
private void loadTags(final RegistryType type, final CompoundTag data) { private void loadTags(final RegistryType type, final CompoundTag data) {
final CompoundTag tag = data.get(type.resourceLocation()); final CompoundTag tag = data.getCompoundTag(type.resourceLocation());
if (tag == null) { if (tag == null) {
return; return;
} }

View File

@ -158,22 +158,22 @@ public final class MappingDataLoader {
final AddConsumer<V> addConsumer, final AddConsumer<V> addConsumer,
final MappingsSupplier<M, V> mappingsSupplier final MappingsSupplier<M, V> mappingsSupplier
) { ) {
final CompoundTag tag = mappingsTag.get(key); final CompoundTag tag = mappingsTag.getCompoundTag(key);
if (tag == null) { if (tag == null) {
return null; return null;
} }
final ByteTag serializationStragetyTag = tag.get("id"); final ByteTag serializationStragetyTag = tag.getUnchecked("id");
final IntTag mappedSizeTag = tag.get("mappedSize"); final IntTag mappedSizeTag = tag.getUnchecked("mappedSize");
final byte strategy = serializationStragetyTag.asByte(); final byte strategy = serializationStragetyTag.asByte();
final V mappings; final V mappings;
if (strategy == DIRECT_ID) { if (strategy == DIRECT_ID) {
final IntArrayTag valuesTag = tag.get("val"); final IntArrayTag valuesTag = tag.getIntArrayTag("val");
return IntArrayMappings.of(valuesTag.getValue(), mappedSizeTag.asInt()); return IntArrayMappings.of(valuesTag.getValue(), mappedSizeTag.asInt());
} else if (strategy == SHIFTS_ID) { } else if (strategy == SHIFTS_ID) {
final IntArrayTag shiftsAtTag = tag.get("at"); final IntArrayTag shiftsAtTag = tag.getIntArrayTag("at");
final IntArrayTag shiftsTag = tag.get("to"); final IntArrayTag shiftsTag = tag.getIntArrayTag("to");
final IntTag sizeTag = tag.get("size"); final IntTag sizeTag = tag.getUnchecked("size");
final int[] shiftsAt = shiftsAtTag.getValue(); final int[] shiftsAt = shiftsAtTag.getValue();
final int[] shiftsTo = shiftsTag.getValue(); final int[] shiftsTo = shiftsTag.getValue();
final int size = sizeTag.asInt(); final int size = sizeTag.asInt();
@ -197,9 +197,9 @@ public final class MappingDataLoader {
} }
} }
} else if (strategy == CHANGES_ID) { } else if (strategy == CHANGES_ID) {
final IntArrayTag changesAtTag = tag.get("at"); final IntArrayTag changesAtTag = tag.getIntArrayTag("at");
final IntArrayTag valuesTag = tag.get("val"); final IntArrayTag valuesTag = tag.getIntArrayTag("val");
final IntTag sizeTag = tag.get("size"); final IntTag sizeTag = tag.getUnchecked("size");
final boolean fillBetween = tag.get("nofill") == null; final boolean fillBetween = tag.get("nofill") == null;
final int[] changesAt = changesAtTag.getValue(); final int[] changesAt = changesAtTag.getValue();
final int[] values = valuesTag.getValue(); final int[] values = valuesTag.getValue();
@ -219,7 +219,7 @@ public final class MappingDataLoader {
addConsumer.addTo(mappings, id, values[i]); addConsumer.addTo(mappings, id, values[i]);
} }
} else if (strategy == IDENTITY_ID) { } else if (strategy == IDENTITY_ID) {
final IntTag sizeTag = tag.get("size"); final IntTag sizeTag = tag.getUnchecked("size");
return new IdentityMappings(sizeTag.asInt(), mappedSizeTag.asInt()); return new IdentityMappings(sizeTag.asInt(), mappedSizeTag.asInt());
} else { } else {
throw new IllegalArgumentException("Unknown serialization strategy: " + strategy); throw new IllegalArgumentException("Unknown serialization strategy: " + strategy);
@ -240,8 +240,8 @@ public final class MappingDataLoader {
} }
return new FullMappingsBase( return new FullMappingsBase(
unmappedElements.getValue().stream().map(StringTag::getValue).collect(Collectors.toList()), unmappedElements.stream().map(StringTag::getValue).collect(Collectors.toList()),
mappedElements.getValue().stream().map(StringTag::getValue).collect(Collectors.toList()), mappedElements.stream().map(StringTag::getValue).collect(Collectors.toList()),
mappings mappings
); );
} }

View File

@ -114,7 +114,7 @@ public class WorldPackets {
UUID targetUuid = UUID.fromString((String) targetUuidTag.getValue()); UUID targetUuid = UUID.fromString((String) targetUuidTag.getValue());
compoundTag.put("Target", new IntArrayTag(UUIDUtil.toIntArray(targetUuid))); compoundTag.put("Target", new IntArrayTag(UUIDUtil.toIntArray(targetUuid)));
} else if (id.equals("minecraft:skull") && compoundTag.getCompoundTag("Owner") != null) { } else if (id.equals("minecraft:skull") && compoundTag.getCompoundTag("Owner") != null) {
CompoundTag ownerTag = compoundTag.remove("Owner"); CompoundTag ownerTag = compoundTag.removeUnchecked("Owner");
Tag ownerUuidTag = ownerTag.remove("Id"); Tag ownerUuidTag = ownerTag.remove("Id");
if (ownerUuidTag instanceof StringTag) { if (ownerUuidTag instanceof StringTag) {
UUID ownerUuid = UUID.fromString(((StringTag) ownerUuidTag).getValue()); UUID ownerUuid = UUID.fromString(((StringTag) ownerUuidTag).getValue());

View File

@ -77,10 +77,10 @@ public final class EntityPackets extends EntityRewriter<ClientboundPackets1_16_2
map(Type.NAMED_COMPOUND_TAG); // Current dimension map(Type.NAMED_COMPOUND_TAG); // Current dimension
handler(wrapper -> { handler(wrapper -> {
// Add new dimension fields // Add new dimension fields
CompoundTag dimensionRegistry = wrapper.get(Type.NAMED_COMPOUND_TAG, 0).get("minecraft:dimension_type"); CompoundTag dimensionRegistry = wrapper.get(Type.NAMED_COMPOUND_TAG, 0).getCompoundTag("minecraft:dimension_type");
ListTag<CompoundTag> dimensions = dimensionRegistry.getListTag("value", CompoundTag.class); ListTag<CompoundTag> dimensions = dimensionRegistry.getListTag("value", CompoundTag.class);
for (CompoundTag dimension : dimensions) { for (CompoundTag dimension : dimensions) {
CompoundTag dimensionCompound = dimension.get("element"); CompoundTag dimensionCompound = dimension.getCompoundTag("element");
addNewDimensionData(dimensionCompound); addNewDimensionData(dimensionCompound);
} }

View File

@ -69,10 +69,10 @@ public final class Protocol1_18_2To1_18 extends AbstractProtocol<ClientboundPack
map(Type.NAMED_COMPOUND_TAG); // Current dimension data map(Type.NAMED_COMPOUND_TAG); // Current dimension data
handler(wrapper -> { handler(wrapper -> {
final CompoundTag registry = wrapper.get(Type.NAMED_COMPOUND_TAG, 0); final CompoundTag registry = wrapper.get(Type.NAMED_COMPOUND_TAG, 0);
final CompoundTag dimensionsHolder = registry.get("minecraft:dimension_type"); final CompoundTag dimensionsHolder = registry.getCompoundTag("minecraft:dimension_type");
final ListTag<CompoundTag> dimensions = dimensionsHolder.getListTag("value", CompoundTag.class); final ListTag<CompoundTag> dimensions = dimensionsHolder.getListTag("value", CompoundTag.class);
for (final CompoundTag dimension : dimensions) { for (final CompoundTag dimension : dimensions) {
addTagPrefix(dimension.get("element")); addTagPrefix(dimension.getCompoundTag("element"));
} }
addTagPrefix(wrapper.get(Type.NAMED_COMPOUND_TAG, 1)); addTagPrefix(wrapper.get(Type.NAMED_COMPOUND_TAG, 1));

View File

@ -88,7 +88,7 @@ public final class Protocol1_19_1To1_19 extends AbstractProtocol<ClientboundPack
private static final CompoundTag CHAT_REGISTRY; private static final CompoundTag CHAT_REGISTRY;
static { static {
CHAT_REGISTRY = SNBT.deserializeCompoundTag(CHAT_REGISTRY_SNBT).get("minecraft:chat_type"); CHAT_REGISTRY = SNBT.deserializeCompoundTag(CHAT_REGISTRY_SNBT).getCompoundTag("minecraft:chat_type");
} }
public Protocol1_19_1To1_19() { public Protocol1_19_1To1_19() {
@ -224,7 +224,7 @@ public final class Protocol1_19_1To1_19 extends AbstractProtocol<ClientboundPack
final CompoundTag registry = wrapper.passthrough(Type.NAMED_COMPOUND_TAG); final CompoundTag registry = wrapper.passthrough(Type.NAMED_COMPOUND_TAG);
final ListTag<CompoundTag> chatTypes = registry.getCompoundTag("minecraft:chat_type").getListTag("value", CompoundTag.class); final ListTag<CompoundTag> chatTypes = registry.getCompoundTag("minecraft:chat_type").getListTag("value", CompoundTag.class);
for (final CompoundTag chatType : chatTypes) { for (final CompoundTag chatType : chatTypes) {
final NumberTag idTag = chatType.get("id"); final NumberTag idTag = chatType.getNumberTag("id");
chatTypeStorage.addChatType(idTag.asInt(), chatType); chatTypeStorage.addChatType(idTag.asInt(), chatType);
} }

View File

@ -63,11 +63,11 @@ public final class EntityPackets extends EntityRewriter<ClientboundPackets1_19_3
final CompoundTag damageTypeRegistry = protocol.getMappingData().damageTypesRegistry(); final CompoundTag damageTypeRegistry = protocol.getMappingData().damageTypesRegistry();
registry.put("minecraft:damage_type", damageTypeRegistry); registry.put("minecraft:damage_type", damageTypeRegistry);
final CompoundTag biomeRegistry = registry.get("minecraft:worldgen/biome"); final CompoundTag biomeRegistry = registry.getCompoundTag("minecraft:worldgen/biome");
final ListTag<CompoundTag> biomes = biomeRegistry.getListTag("value", CompoundTag.class); final ListTag<CompoundTag> biomes = biomeRegistry.getListTag("value", CompoundTag.class);
for (final CompoundTag biomeTag : biomes) { for (final CompoundTag biomeTag : biomes) {
final CompoundTag biomeData = biomeTag.get("element"); final CompoundTag biomeData = biomeTag.getCompoundTag("element");
final StringTag precipitation = biomeData.get("precipitation"); final StringTag precipitation = biomeData.getStringTag("precipitation");
final byte precipitationByte = precipitation.getValue().equals("none") ? (byte) 0 : 1; final byte precipitationByte = precipitation.getValue().equals("none") ? (byte) 0 : 1;
biomeData.put("has_precipitation", new ByteTag(precipitationByte)); biomeData.put("has_precipitation", new ByteTag(precipitationByte));
} }

View File

@ -39,7 +39,7 @@ public final class MappingData extends MappingDataBase {
protected void loadExtras(final CompoundTag daata) { protected void loadExtras(final CompoundTag daata) {
final ListTag<CompoundTag> chatTypes = MappingDataLoader.loadNBTFromFile("chat-types-1.19.nbt").getListTag("values", CompoundTag.class); final ListTag<CompoundTag> chatTypes = MappingDataLoader.loadNBTFromFile("chat-types-1.19.nbt").getListTag("values", CompoundTag.class);
for (final CompoundTag chatType : chatTypes) { for (final CompoundTag chatType : chatTypes) {
final NumberTag idTag = chatType.get("id"); final NumberTag idTag = chatType.getNumberTag("id");
defaultChatTypes.put(idTag.asInt(), chatType); defaultChatTypes.put(idTag.asInt(), chatType);
} }
} }

View File

@ -81,7 +81,7 @@ public final class EntityPackets extends EntityRewriter<ClientboundPackets1_18,
public static final CompoundTag CHAT_REGISTRY; public static final CompoundTag CHAT_REGISTRY;
static { static {
CHAT_REGISTRY = SNBT.deserializeCompoundTag(CHAT_REGISTRY_SNBT).get("minecraft:chat_type"); CHAT_REGISTRY = SNBT.deserializeCompoundTag(CHAT_REGISTRY_SNBT).getCompoundTag("minecraft:chat_type");
} }
public EntityPackets(final Protocol1_19To1_18_2 protocol) { public EntityPackets(final Protocol1_19To1_18_2 protocol) {
@ -214,8 +214,8 @@ public final class EntityPackets extends EntityRewriter<ClientboundPackets1_18,
final Map<String, DimensionData> dimensionDataMap = new HashMap<>(dimensions.size()); final Map<String, DimensionData> dimensionDataMap = new HashMap<>(dimensions.size());
final Map<CompoundTag, String> dimensionsMap = new HashMap<>(dimensions.size()); final Map<CompoundTag, String> dimensionsMap = new HashMap<>(dimensions.size());
for (final CompoundTag dimension : dimensions) { for (final CompoundTag dimension : dimensions) {
final NumberTag idTag = dimension.get("id"); final NumberTag idTag = dimension.getNumberTag("id");
final CompoundTag element = dimension.get("element"); final CompoundTag element = dimension.getCompoundTag("element");
final String name = dimension.getStringTag("name").getValue(); final String name = dimension.getStringTag("name").getValue();
addMonsterSpawnData(element); addMonsterSpawnData(element);
dimensionDataMap.put(Key.stripMinecraftNamespace(name), new DimensionDataImpl(idTag.asInt(), element)); dimensionDataMap.put(Key.stripMinecraftNamespace(name), new DimensionDataImpl(idTag.asInt(), element));

View File

@ -76,11 +76,11 @@ public final class EntityPackets extends EntityRewriter<ClientboundPackets1_19_4
handler(worldDataTrackerHandlerByKey()); // Tracks world height and name for chunk data and entity (un)tracking handler(worldDataTrackerHandlerByKey()); // Tracks world height and name for chunk data and entity (un)tracking
handler(wrapper -> { handler(wrapper -> {
final CompoundTag registry = wrapper.get(Type.NAMED_COMPOUND_TAG, 0); final CompoundTag registry = wrapper.get(Type.NAMED_COMPOUND_TAG, 0);
final CompoundTag damageTypeRegistry = registry.get("minecraft:damage_type"); final CompoundTag damageTypeRegistry = registry.getCompoundTag("minecraft:damage_type");
final ListTag<CompoundTag> damageTypes = damageTypeRegistry.get("value"); final ListTag<CompoundTag> damageTypes = damageTypeRegistry.getListTag("value", CompoundTag.class);
int highestId = -1; int highestId = -1;
for (final CompoundTag damageType : damageTypes) { for (final CompoundTag damageType : damageTypes) {
final IntTag id = damageType.get("id"); final IntTag id = damageType.getUnchecked("id");
highestId = Math.max(highestId, id.asInt()); highestId = Math.max(highestId, id.asInt());
} }

View File

@ -172,15 +172,15 @@ public final class InventoryPackets extends ItemRewriter<ClientboundPackets1_19_
final ListTag<StringTag> messages = new ListTag<>(StringTag.class); final ListTag<StringTag> messages = new ListTag<>(StringTag.class);
for (int i = 1; i < 5; i++) { for (int i = 1; i < 5; i++) {
final StringTag text = tag.remove("Text" + i); final Tag text = tag.remove("Text" + i);
messages.add(text != null ? text : new StringTag(ComponentUtil.emptyJsonComponentString())); messages.add(text instanceof StringTag ? (StringTag) text : new StringTag(ComponentUtil.emptyJsonComponentString()));
} }
frontText.put("messages", messages); frontText.put("messages", messages);
final ListTag<StringTag> filteredMessages = new ListTag<>(StringTag.class); final ListTag<StringTag> filteredMessages = new ListTag<>(StringTag.class);
for (int i = 1; i < 5; i++) { for (int i = 1; i < 5; i++) {
final StringTag text = tag.remove("FilteredText" + i); final Tag text = tag.remove("FilteredText" + i);
filteredMessages.add(text != null ? text : messages.get(i - 1)); filteredMessages.add(text instanceof StringTag ? (StringTag) text : messages.get(i - 1));
} }
if (!filteredMessages.equals(messages)) { if (!filteredMessages.equals(messages)) {
frontText.put("filtered_messages", filteredMessages); frontText.put("filtered_messages", filteredMessages);

View File

@ -474,8 +474,8 @@ public abstract class EntityRewriter<C extends ClientboundPacketType, T extends
} }
public void trackBiomeSize(final UserConnection connection, final CompoundTag registry) { public void trackBiomeSize(final UserConnection connection, final CompoundTag registry) {
final CompoundTag biomeRegistry = registry.get("minecraft:worldgen/biome"); final CompoundTag biomeRegistry = registry.getCompoundTag("minecraft:worldgen/biome");
final ListTag<?> biomes = biomeRegistry.get("value"); final ListTag<?> biomes = biomeRegistry.getListTag("value");
tracker(connection).setBiomesSent(biomes.size()); tracker(connection).setBiomesSent(biomes.size());
} }
@ -494,8 +494,8 @@ public abstract class EntityRewriter<C extends ClientboundPacketType, T extends
final ListTag<CompoundTag> dimensions = registry.getCompoundTag("minecraft:dimension_type").getListTag("value", CompoundTag.class); final ListTag<CompoundTag> dimensions = registry.getCompoundTag("minecraft:dimension_type").getListTag("value", CompoundTag.class);
final Map<String, DimensionData> dimensionDataMap = new HashMap<>(dimensions.size()); final Map<String, DimensionData> dimensionDataMap = new HashMap<>(dimensions.size());
for (final CompoundTag dimension : dimensions) { for (final CompoundTag dimension : dimensions) {
final NumberTag idTag = dimension.get("id"); final NumberTag idTag = dimension.getNumberTag("id");
final CompoundTag element = dimension.get("element"); final CompoundTag element = dimension.getCompoundTag("element");
final String name = dimension.getStringTag("name").getValue(); final String name = dimension.getStringTag("name").getValue();
dimensionDataMap.put(Key.stripMinecraftNamespace(name), new DimensionDataImpl(idTag.asInt(), element)); dimensionDataMap.put(Key.stripMinecraftNamespace(name), new DimensionDataImpl(idTag.asInt(), element));
} }

View File

@ -4,7 +4,7 @@ metadata.format.version = "1.1"
gson = "2.10.1" gson = "2.10.1"
fastutil = "8.5.12" fastutil = "8.5.12"
vianbt = "4.4.0" vianbt = "4.4.2"
mcstructs = "2.4.2" mcstructs = "2.4.2"
# Common provided # Common provided