Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void sendPlayerUpdate(final Player player, NickInfo info, String oldName) {
- if (info == null) {
- // Reset name to player name
- info = new NickInfo(player);
- }
- final GameProfile profile = info.createGameProfile(player.getUniqueId());
- final int ping = ((CraftPlayer) player).getHandle().ping;
- try {
- EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle();
- {
- // Send new player info
- WorldSettings.EnumGamemode gameMode = ((CraftPlayer) player).getHandle().playerInteractManager.getGameMode();
- PlayerInfoData infoData = new PlayerInfoData(profile, ping, gameMode, null);
- PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
- packet.setAction(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER);
- packet.setData(Arrays.asList(infoData));
- entityPlayer.playerConnection.sendPacket(packet);
- }
- // Hide and show player
- for (Player p : Bukkit.getOnlinePlayers()) {
- if (p.canSee(player)) {
- p.hidePlayer(player);
- p.showPlayer(player);
- }
- }
- // Send respawn to the own player
- {
- Packet packet = new PacketPlayOutRespawn(player.getWorld().getEnvironment().getId(),
- entityPlayer.getWorld().getDifficulty(),
- entityPlayer.playerInteractManager.getGameMode(),
- entityPlayer.getWorld().getWorldData().getType());
- entityPlayer.playerConnection.sendPacket(packet);
- }
- // Send shit
- {
- entityPlayer.playerConnection.teleport(new Location(player.getWorld(), entityPlayer.locX, entityPlayer.locY, entityPlayer.locZ, entityPlayer.yaw, entityPlayer.pitch));
- entityPlayer.playerConnection.sendPacket(new PacketPlayOutSpawnPosition(entityPlayer.getWorld().getSpawn()));
- entityPlayer.playerConnection.sendPacket(new PacketPlayOutExperience(entityPlayer.exp, entityPlayer.expTotal, entityPlayer.expLevel));
- }
- entityPlayer.updateInventory(entityPlayer.defaultContainer);
- ((CraftPlayer) player).updateScaledHealth();
- entityPlayer.playerConnection.sendPacket(new PacketPlayOutHeldItemSlot(entityPlayer.inventory.itemInHandIndex));
- entityPlayer.updateAbilities();
- for (MobEffect effect : entityPlayer.getEffects()) {
- entityPlayer.playerConnection.sendPacket(new PacketPlayOutEntityEffect(entityPlayer.getId(), effect));
- }
- // Call event
- PlayerChangeNickScoreboardEvent scoreboardEvent = new PlayerChangeNickScoreboardEvent(player, oldName, info);
- Bukkit.getPluginManager().callEvent(scoreboardEvent);
- //Team update
- if (!scoreboardEvent.isCancelled()) {
- for (Team team : this.getPlayerTeams(player)) {
- {
- PacketPlayOutScoreboardTeam packet = new PacketPlayOutScoreboardTeam();
- packet.setTeamName(team.getName());
- packet.setMode(4);
- packet.setPlayers(Arrays.asList(oldName));
- MinecraftServer.getServer().getPlayerList().sendAll(packet);
- }
- {
- PacketPlayOutScoreboardTeam packet = new PacketPlayOutScoreboardTeam();
- packet.setTeamName(team.getName());
- packet.setMode(3);
- packet.setPlayers(Arrays.asList(profile.getName()));
- MinecraftServer.getServer().getPlayerList().sendAll(packet);
- }
- }
- }
- Bukkit.getPluginManager().callEvent(new PlayerChangeNickEvent(player, oldName, this.getNickedPlayerInfo(player)));
- } catch (Exception ex) {
- this.getLogger().log(Level.WARNING, "Can't send update", ex);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement