public static void setItemStackSkin(ItemStack itemStack, String skin) {
final ItemMeta meta = itemStack.getItemMeta();
if (!(meta instanceof SkullMeta)) {
return;
}
String newSkin = skin;
if (newSkin.contains("textures.minecraft.net")) {
if (!newSkin.startsWith("http://")) {
newSkin = "http://" + newSkin;
}
try {
final Class<?> cls = createClass("org.bukkit.craftbukkit.VERSION.inventory.CraftMetaSkull");
final Object real = cls.cast(meta);
final Field field = real.getClass().getDeclaredField("profile");
field.setAccessible(true);
field.set(real, getNonPlayerProfile(newSkin));
itemStack.setItemMeta(SkullMeta.class.cast(real));
} catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException | ClassNotFoundException e) {
Bukkit.getLogger().log(Level.WARNING, "Failed to set url of itemstack.", e);
}
} else {
((SkullMeta) meta).setOwner(skin);
itemStack.setItemMeta(meta);
}
}
SkinHelper.java 文件源码
java
阅读 38
收藏 0
点赞 0
评论 0
项目:PetBlocks
作者:
评论列表
文章目录