Skip to content

Commit e0ec308

Browse files
Handle rarity changes in trident/banner pattern item in 1.21->1.20.5 (#813)
1 parent 1c8438d commit e0ec308

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

common/src/main/java/com/viaversion/viabackwards/protocol/v1_21to1_20_5/rewriter/BlockItemPacketRewriter1_21.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
*/
1818
package com.viaversion.viabackwards.protocol.v1_21to1_20_5.rewriter;
1919

20+
import com.viaversion.nbt.tag.ByteTag;
2021
import com.viaversion.nbt.tag.CompoundTag;
2122
import com.viaversion.nbt.tag.ListTag;
2223
import com.viaversion.nbt.tag.StringTag;
2324
import com.viaversion.nbt.tag.Tag;
2425
import com.viaversion.viabackwards.api.rewriters.BackwardsStructuredItemRewriter;
25-
import com.viaversion.viabackwards.api.rewriters.EnchantmentRewriter;
2626
import com.viaversion.viabackwards.api.rewriters.StructuredEnchantmentRewriter;
2727
import com.viaversion.viabackwards.protocol.v1_21to1_20_5.Protocol1_21To1_20_5;
2828
import com.viaversion.viabackwards.protocol.v1_21to1_20_5.storage.EnchantmentsPaintingsStorage;
@@ -53,6 +53,8 @@
5353
import static com.viaversion.viaversion.protocols.v1_20_5to1_21.rewriter.BlockItemPacketRewriter1_21.downgradeItemData;
5454
import static com.viaversion.viaversion.protocols.v1_20_5to1_21.rewriter.BlockItemPacketRewriter1_21.updateItemData;
5555

56+
import static com.viaversion.viaversion.protocols.v1_20_5to1_21.rewriter.BlockItemPacketRewriter1_21.resetRarityValues;
57+
5658
import static com.viaversion.viabackwards.api.rewriters.EnchantmentRewriter.ENCHANTMENT_LEVEL_TRANSLATION;
5759

5860
public final class BlockItemPacketRewriter1_21 extends BackwardsStructuredItemRewriter<ClientboundPacket1_21, ServerboundPacket1_20_5, Protocol1_21To1_20_5> {
@@ -153,9 +155,23 @@ public Item handleItemToClient(final UserConnection connection, final Item item)
153155
enchantmentRewriter.rewriteEnchantmentsToClient(data, StructuredDataKey.ENCHANTMENTS, idRewriteFunction, descriptionSupplier, false);
154156
enchantmentRewriter.rewriteEnchantmentsToClient(data, StructuredDataKey.STORED_ENCHANTMENTS, idRewriteFunction, descriptionSupplier, true);
155157

158+
final int identifier = item.identifier();
159+
156160
// Order is important
157161
super.handleItemToClient(connection, item);
158162
downgradeItemData(item);
163+
164+
final StructuredDataContainer dataContainer = item.dataContainer();
165+
if (dataContainer.contains(StructuredDataKey.RARITY)) {
166+
return item;
167+
}
168+
169+
// Change rarity of trident and piglin banner pattern
170+
final boolean trident = identifier == 1188;
171+
if (trident || identifier == 1200) {
172+
dataContainer.set(StructuredDataKey.RARITY, trident ? 3 : 1); // Epic or Uncommon
173+
saveTag(createCustomTag(item), new ByteTag(true), "rarity");
174+
}
159175
return item;
160176
}
161177

@@ -179,6 +195,7 @@ public Item handleItemToServer(final UserConnection connection, final Item item)
179195
// Order is important
180196
super.handleItemToServer(connection, item);
181197
updateItemData(item);
198+
resetRarityValues(item, nbtTagName("rarity"));
182199
return item;
183200
}
184201

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ metadata.format.version = "1.1"
33
[versions]
44

55
# ViaVersion
6-
viaver = "5.0.1-SNAPSHOT"
6+
viaver = "5.0.2-SNAPSHOT"
77

88
# Common provided
99
netty = "4.0.20.Final"

0 commit comments

Comments
 (0)