Skip to content

Commit d98de38

Browse files
committed
Update VV usage
1 parent 13bc18b commit d98de38

File tree

3 files changed

+43
-81
lines changed

3 files changed

+43
-81
lines changed

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

Lines changed: 11 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,12 @@
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;
3736
import com.viaversion.viaversion.api.minecraft.item.Item;
3837
import com.viaversion.viaversion.api.minecraft.item.data.CustomModelData1_21_4;
3938
import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType;
4039
import com.viaversion.viaversion.api.protocol.packet.ServerboundPacketType;
4140
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
4241
import com.viaversion.viaversion.api.type.Type;
43-
import com.viaversion.viaversion.data.item.ItemHasherBase;
4442
import com.viaversion.viaversion.rewriter.StructuredItemRewriter;
4543
import java.util.ArrayList;
4644
import java.util.List;
@@ -70,34 +68,17 @@ public BackwardsStructuredItemRewriter(final T protocol, final Type<Item> itemTy
7068
}
7169

7270
@Override
73-
public Item handleItemToClient(final UserConnection connection, final Item item) {
74-
if (item.isEmpty()) {
75-
return item;
76-
}
77-
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-
81-
final StructuredDataContainer dataContainer = item.dataContainer();
82-
updateItemDataComponentTypeIds(dataContainer, true);
71+
protected void backupInconvertibleData(final UserConnection connection, final Item item, final StructuredDataContainer dataContainer, final CompoundTag backupTag) {
72+
super.backupInconvertibleData(connection, item, dataContainer, backupTag);
8373

8474
final BackwardsMappingData mappingData = protocol.getMappingData();
8575
final MappedItem mappedItem = mappingData != null ? mappingData.getMappedItem(item.identifier()) : null;
8676
if (mappedItem == null) {
87-
// Just rewrite the id
88-
if (mappingData != null && mappingData.getItemMappings() != null) {
89-
item.setIdentifier(mappingData.getNewItemId(item.identifier()));
90-
}
91-
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
94-
return item;
77+
return;
9578
}
9679

97-
// Save original id, set remapped id
98-
final CompoundTag tag = createCustomTag(item);
99-
tag.putInt(nbtTagName("id"), item.identifier());
100-
item.setIdentifier(mappedItem.id());
80+
final CompoundTag customTag = createCustomTag(item);
81+
customTag.putInt(nbtTagName("id"), item.identifier()); // Save original id
10182

10283
// Add custom model data
10384
if (mappedItem.customModelData() != null) {
@@ -118,39 +99,17 @@ public Item handleItemToClient(final UserConnection connection, final Item item)
11899
// Set custom name - only done if there is no original one
119100
if (!dataContainer.has(StructuredDataKey.CUSTOM_NAME)) {
120101
dataContainer.set(StructuredDataKey.CUSTOM_NAME, mappedItem.tagName());
121-
tag.putBoolean(nbtTagName("added_custom_name"), true);
102+
customTag.putBoolean(nbtTagName("added_custom_name"), true);
122103
}
123-
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
126-
return item;
127104
}
128105

129106
@Override
130-
public Item handleItemToServer(final UserConnection connection, final Item item) {
131-
if (item.isEmpty()) {
132-
return item;
133-
}
134-
135-
final StructuredDataContainer dataContainer = item.dataContainer();
136-
updateItemDataComponentTypeIds(dataContainer, false);
137-
138-
final BackwardsMappingData mappingData = protocol.getMappingData();
139-
if (mappingData != null && mappingData.getItemMappings() != null) {
140-
item.setIdentifier(mappingData.getOldItemId(item.identifier()));
107+
protected void restoreBackupData(final Item item, final StructuredDataContainer container, final CompoundTag customData) {
108+
super.restoreBackupData(item, container, customData);
109+
if (removeBackupTag(customData, "id") instanceof final IntTag originalTag) {
110+
item.setIdentifier(originalTag.asInt());
111+
removeCustomTag(container, customData);
141112
}
142-
143-
final CompoundTag customData = dataContainer.get(StructuredDataKey.CUSTOM_DATA);
144-
if (customData != null) {
145-
if (customData.remove(nbtTagName("id")) instanceof final IntTag originalTag) {
146-
item.setIdentifier(originalTag.asInt());
147-
removeCustomTag(dataContainer, customData);
148-
}
149-
}
150-
151-
restoreBackupData(item); // Restore first, then update the remaining
152-
handleItemDataComponentsToServer(connection, item, dataContainer);
153-
return item;
154113
}
155114

156115
protected void saveListTag(CompoundTag tag, ListTag<?> original, String name) {

common/src/main/java/com/viaversion/viabackwards/protocol/template/BlockItemPacketRewriter1_99.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@
1717
*/
1818
package com.viaversion.viabackwards.protocol.template;
1919

20+
import com.viaversion.nbt.tag.CompoundTag;
2021
import com.viaversion.viabackwards.api.rewriters.BackwardsStructuredItemRewriter;
2122
import com.viaversion.viaversion.api.connection.UserConnection;
22-
import com.viaversion.viaversion.api.minecraft.item.HashedItem;
23+
import com.viaversion.viaversion.api.minecraft.data.StructuredDataContainer;
2324
import com.viaversion.viaversion.api.minecraft.item.Item;
2425
import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_21_5;
2526
import com.viaversion.viaversion.api.type.types.version.Types1_21_4;
2627
import com.viaversion.viaversion.api.type.types.version.Types1_21_5;
27-
import com.viaversion.viaversion.data.item.ItemHasherBase;
2828
import com.viaversion.viaversion.protocols.v1_21_2to1_21_4.packet.ServerboundPacket1_21_4;
2929
import com.viaversion.viaversion.protocols.v1_21_2to1_21_4.packet.ServerboundPackets1_21_4;
3030
import com.viaversion.viaversion.protocols.v1_21_4to1_21_5.rewriter.RecipeDisplayRewriter1_21_5;
@@ -76,17 +76,26 @@ public void registerPackets() {
7676
}
7777

7878
@Override
79-
public Item handleItemToClient(final UserConnection connection, final Item item) {
80-
if (item.isEmpty()) {
81-
return item;
82-
}
79+
protected void handleItemDataComponentsToClient(final UserConnection connection, final Item item, final StructuredDataContainer container) {
80+
super.handleItemDataComponentsToClient(connection, item, container);
81+
// downgradeData(item, container); // static import VV method
82+
}
8383

84-
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
85-
final HashedItem originalHashedItem = hashItem(item, itemHasher);
84+
@Override
85+
protected void handleItemDataComponentsToServer(final UserConnection connection, final Item item, final StructuredDataContainer container) {
86+
super.handleItemDataComponentsToServer(connection, item, container);
87+
// upgradeData(item, container); // static import VV method
88+
}
8689

87-
super.handleItemToClient(connection, item);
90+
@Override
91+
protected void restoreBackupData(final Item item, final StructuredDataContainer container, final CompoundTag customData) {
92+
super.restoreBackupData(item, container, customData);
93+
// restore any data if needed here
94+
}
8895

89-
storeOriginalHashedItem(item, itemHasher, originalHashedItem);
90-
return item;
96+
@Override
97+
protected void backupInconvertibleData(final UserConnection connection, final Item item, final StructuredDataContainer dataContainer, final CompoundTag backupTag) {
98+
super.backupInconvertibleData(connection, item, dataContainer, backupTag);
99+
// back up any data if needed here, called before the method below
91100
}
92101
}

common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_5to1_21_4/rewriter/BlockItemPacketRewriter1_21_5.java

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -325,12 +325,8 @@ private String heightmapType(final int id) {
325325
}
326326

327327
@Override
328-
public Item handleItemToClient(final UserConnection connection, final Item item) {
329-
super.handleItemToClient(connection, item);
330-
331-
final StructuredDataContainer dataContainer = item.dataContainer();
332-
final CompoundTag backupTag = new CompoundTag();
333-
328+
protected void backupInconvertibleData(final UserConnection connection, final Item item, final StructuredDataContainer dataContainer, final CompoundTag backupTag) {
329+
super.backupInconvertibleData(connection, item, dataContainer, backupTag);
334330
final ToolProperties toolProperties = dataContainer.get(StructuredDataKey.TOOL1_21_5);
335331
if (toolProperties != null && toolProperties.canDestroyBlocksInCreative()) {
336332
backupTag.putBoolean("tool", true);
@@ -450,13 +446,12 @@ public Item handleItemToClient(final UserConnection connection, final Item item)
450446
});
451447

452448
saveHolderData(StructuredDataKey.BREAK_SOUND, dataContainer, backupTag, this::soundToTag);
449+
}
453450

454-
if (!backupTag.isEmpty()) {
455-
saveTag(createCustomTag(item), backupTag, "backup");
456-
}
457-
451+
@Override
452+
protected void handleItemDataComponentsToClient(final UserConnection connection, final Item item, final StructuredDataContainer dataContainer) {
453+
super.handleItemDataComponentsToClient(connection, item, dataContainer);
458454
downgradeItemData(item);
459-
return item;
460455
}
461456

462457
private void soundToTag(final SoundEvent soundEvent, final CompoundTag tag) {
@@ -467,16 +462,15 @@ private void soundToTag(final SoundEvent soundEvent, final CompoundTag tag) {
467462
}
468463

469464
@Override
470-
public Item handleItemToServer(final UserConnection connection, final Item item) {
471-
super.handleItemToServer(connection, item);
472-
restoreData(item.dataContainer());
465+
protected void handleItemDataComponentsToServer(final UserConnection connection, final Item item, final StructuredDataContainer container) {
466+
super.handleItemDataComponentsToServer(connection, item, container);
473467
updateItemData(item);
474-
return item;
475468
}
476469

477-
private void restoreData(final StructuredDataContainer data) {
478-
final CompoundTag customData = data.get(StructuredDataKey.CUSTOM_DATA);
479-
if (customData == null || !(customData.remove(nbtTagName("backup")) instanceof final CompoundTag backupTag)) {
470+
@Override
471+
protected void restoreBackupData(final Item item, final StructuredDataContainer data, final CompoundTag customData) {
472+
super.restoreBackupData(item, data, customData);
473+
if (!(customData.remove(nbtTagName("backup")) instanceof final CompoundTag backupTag)) {
480474
return;
481475
}
482476

0 commit comments

Comments
 (0)