public static WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) { try { Object minecraftServer = getMinecraftServer(); for (Method method : getNmsClass("MinecraftServer").getMethods()) { if (method.getReturnType().getSimpleName().equals("MinecraftSessionService")) { Object session = method.invoke(minecraftServer); return WrappedGameProfile.fromHandle(session.getClass() .getDeclaredMethod("fillProfileProperties", gameProfile.getHandleType(), boolean.class) .invoke(session, gameProfile.getHandle(), true)); } } } catch (Exception ex) { ex.printStackTrace(); } return null; }
public static Object getPlayerInfoData(Object playerInfoPacket, WrappedGameProfile gameProfile) { try { Object playerListName = getNmsClass("ChatComponentText").getDeclaredConstructor(String.class) .newInstance(gameProfile.getName()); return getNmsClass("PacketPlayOutPlayerInfo$PlayerInfoData") .getDeclaredConstructor(getNmsClass("PacketPlayOutPlayerInfo"), gameProfile.getHandleType(), int.class, getNmsClass("EnumGamemode"), getNmsClass("IChatBaseComponent")) .newInstance(playerInfoPacket, gameProfile.getHandle(), 0, getNmsClass("EnumGamemode").getEnumConstants()[1], playerListName); } catch (Exception ex) { ex.printStackTrace(); } return null; }
@Override public String toString() { return String.valueOf(getHandle()); }
.getDeclaredConstructor(getNmsClass("MinecraftServer"), getNmsClass("WorldServer"), gameProfile.getHandleType(), playerinteractmanager.getClass()) .newInstance(minecraftServer, world, gameProfile.getHandle(), playerinteractmanager); break; case "EnderPearl":
@Override public JsonElement serialize(WrappedGameProfile src, Type typeOfSrc, JsonSerializationContext context) { return context.serialize(src.getHandle(), GameProfile.class); }
private void setSkullSkin(ItemStack itemStack, SkinModel skinData) { if (itemStack == null || skinData == null || itemStack.getType() != Material.SKULL_ITEM) return; try { SkullMeta skullMeta = (SkullMeta) itemStack.getItemMeta(); WrappedGameProfile gameProfile = new WrappedGameProfile(UUID.randomUUID(), null); plugin.getApi().applyProperties(gameProfile, skinData); skullProfileSetter.invoke(skullMeta, gameProfile.getHandle()); itemStack.setItemMeta(skullMeta); } catch (Exception ex) { plugin.getLog().info("Failed to set skull item {} to {}", itemStack, skinData, ex); } catch (Throwable throwable) { //rethrow errors we shouldn't silence them like OutOfMemory throw (Error) throwable; } } }