Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-11-19 14:30:16 +01:00
Handle Slot tag inside CONTAINER tag in 1.20.3->1.20.5
Fixes shulker box tooltips not showing all items for 1.20.3 clients on 1.20.5+ servers. TODO find out if we should backup the Slot tag in VV as well (it seems the server resyncs it, but I'm not sure if there are cases were that breaks) for creative mode. Closes https://github.com/ViaVersion/ViaBackwards/issues/803 Closes https://github.com/ViaVersion/ViaVersion/issues/3903
Dieser Commit ist enthalten in:
Ursprung
dc503cd613
Commit
df0572e570
@ -18,6 +18,7 @@
|
|||||||
package com.viaversion.viaversion.protocols.v1_20_3to1_20_5.rewriter;
|
package com.viaversion.viaversion.protocols.v1_20_3to1_20_5.rewriter;
|
||||||
|
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
|
import com.viaversion.nbt.tag.ByteTag;
|
||||||
import com.viaversion.nbt.tag.CompoundTag;
|
import com.viaversion.nbt.tag.CompoundTag;
|
||||||
import com.viaversion.nbt.tag.FloatTag;
|
import com.viaversion.nbt.tag.FloatTag;
|
||||||
import com.viaversion.nbt.tag.IntArrayTag;
|
import com.viaversion.nbt.tag.IntArrayTag;
|
||||||
@ -798,7 +799,19 @@ public final class StructuredDataConverter {
|
|||||||
|
|
||||||
private void convertItemList(final UserConnection connection, final Item[] items, final CompoundTag tag, final String key) {
|
private void convertItemList(final UserConnection connection, final Item[] items, final CompoundTag tag, final String key) {
|
||||||
final ListTag<CompoundTag> itemsTag = new ListTag<>(CompoundTag.class);
|
final ListTag<CompoundTag> itemsTag = new ListTag<>(CompoundTag.class);
|
||||||
for (final Item item : items) {
|
for (int i = 0; i < items.length; i++) {
|
||||||
|
final Item item = items[i];
|
||||||
|
final CompoundTag savedItem = itemToTag(connection, item);
|
||||||
|
// 1.20.4 clients need the Slot to display the item correctly
|
||||||
|
if (backupInconvertibleData) {
|
||||||
|
savedItem.putByte("Slot", (byte) i);
|
||||||
|
}
|
||||||
|
itemsTag.add(savedItem);
|
||||||
|
}
|
||||||
|
tag.put(key, itemsTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
private CompoundTag itemToTag(final UserConnection connection, final Item item) {
|
||||||
final CompoundTag savedItem = new CompoundTag();
|
final CompoundTag savedItem = new CompoundTag();
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
final String name = toMappedItemName(item.identifier());
|
final String name = toMappedItemName(item.identifier());
|
||||||
@ -816,10 +829,7 @@ public final class StructuredDataConverter {
|
|||||||
} else {
|
} else {
|
||||||
savedItem.putString("id", "air");
|
savedItem.putString("id", "air");
|
||||||
}
|
}
|
||||||
|
return savedItem;
|
||||||
itemsTag.add(savedItem);
|
|
||||||
}
|
|
||||||
tag.put(key, itemsTag);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void convertEnchantments(final Enchantments data, final CompoundTag tag, final boolean storedEnchantments) {
|
private void convertEnchantments(final Enchantments data, final CompoundTag tag, final boolean storedEnchantments) {
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren