mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2025-02-05 23:11:34 +01:00
Fix tablist removing
This commit is contained in:
parent
5b64a7cc57
commit
28ea52c742
@ -41,7 +41,6 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.craftbukkit.v1_8_R1.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.metadata.MetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.Vector;
|
||||
@ -284,17 +283,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
|
||||
boolean removeFromPlayerList = npc.data().get("removefromplayerlist",
|
||||
Setting.REMOVE_PLAYERS_FROM_PLAYER_LIST.asBoolean());
|
||||
NMS.addOrRemoveFromPlayerList(getBukkitEntity(), removeFromPlayerList);
|
||||
Player otherOnline = null;
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
if (player.getName().equalsIgnoreCase(getName()) && !(player instanceof NPCHolder)) {
|
||||
otherOnline = player;
|
||||
break;
|
||||
}
|
||||
}
|
||||
NMS.sendPlayerlistPacket(false, getBukkitEntity(), npc);
|
||||
if (otherOnline != null) {
|
||||
NMS.sendPlayerlistPacket(true, otherOnline, npc);
|
||||
}
|
||||
NMS.sendPlayerlistPacket(false, getBukkitEntity());
|
||||
NMS.sendPacketsNearby(getBukkitEntity(), current, packets);
|
||||
}
|
||||
}
|
||||
|
@ -92,7 +92,7 @@ public class HumanController extends AbstractEntityController {
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
NMS.sendPlayerlistPacket(false, null, getBukkitEntity());
|
||||
NMS.sendPlayerlistPacket(false, getBukkitEntity());
|
||||
super.remove();
|
||||
}
|
||||
|
||||
|
@ -410,25 +410,10 @@ public class NMS {
|
||||
NMS.sendPacketsNearby(from, location, Arrays.asList(packets), 64);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a PlayerInfo packet (adds or removes the NPC to or from the tab
|
||||
* list) to the player.
|
||||
*
|
||||
* @param player
|
||||
* The player to send the packet to, or null for all players.
|
||||
*/
|
||||
public static void sendPlayerlistPacket(boolean showInPlayerlist, Player player, NPC npc) {
|
||||
sendPlayerlistPacket(showInPlayerlist, player, (CraftPlayer) npc.getEntity());
|
||||
}
|
||||
|
||||
public static void sendPlayerlistPacket(boolean showInPlayerlist, Player player, Player npc) {
|
||||
public static void sendPlayerlistPacket(boolean showInPlayerlist, Player npc) {
|
||||
PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(showInPlayerlist ? EnumPlayerInfoAction.ADD_PLAYER
|
||||
: EnumPlayerInfoAction.REMOVE_PLAYER, ((CraftPlayer) npc).getHandle());
|
||||
if (player == null) {
|
||||
sendToOnline(packet);
|
||||
} else {
|
||||
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
|
||||
public static void sendToOnline(Packet... packets) {
|
||||
|
Loading…
Reference in New Issue
Block a user