Uploaded image for project: 'Spigot'
  1. Spigot
  2. SPIGOT-7735

SkullMeta serialization fails if both profile and note block sound are set


    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • None
    • None
    • Spigot 1.20.6, Spigot 1.20.4, Spigot 1.20

    • This server is running CraftBukkit version 4189-Spigot-fcd94e2-fd2f418 (MC: 1.20.6) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
    • Yes

      The following is tested on the (at the time of writing) latest BuildTools built revisions for 1.20.6, 1.20.4 and 1.20.1. Only one plugin to create the item and test serialization/deserialization was running. Testing lower versions does not make sense as the note block tag was added in 1.20.

      Creating a player head item and saving it to YAML comes with the following issue:

      If the new note block sound tag is set, Spigot writes a note block tag during serialization,

      • 1.20.6 an "unhandled" tag is written as well. Some plugins may fail loading this.
      • 1.20.4 this works as expected.
      • 1.20 the "note_block_sound" key is written, but the value is set to "!!org.bukkit.NamespacedKey {}". This has been fixed in a later commit.

      If just the profile/owning player is set, serialization works as expected.

      If the profile/owning player and the note block sound are set, Spigot writes only the profile tag during serialization and does not write the note block sound. On 1.20.6, an "unhandled" tag is written as well.

      Attached you may find a plugin to test this with. Use /itemboth to get a player head with a profile and a noteblock sound. Use /itemsound to get a player head with a noteblock sound. Use /itemprofile to get a player head with a profile. Use /serialize to display the serialized config in chat. The source to it has been attached as well for convenience.

            blablubbabc blablubbabc
            Gadse Gadse
            0 Vote for this issue
            2 Start watching this issue