MaxlHD

Nick

Aug 30th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. package de.maxl.nick;
  2.  
  3. import java.lang.reflect.Field;
  4. import java.util.Collection;
  5. import java.util.HashMap;
  6.  
  7. import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.scheduler.BukkitRunnable;
  10.  
  11. import com.mojang.authlib.GameProfile;
  12. import com.mojang.authlib.properties.Property;
  13.  
  14. import de.maxl.nick.utils.GameProfileBuilder;
  15. import de.maxl.nick.utils.UUIDFetcher;
  16. import de.maxl.nick.utils.Utils;
  17. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
  18. import net.minecraft.server.v1_8_R3.PacketPlayOutNamedEntitySpawn;
  19. import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo;
  20. import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
  21.  
  22. public class Nick {
  23.  
  24. private static Main main = Main.getInstance();
  25.  
  26. public static Field name;
  27. public static HashMap<Player, String> current = new HashMap<>();
  28.  
  29. public static void nickPlayer(Player p, String nick) {
  30. CraftPlayer cp = (CraftPlayer) p;
  31. current.put(p, nick);
  32.  
  33. try {
  34. name.set(cp.getProfile(), nick);
  35. } catch (Exception e) {
  36. }
  37.  
  38. if(!setSkin(cp, nick)){
  39. p.sendMessage("§cDu konntest nicht genickt werden!");
  40. return;
  41. }
  42.  
  43. PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(cp.getEntityId());
  44. Utils.sendPacket(destroy, p);
  45. PacketPlayOutPlayerInfo removeTab = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER,
  46. cp.getHandle());
  47. Utils.sendPacket(removeTab);
  48. new BukkitRunnable() {
  49.  
  50. @Override
  51. public void run() {
  52. PacketPlayOutPlayerInfo addTab = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER,
  53. cp.getHandle());
  54. Utils.sendPacket(addTab);
  55. PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle());
  56. Utils.sendPacket(spawn, p);
  57. }
  58. }.runTaskLater(main, 4);
  59. }
  60.  
  61. public static boolean setSkin(CraftPlayer cp, String nick) {
  62. GameProfile skingp = cp.getProfile();
  63. try {
  64. skingp = GameProfileBuilder.fetch(UUIDFetcher.getUUID(nick));
  65. } catch (Exception e) {
  66. cp.sendMessage("§cDer Skin konnte nicht geladen werden.");
  67. e.printStackTrace();
  68. return false;
  69. }
  70. Collection<Property> prop = skingp.getProperties().get("textures");
  71. cp.getProfile().getProperties().removeAll("textures");
  72. cp.getProfile().getProperties().putAll("textures", prop);
  73. return true;
  74. }
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment