3
0
Mirror von https://github.com/GeyserMC/Geyser.git synchronisiert 2024-12-27 08:30:12 +01:00

Remove Java custom armor trims when translating item to Bedrock to prevent visual issues (#4548)

* Fix (or workaround) armor items with custom armor trims having no texture on bedrock

* Fix armor items with custom trims causing issues on entity models by removing the Trim tag entirely

* Refer to minecraft namespace inline for consistency
Dieser Commit ist enthalten in:
Eclipse 2024-04-04 18:55:00 +00:00 committet von GitHub
Ursprung 29bd896682
Commit 1819ed4dbd
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: B5690EEEBB952194

Datei anzeigen

@ -47,6 +47,14 @@ public class ArmorItem extends Item {
if (tag.get("Trim") instanceof CompoundTag trim) { if (tag.get("Trim") instanceof CompoundTag trim) {
StringTag material = trim.remove("material"); StringTag material = trim.remove("material");
StringTag pattern = trim.remove("pattern"); StringTag pattern = trim.remove("pattern");
// discard custom trim patterns/materials to prevent visual glitches on bedrock
if (!material.getValue().startsWith("minecraft:")
|| !pattern.getValue().startsWith("minecraft:")) {
tag.remove("Trim");
return;
}
// bedrock has an uppercase first letter key, and the value is not namespaced // bedrock has an uppercase first letter key, and the value is not namespaced
trim.put(new StringTag("Material", stripNamespace(material.getValue()))); trim.put(new StringTag("Material", stripNamespace(material.getValue())));
trim.put(new StringTag("Pattern", stripNamespace(pattern.getValue()))); trim.put(new StringTag("Pattern", stripNamespace(pattern.getValue())));