Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. private void sendPlayerUpdate(final Player player, NickInfo info, String oldName) {
  2. if (info == null) {
  3. // Reset name to player name
  4. info = new NickInfo(player);
  5. }
  6.  
  7. final GameProfile profile = info.createGameProfile(player.getUniqueId());
  8. final int ping = ((CraftPlayer) player).getHandle().ping;
  9.  
  10. try {
  11. EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle();
  12.  
  13. {
  14. // Send new player info
  15. WorldSettings.EnumGamemode gameMode = ((CraftPlayer) player).getHandle().playerInteractManager.getGameMode();
  16. PlayerInfoData infoData = new PlayerInfoData(profile, ping, gameMode, null);
  17.  
  18. PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
  19. packet.setAction(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER);
  20. packet.setData(Arrays.asList(infoData));
  21.  
  22. entityPlayer.playerConnection.sendPacket(packet);
  23. }
  24.  
  25. // Hide and show player
  26. for (Player p : Bukkit.getOnlinePlayers()) {
  27. if (p.canSee(player)) {
  28. p.hidePlayer(player);
  29. p.showPlayer(player);
  30. }
  31. }
  32.  
  33. // Send respawn to the own player
  34. {
  35. Packet packet = new PacketPlayOutRespawn(player.getWorld().getEnvironment().getId(),
  36. entityPlayer.getWorld().getDifficulty(),
  37. entityPlayer.playerInteractManager.getGameMode(),
  38. entityPlayer.getWorld().getWorldData().getType());
  39. entityPlayer.playerConnection.sendPacket(packet);
  40. }
  41.  
  42. // Send shit
  43. {
  44. entityPlayer.playerConnection.teleport(new Location(player.getWorld(), entityPlayer.locX, entityPlayer.locY, entityPlayer.locZ, entityPlayer.yaw, entityPlayer.pitch));
  45. entityPlayer.playerConnection.sendPacket(new PacketPlayOutSpawnPosition(entityPlayer.getWorld().getSpawn()));
  46. entityPlayer.playerConnection.sendPacket(new PacketPlayOutExperience(entityPlayer.exp, entityPlayer.expTotal, entityPlayer.expLevel));
  47. }
  48.  
  49. entityPlayer.updateInventory(entityPlayer.defaultContainer);
  50. ((CraftPlayer) player).updateScaledHealth();
  51. entityPlayer.playerConnection.sendPacket(new PacketPlayOutHeldItemSlot(entityPlayer.inventory.itemInHandIndex));
  52. entityPlayer.updateAbilities();
  53. for (MobEffect effect : entityPlayer.getEffects()) {
  54. entityPlayer.playerConnection.sendPacket(new PacketPlayOutEntityEffect(entityPlayer.getId(), effect));
  55. }
  56.  
  57. // Call event
  58. PlayerChangeNickScoreboardEvent scoreboardEvent = new PlayerChangeNickScoreboardEvent(player, oldName, info);
  59. Bukkit.getPluginManager().callEvent(scoreboardEvent);
  60.  
  61. //Team update
  62. if (!scoreboardEvent.isCancelled()) {
  63. for (Team team : this.getPlayerTeams(player)) {
  64. {
  65. PacketPlayOutScoreboardTeam packet = new PacketPlayOutScoreboardTeam();
  66. packet.setTeamName(team.getName());
  67. packet.setMode(4);
  68. packet.setPlayers(Arrays.asList(oldName));
  69. MinecraftServer.getServer().getPlayerList().sendAll(packet);
  70. }
  71.  
  72. {
  73. PacketPlayOutScoreboardTeam packet = new PacketPlayOutScoreboardTeam();
  74. packet.setTeamName(team.getName());
  75. packet.setMode(3);
  76. packet.setPlayers(Arrays.asList(profile.getName()));
  77. MinecraftServer.getServer().getPlayerList().sendAll(packet);
  78. }
  79. }
  80. }
  81.  
  82. Bukkit.getPluginManager().callEvent(new PlayerChangeNickEvent(player, oldName, this.getNickedPlayerInfo(player)));
  83. } catch (Exception ex) {
  84. this.getLogger().log(Level.WARNING, "Can't send update", ex);
  85. }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement