Skip to content

Commit 1864b66

Browse files
committed
Handle new banner patterns in backwards translation
1 parent 8aa6769 commit 1864b66

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/rewriter/StructuredDataConverter.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.Potions1_20_5;
6262
import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.TrimMaterials1_20_3;
6363
import com.viaversion.viaversion.util.ComponentUtil;
64+
import com.viaversion.viaversion.util.Key;
6465
import com.viaversion.viaversion.util.UUIDUtil;
6566
import it.unimi.dsi.fastutil.ints.Int2IntMap;
6667
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
@@ -424,7 +425,19 @@ public StructuredDataConverter(final boolean backupInconvertibleData) {
424425
if (backupInconvertibleData) {
425426
// Backup whole data if one of the entries is inconvertible
426427
// Since we don't want to break the order of the entries
427-
if (Arrays.stream(data).anyMatch(layer -> layer.pattern().isDirect() || BannerPatterns1_20_5.idToKey(layer.pattern().id()) == null)) {
428+
if (Arrays.stream(data).anyMatch(layer -> {
429+
if (layer.pattern().isDirect()) {
430+
return true;
431+
}
432+
433+
String identifier = BannerPatterns1_20_5.idToKey(layer.pattern().id());
434+
if (identifier == null) {
435+
return true;
436+
}
437+
438+
identifier = Key.stripMinecraftNamespace(identifier);
439+
return identifier.equals("flow") || identifier.equals("guster");
440+
})) {
428441
final ListTag<CompoundTag> originalPatterns = new ListTag<>(CompoundTag.class);
429442
for (final BannerPatternLayer layer : data) {
430443
final CompoundTag layerTag = new CompoundTag();
@@ -452,6 +465,10 @@ public StructuredDataConverter(final boolean backupInconvertibleData) {
452465
}
453466

454467
final String compactKey = BannerPatterns1_20_5.fullIdToCompact(key);
468+
if (compactKey == null) {
469+
continue;
470+
}
471+
455472
final CompoundTag patternTag = new CompoundTag();
456473
patternTag.putString("Pattern", compactKey);
457474
patternTag.putInt("Color", layer.dyeColor());

0 commit comments

Comments
 (0)