Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. package de.chriis.craftleben.craftapi.manager;
  2.  
  3. import com.mojang.authlib.GameProfile;
  4. import de.chriis.craftleben.craftapi.events.PlayerNickEvent;
  5. import de.chriis.craftleben.craftapi.methods.SkinMethod;
  6. import net.minecraft.server.v1_8_R3.*;
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.craftbukkit.v1_8_R3.CraftServer;
  9. import org.bukkit.craftbukkit.v1_8_R3.CraftWorld;
  10. import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
  11. import org.bukkit.entity.Player;
  12.  
  13. import java.lang.reflect.Field;
  14. import java.util.ArrayList;
  15.  
  16. public class NickManager {
  17.  
  18. private static ArrayList<Player> nickedPlayers = new ArrayList<>();
  19.  
  20. public static boolean isNicked(Player player){
  21. return nickedPlayers.contains(player);
  22. }
  23.  
  24. public static void nickPlayer(Player player, String name){
  25. try {
  26. EntityPlayer entityPlayer = ((CraftPlayer)player).getHandle();
  27. GameProfile gameProfile = entityPlayer.getProfile();
  28.  
  29. Field profileField = gameProfile.getClass().getDeclaredField("name");
  30. profileField.setAccessible(true);
  31. profileField.set(gameProfile, name);
  32.  
  33. MinecraftServer minecraftServer = ((CraftServer) Bukkit.getServer()).getServer();
  34. WorldServer worldServer = ((CraftWorld)Bukkit.getWorlds().get(0)).getHandle();
  35.  
  36. EntityPlayer nickedEntityPlayer = new EntityPlayer(minecraftServer, worldServer, gameProfile,
  37. new PlayerInteractManager(worldServer));
  38.  
  39.  
  40. for(Player onlinePlayers : Bukkit.getOnlinePlayers()){
  41. if(onlinePlayers != player){
  42. //sendPacket(onlinePlayers, new PacketPlayOutEntityDestroy(player.getEntityId()));
  43.  
  44. }
  45. onlinePlayers.hidePlayer(player);
  46. }
  47.  
  48. gameProfile.getProperties().clear();
  49. gameProfile.getProperties().put("textures", SkinMethod.getExampleProperty());
  50.  
  51. for(Player onlinePlayers : Bukkit.getOnlinePlayers()){
  52. if(onlinePlayers != player){
  53. // sendPacket(onlinePlayers, new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entityPlayer));
  54. //sendPacket(onlinePlayers, new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, nickedEntityPlayer));
  55. }
  56. onlinePlayers.showPlayer(player);
  57. }
  58.  
  59. nickedPlayers.add(player);
  60. player.setDisplayName(name);
  61. player.setCustomName(name);
  62. player.sendMessage("§8[§5NICK§8] §4Aktueller Nickname§7: §a" + name);
  63.  
  64. PlayerNickEvent playerNickEvent = new PlayerNickEvent(player, name);
  65. Bukkit.getPluginManager().callEvent(playerNickEvent);
  66. } catch (NoSuchFieldException e) {
  67. e.printStackTrace();
  68. } catch (IllegalAccessException e) {
  69. e.printStackTrace();
  70. }
  71. }
  72.  
  73. private static void sendPacket(Player player, Packet packet){
  74. ((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet);
  75. }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement