|
61 | 61 | import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.Potions1_20_5; |
62 | 62 | import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.TrimMaterials1_20_3; |
63 | 63 | import com.viaversion.viaversion.util.ComponentUtil; |
| 64 | +import com.viaversion.viaversion.util.Key; |
64 | 65 | import com.viaversion.viaversion.util.UUIDUtil; |
65 | 66 | import it.unimi.dsi.fastutil.ints.Int2IntMap; |
66 | 67 | import it.unimi.dsi.fastutil.ints.Int2ObjectMap; |
@@ -424,7 +425,19 @@ public StructuredDataConverter(final boolean backupInconvertibleData) { |
424 | 425 | if (backupInconvertibleData) { |
425 | 426 | // Backup whole data if one of the entries is inconvertible |
426 | 427 | // 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 | + })) { |
428 | 441 | final ListTag<CompoundTag> originalPatterns = new ListTag<>(CompoundTag.class); |
429 | 442 | for (final BannerPatternLayer layer : data) { |
430 | 443 | final CompoundTag layerTag = new CompoundTag(); |
@@ -452,6 +465,10 @@ public StructuredDataConverter(final boolean backupInconvertibleData) { |
452 | 465 | } |
453 | 466 |
|
454 | 467 | final String compactKey = BannerPatterns1_20_5.fullIdToCompact(key); |
| 468 | + if (compactKey == null) { |
| 469 | + continue; |
| 470 | + } |
| 471 | + |
455 | 472 | final CompoundTag patternTag = new CompoundTag(); |
456 | 473 | patternTag.putString("Pattern", compactKey); |
457 | 474 | patternTag.putInt("Color", layer.dyeColor()); |
|
0 commit comments