3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-11-20 06:50:08 +01:00

Save negative item amounts in 1.10->1.11 (#3921)

Dieser Commit ist enthalten in:
EnZaXD 2024-06-09 17:07:29 +02:00 committet von GitHub
Ursprung 2fba2c1e65
Commit d0ed528788
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: B5690EEEBB952194
2 geänderte Dateien mit 19 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -144,7 +144,6 @@ public class EntityMappings1_11 {
if (hasEntityTag(item)) { if (hasEntityTag(item)) {
toClient(item.tag().getCompoundTag("EntityTag"), backwards); toClient(item.tag().getCompoundTag("EntityTag"), backwards);
} }
if (item != null && item.amount() <= 0) item.setAmount(1);
} }
public static void toServerItem(Item item) { public static void toServerItem(Item item) {

Datei anzeigen

@ -17,6 +17,8 @@
*/ */
package com.viaversion.viaversion.protocols.v1_10to1_11.rewriter; package com.viaversion.viaversion.protocols.v1_10to1_11.rewriter;
import com.viaversion.nbt.tag.ByteTag;
import com.viaversion.nbt.tag.CompoundTag;
import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers; import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
@ -74,14 +76,30 @@ public class ItemPacketRewriter1_11 extends ItemRewriter<ClientboundPackets1_9_3
@Override @Override
public Item handleItemToClient(UserConnection connection, Item item) { public Item handleItemToClient(UserConnection connection, Item item) {
if (item != null && item.amount() <= 0) {
CompoundTag tag = item.tag();
if (tag == null) {
item.setTag(tag = new CompoundTag());
}
tag.putByte(nbtTagName(), (byte) item.amount());
item.setAmount(1);
}
EntityMappings1_11.toClientItem(item); EntityMappings1_11.toClientItem(item);
return item; return item;
} }
@Override @Override
public Item handleItemToServer(UserConnection connection, Item item) { public Item handleItemToServer(UserConnection connection, Item item) {
if (item == null) {
return null;
}
if (item.tag() != null && item.tag().contains(nbtTagName())) {
item.setAmount(item.tag().<ByteTag>removeUnchecked(nbtTagName()).asByte());
if (item.tag().isEmpty()) {
item.setTag(null);
}
}
EntityMappings1_11.toServerItem(item); EntityMappings1_11.toServerItem(item);
if (item == null) return null;
boolean newItem = item.identifier() >= 218 && item.identifier() <= 234; boolean newItem = item.identifier() >= 218 && item.identifier() <= 234;
newItem |= item.identifier() == 449 || item.identifier() == 450; newItem |= item.identifier() == 449 || item.identifier() == 450;
if (newItem) { // Replace server-side unknown items if (newItem) { // Replace server-side unknown items