NullValkyrie

Minecraft 1.19 multipurpose plugin for spigot servers with a lot of features where most modern servers have.
git clone https://codeberg.org/night0721/NullValkyrie
Log | Files | Refs | README | LICENSE

Skin.java (1798B)


      1 package me.night.nullvalkyrie.util;
      2 
      3 import com.google.gson.JsonObject;
      4 import com.google.gson.JsonParser;
      5 import com.mojang.authlib.GameProfile;
      6 import com.mojang.authlib.properties.Property;
      7 import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer;
      8 import org.bukkit.entity.Player;
      9 
     10 import java.io.InputStreamReader;
     11 import java.net.URL;
     12 
     13 public class Skin {
     14     public static String[] getSkin(String name) {
     15         try {
     16             URL url = new URL("https://api.mojang.com/users/profiles/minecraft/" + name);
     17             InputStreamReader reader = new InputStreamReader(url.openStream());
     18             String uuid = JsonParser.parseReader(reader).getAsJsonObject().get("id").getAsString();
     19             URL url2 = new URL("https://sessionserver.mojang.com/session/minecraft/profile/" + uuid + "?unsigned=false");
     20             InputStreamReader reader2 = new InputStreamReader(url2.openStream());
     21             JsonObject properties = JsonParser.parseReader(reader2).getAsJsonObject().get("properties").getAsJsonArray().get(0).getAsJsonObject();
     22             String texture = properties.get("value").getAsString();
     23             String signature = properties.get("signature").getAsString();
     24             return new String[]{texture, signature};
     25         } catch (Exception e) {
     26             return new String[]{};
     27         }
     28     }
     29 
     30     public static String[] getSkin(Player player) {
     31         try {
     32             GameProfile profile = ((CraftPlayer) player).getProfile();
     33             Property property = profile.getProperties().get("textures").iterator().next();
     34             String texture = property.getValue();
     35             String signature = property.getSignature();
     36             return new String[]{texture, signature};
     37         } catch (Exception e) {
     38             return new String[]{};
     39         }
     40     }
     41 }