I’m not any developer or anyone experienced with this project, but I have an inquiry.
So I use KingKits, and tried to create a kit with a specific player head, so it could look like a Santa head. However, it would only show the default skeleton head. I asked the developer if he could support NBT, so I can use specific heads, and he said:
“Sorry, I can’t add NBT data as it uses code from CraftBukkit and not the Bukkit API therefore is version dependant. I try avoiding using reflection.”
Will this version-dependent problem be present in Sponge as well?
It shouldn’t be due to the Persistence portion of the API.
What exactly is Persistence?
Albeit he is correct in saying that he can’t support (fully) NBT without either using reflection (which attempts to make NMS classes accessible without breaking version dependency) or using NMS classes, I wouldn’t think he’d need to in order to add custom players head skins. Your request may have been a bit odd to him by specifically asking for custom NBT support, but he SHOULD be able to set the skull’s owner via the Bukkit API, avoiding NMS entirely. The API itself seems to have a few wrappers that will modify the NBT data of quite a few things without you needing to use NMS.
I’m not familiar with KingKits, but I’ve written a simple /head command as part of my plugin that would quite simply spawn the specified player’s head (using names, no UUID support for that atm), and avoided NMS entirely in the process, so I can’t imagine that it’d be impossible for him to do so as well. Perhaps if you ask again to enable custom player heads rather than custom NBT data.
This is true; he implemented custom heads for kits now, but not NBT.
So if he supports custom heads, what else do you want?
I don’t think that you know what ‘NBT’ is:
The Named Binary Tag format is used by Minecraft for the various files in which it saves data.
Well, his original story there was just telling us why he wanted to ask the question pertaining to NBT in Sponge. Didn’t occur to me that the actual issue had since been resolved. I don’t think he was intending to bring that particular issue into discussion, so it was somewhat my fault for suggesting how to get it resolved XP
I’m assuming he thinks NBT is metadata, which is innocent enough for someone who doesn’t program. I doubt he has any real need to know specifics of NBT data. Just wondered if Sponge’s API would allow modifying metadata without strict version dependency.
I didn’t want anything else.
Since player skulls use NBT, I asked him if he could implement that. He added skulls only using a different method, and I never said I want anything else. So next time, don’t jump to conclusions.