結論
【拡張関数】ItemStack.kt
import org.bukkit.Bukkit
import org.bukkit.Material
import org.bukkit.inventory.ItemStack
import org.bukkit.inventory.meta.SkullMeta
fun ItemStack.setHeadTexture(textureValue: URL) {
//なくてもいいよ
require(this.type == Material.PLAYER_HEAD) { "PLAYER_HEAD以外では使用できません" }
val meta = this.itemMeta as SkullMeta
val dummyProfile = Bukkit.createPlayerProfile(UUID.randomUUID())
val texture = dummyProfile.textures
texture.skin = (textureValue)
dummyProfile.setTextures(texture)
meta.ownerProfile = dummyProfile
this.itemMeta = meta
}
textureValue
にはhttp://textures.minecraft.net/texture/...
のURL(base64エンコードされてる奴)を入れればok
従来のGameProfileいじるやつはauthlibが必要だったりちょっとだけリフレクション使ったり面倒だったのでいい感じ?
Javaのコードが欲しい人へ
ChatGPTにお願いしてください