• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spezielle Köpfe mit einer URL als Spielerkopf setzen

xGamerTim

Minecrafter
Registriert
22 Januar 2016
Beiträge
5
Diamanten
0
Hallo, ich arbeite momentan an einem Osterplugin, bei welchem ich die Funktion benötige dort wo ich hinschaue einen Kopf der wie ein Osterei aussieht zu spawnen. Ich habe bisher einiges versucht bin nur leider nicht weiter gekommen da sich das setzen eines Blockes als ein Kopf mit speziellen Eigenschaften nicht so verhält wie ein ItemStack.

Als Beispiel dachte ich daran diesen Kopf zu seten: https://minecraft-heads.com/custom-heads/decoration/28054-fantasy-egg

Ich hoffe mir könnte da jemand helfen.
 

ILoveJava

Minecrafter
Registriert
21 März 2021
Beiträge
7
Diamanten
52
Hey Ho, ich hoffe das hilft dir:

Code:
import java.lang.reflect.Field;
import java.util.UUID;
import org.bukkit.Material;
import org.bukkit.craftbukkit.libs.org.apache.commons.codec.binary.Base64;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;

import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
/*
 * @class Skull , erstellt einen @ItemStack{@SKULL} mit einer @Properties Texture
 * @author: ILoveJava
 * @version: 1.0
 * */

public class Skull {
    
    /*
     * Funktion zum erstellen der Köpfe
     * @param url{@String} Skull Texture
     * @return ItemStack{@SKULL}
     * @exception NoSuchFieldException
     * @exception IllegalArgumentException
     * @exception IllegalAccessException
     * */
    public static ItemStack getSkull(String url) {
        ItemStack item = new ItemStack(Material.PLAYER_HEAD);
        if(url.isEmpty())return item;
    
    
        SkullMeta itemMeta = (SkullMeta) item.getItemMeta();
        GameProfile profile = new GameProfile(UUID.randomUUID(), null);
        byte[] encodedData = Base64.encodeBase64(String.format("{textures:{SKIN:{url:\"%s\"}}}", url).getBytes());
        profile.getProperties().put("textures", new Property("textures", new String(encodedData)));
        Field profileField = null;
        try
        {
            profileField = itemMeta.getClass().getDeclaredField("profile");
            profileField.setAccessible(true);
            profileField.set(itemMeta, profile);
        }
        catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e)
        {
            e.printStackTrace();
        }
        item.setItemMeta(itemMeta);
        return item;
    }

}


MfG
 
Oben