Skip to content

Commit 13bc18b

Browse files
committed
Update VV usage
1 parent 4160b37 commit 13bc18b

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

common/src/main/java/com/viaversion/viabackwards/api/rewriters/BackwardsStructuredItemRewriter.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,14 @@
3333
import com.viaversion.viaversion.api.minecraft.HolderSet;
3434
import com.viaversion.viaversion.api.minecraft.data.StructuredDataContainer;
3535
import com.viaversion.viaversion.api.minecraft.data.StructuredDataKey;
36+
import com.viaversion.viaversion.api.minecraft.item.HashedItem;
3637
import com.viaversion.viaversion.api.minecraft.item.Item;
3738
import com.viaversion.viaversion.api.minecraft.item.data.CustomModelData1_21_4;
3839
import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType;
3940
import com.viaversion.viaversion.api.protocol.packet.ServerboundPacketType;
4041
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
4142
import com.viaversion.viaversion.api.type.Type;
43+
import com.viaversion.viaversion.data.item.ItemHasherBase;
4244
import com.viaversion.viaversion.rewriter.StructuredItemRewriter;
4345
import java.util.ArrayList;
4446
import java.util.List;
@@ -73,6 +75,9 @@ public Item handleItemToClient(final UserConnection connection, final Item item)
7375
return item;
7476
}
7577

78+
final ItemHasherBase itemHasher = itemHasher(connection); // get the original hashed item and store it later if there are any changes that could affect the data hashes
79+
final HashedItem originalHashedItem = hashItem(item, itemHasher);
80+
7681
final StructuredDataContainer dataContainer = item.dataContainer();
7782
updateItemDataComponentTypeIds(dataContainer, true);
7883

@@ -84,7 +89,8 @@ public Item handleItemToClient(final UserConnection connection, final Item item)
8489
item.setIdentifier(mappingData.getNewItemId(item.identifier()));
8590
}
8691

87-
updateItemDataComponents(connection, item, true);
92+
handleItemDataComponentsToClient(connection, item, dataContainer);
93+
storeOriginalHashedItem(item, itemHasher, originalHashedItem); // has to be called AFTER all modifications - override updateItemDataComponentsToClient instead of this method if needed
8894
return item;
8995
}
9096

@@ -115,7 +121,8 @@ public Item handleItemToClient(final UserConnection connection, final Item item)
115121
tag.putBoolean(nbtTagName("added_custom_name"), true);
116122
}
117123

118-
updateItemDataComponents(connection, item, true);
124+
handleItemDataComponentsToClient(connection, item, dataContainer);
125+
storeOriginalHashedItem(item, itemHasher, originalHashedItem); // has to be called AFTER all modifications - override updateItemDataComponentsToClient instead of this method if needed
119126
return item;
120127
}
121128

@@ -141,8 +148,8 @@ public Item handleItemToServer(final UserConnection connection, final Item item)
141148
}
142149
}
143150

144-
updateItemDataComponents(connection, item, false);
145-
restoreBackupData(item);
151+
restoreBackupData(item); // Restore first, then update the remaining
152+
handleItemDataComponentsToServer(connection, item, dataContainer);
146153
return item;
147154
}
148155

common/src/main/java/com/viaversion/viabackwards/protocol/v1_20_5to1_20_3/rewriter/BlockItemPacketRewriter1_20_5.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -360,8 +360,8 @@ private static int colorId(final String color) {
360360
super.handleItemToClient(connection, item);
361361

362362
// Text components since we skip the usual rewrite method
363-
updateComponent(connection, item, StructuredDataKey.ITEM_NAME, "item_name");
364-
updateComponent(connection, item, StructuredDataKey.CUSTOM_NAME, "custom_name");
363+
updateTextComponent(connection, item, StructuredDataKey.ITEM_NAME, "item_name");
364+
updateTextComponent(connection, item, StructuredDataKey.CUSTOM_NAME, "custom_name");
365365
final Tag[] lore = data.get(StructuredDataKey.LORE);
366366
if (lore != null) {
367367
for (final Tag tag : lore) {
@@ -391,9 +391,13 @@ private static int colorId(final String color) {
391391
return oldItem;
392392
}
393393

394+
// Items and data within components are handled in this protocol
394395
@Override
395-
protected void updateItemDataComponents(final UserConnection connection, final Item item, final boolean clientbound) {
396-
// Items and data within components are handled in this protocol
396+
protected void handleItemDataComponentsToClient(final UserConnection connection, final Item item, final StructuredDataContainer container) {
397+
}
398+
399+
@Override
400+
protected void handleItemDataComponentsToServer(final UserConnection connection, final Item item, final StructuredDataContainer container) {
397401
}
398402

399403
@Override

0 commit comments

Comments
 (0)