[SPIGOT-2537] Player head items with custom texture revert to Steve after server restart Created: 19/Jul/16 Updated: 22/Jul/16 Resolved: 22/Jul/16 |
|
Status: | Resolved |
Project: | Spigot |
Component/s: | None |
Affects Version/s: | None |
Fix Version/s: | None |
Type: | Bug | Priority: | Minor |
Reporter: | takatalvi | Assignee: | Unassigned |
Resolution: | Fixed | Votes: | 0 |
Labels: | None |
Description |
After every server restart, all the custom head items that use the Texture tag and data lose this data. They still have other NBT tags like item name, but lose the texture. This affects all player head items stored in containers, inventories, or displayed on armor stands. The player heads placed as blocks are not affected, they keep the texture. This issue came up some time within the last 10 versions of Spigot, before that it hadn't been present. |
Comments |
Comment by takatalvi [ 19/Jul/16 ] |
Update: I tried running the command with the Signature tag, and it finally works, the items keep their textures even after server restart. What baffles me is that it's completely acceptable to use any random string for the signature, or just keep it empty, as Signature:"" |
Comment by md_5 [ 19/Jul/16 ] |
It's intentionally this way due to exploits. |
Comment by takatalvi [ 19/Jul/16 ] |
I will try to find out about how to get the signature. I got the skull data from minecraft-heads.com, and I got a lot of them, none of the commands mentioned the signature tag. Meanwhile, please consider this - it works in Vanilla as intended, without the signature. This should be enough for this issue to be considered real. Even more, considering that it came up about a week ago, before that the head items worked with no problems whatsoever. Something broke along the way, that's why I raised this, not because I needed help with a command. |
Comment by md_5 [ 19/Jul/16 ] |
That give command is invalid. A signature tag is required. |
Comment by takatalvi [ 19/Jul/16 ] |
This is an example command: give @p skull 1 3 {display: {Name:"Polaroid"},SkullOwner:{Id:"780ebefc-f8f7-4bf0-a7fd-1d2969c4b3c8",Properties:{textures:[ {Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGVkNDc4MWRmODU2Mjc5NTIyZDg0NDI1MmVjYTc5YTZjYzZmMjRhOWJhYTg5ZDI5M2Q4MjkwNTNmZDljOWMifX19"}]}}} The command works, the head displays correctly. It works in Vanilla as well, and the items don't lose data after restart. The issue occurs only on Spigot, and can confirm that it also occurs without any plugins, so I assume it's in Spigot itself. The heads have an embedded texture, they are not linked to a skin in the Mojang database. As I understand it, the UUID is random. When I have such a head in my inventory and I log out and back in, the texture is lost. When it's stored in a container, the texture is lost only after server restart. When the head is placed as a block, the blockdata (along with the texture) is stored as it should be. This is so far all the information I was able to get, the most important part is that everything suggest this is a Spigot issue. |
Comment by md_5 [ 19/Jul/16 ] |
What is the give command you are using? |
Comment by takatalvi [ 19/Jul/16 ] |
I always update Spigot using BuildTools, latest revision. Then I simply use the Spigot jar, so I don't see where I could go wrong with that. There have been no recent updates to the plugins I use, and the list is quite basic. Going to try to replicate the issue under different conditions, if it will get me anywhere. I reported it as a bug because it came up unexpectedly without any changes to the server, apart from regular spigot updates. |
Comment by md_5 [ 19/Jul/16 ] |
I do not think you are using the correct version, or you have an incompatible plugin. |