Advertisement
UD13N0W

Untitled

May 1st, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. package com.minelazz.moretnts.utils;
  2.  
  3. import org.apache.commons.codec.binary.*;
  4. import org.bukkit.inventory.*;
  5. import com.mojang.authlib.*;
  6. import com.mojang.authlib.properties.*;
  7. import java.util.*;
  8. import com.google.common.base.*;
  9. import org.bukkit.*;
  10. import org.bukkit.inventory.meta.*;
  11. import java.lang.reflect.*;
  12.  
  13. public class HeadCreator
  14. {
  15. private static final Base64 m_base64;
  16. private static HashMap<String, ItemStack> map;
  17.  
  18. static {
  19. m_base64 = new Base64();
  20. HeadCreator.map = new HashMap<String, ItemStack>();
  21. }
  22.  
  23. public static GameProfile createGameProfile(final String s, final String s2) {
  24. final GameProfile gameProfile = new GameProfile(getUUID(s2), s2);
  25. final PropertyMap properties = gameProfile.getProperties();
  26. if (properties == null) {
  27. return null;
  28. }
  29. properties.put((Object)"textures", (Object)new Property("textures", new String(HeadCreator.m_base64.encode(String.format("{textures:{SKIN:{url:\"%s\"}}}", s).getBytes()))));
  30. return gameProfile;
  31. }
  32.  
  33. private static UUID getUUID(final String s) {
  34. return UUID.nameUUIDFromBytes(("MoreTNTs:" + s).getBytes(Charsets.UTF_8));
  35. }
  36.  
  37. public static ItemStack createItemStack(final String s, final String s2) {
  38. if (HeadCreator.map.containsKey(s)) {
  39. return HeadCreator.map.get(s);
  40. }
  41. final GameProfile gameProfile = createGameProfile(s, s2);
  42. if (gameProfile == null) {
  43. return null;
  44. }
  45. final ItemStack itemStack = new ItemStack(Material.SKULL_ITEM, 1, (short)3);
  46. final ItemMeta itemMeta = itemStack.getItemMeta();
  47. if (!set(itemMeta.getClass(), itemMeta, "profile", gameProfile)) {
  48. return null;
  49. }
  50. itemStack.setItemMeta(itemMeta);
  51. HeadCreator.map.put(s, itemStack);
  52. return itemStack;
  53. }
  54.  
  55. public static boolean set(final Class<?> clazz, final Object o, final String s, final Object o2) {
  56. try {
  57. final Field declaredField = clazz.getDeclaredField(s);
  58. final boolean accessible = declaredField.isAccessible();
  59. final Field declaredField2 = Field.class.getDeclaredField("modifiers");
  60. final int modifiers = declaredField2.getModifiers();
  61. final boolean b = (modifiers & 0x10) == 0x10;
  62. if (!accessible) {
  63. declaredField.setAccessible(true);
  64. }
  65. if (b) {
  66. declaredField2.setAccessible(true);
  67. declaredField2.setInt(declaredField, modifiers & 0xFFFFFFEF);
  68. }
  69. try {
  70. declaredField.set(o, o2);
  71. }
  72. finally {
  73. if (b) {
  74. declaredField2.setInt(declaredField, modifiers | 0x10);
  75. }
  76. if (!accessible) {
  77. declaredField.setAccessible(false);
  78. }
  79. }
  80. if (b) {
  81. declaredField2.setInt(declaredField, modifiers | 0x10);
  82. }
  83. if (!accessible) {
  84. declaredField.setAccessible(false);
  85. }
  86. return true;
  87. }
  88. catch (Exception ex) {
  89. ex.printStackTrace();
  90. return false;
  91. }
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement