Wie kann ich von Base64 zu einem Spieler Kopf Konvertieren?
Ich versuche mich gerade an einem Lobby Plugin für SpigotMC. Und möchte das man in einem GUI z.B. Pfeile nach Rechts/Links hat jedoch besitzt Minecraft diese von selber nicht. Deswegen muss ich diese Köpfe von Base64 zu einem ItemStack Konvertieren. Ich habe leider noch nicht mit Base64 gearbeitet. Wie würde das gehen?
LG. RCUngegrieft
1 Antwort
Okay, also nur zum Verständnis: Du hast aktuell nur die Value eines Kopfes und möchtest diese in einen ItemStack umwandeln, oder?
Gut, dann nehmen wir für dieses Beispiel einfach mal folgende Value:
eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTliZjMyOTJlMTI2YTEwNWI1NGViYTcxM2FhMWIxNTJkNTQxYTFkODkzODgyOWM1NjM2NGQxNzhlZDIyYmYifX19
Diese gehört zu folgendem Kopf:
public ItemStack getSkull(String value) {
ItemStack item = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
SkullMeta skullMeta = (SkullMeta) item.getItemMeta();
skullMeta.setDisplayName("Custom Skull");
GameProfile gameProfile = new GameProfile(UUID.randomUUID(), null);
gameProfile.getProperties().put("textures", new Property("textures", value));
try {
Field profileField = skullMeta.getClass().getDeclaredField("profile");
profileField.setAccessible(true);
profileField.set(skullMeta, gameProfile);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException fieldException) {
fieldException.printStackTrace();
}
item.setItemMeta(skullMeta);
return item;
}
Diese Methode habe ich in einem Plugin von mir eingebaut, als value übergibst du den base64-encoded String, in diesem Falle der eyJ0ZX... von oben.

Doch, GameProfile gibt es auch in der 1.17.1.
Nutzt du zufällig ein BuildTool wie Maven oder Gradle um deine Spigot-Dependency zu holen? Wenn ja, dann hast du als Dependency vermutlich spigot-api angegeben. Diese beinhaltet aber kein NMS. Um NMS zu bekommen musst du BuildTools auf deinem Rechner ausführen und dir die spigot.jar bauen. Dadurch wird Spigot gleichzeitig in deine lokale Maven-Repository gepackt und NMS und CraftBukkit sind dadrin enthalten.
Ok werde ich mal machen habe aber mir nen Bas64 De und Endcoder gerade gebastelt und der funktioniert
wie kann ich aber dann das im Plugin nutzen muss ich da die pom.xml aus dem Spigot Ordner nutzen?
Nein, du entfernst den <repository> Teil von Spigot aus deiner pom.xml und setzt die dependency von spigot auf "spigot" statt "spigot-api"
Sollte dann so aussehen:
<dependencies>
<!--This adds the Spigot API artifact to the build -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.17.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
Danke für deine Hilfe auch wen ich mich so spät gemeldet habe ;)
Ah ich Code in der spigot 1.17.1 API und da gibt es glaube ich kein GameProfil