mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-11 02:02:04 -07:00
[Bleeding] Implemented Vanish API.
Remove players that cannot see a player from their EntityTrackerEntry and only send user list updates to players who can see the player they reference.
This commit is contained in:
@@ -111,10 +111,8 @@ public class ServerConfigurationManager {
|
||||
}
|
||||
|
||||
public void c(EntityPlayer entityplayer) {
|
||||
// CraftBukkit start
|
||||
cserver.detectListNameConflict(entityplayer);
|
||||
this.sendAll(new Packet201PlayerInfo(entityplayer.listName, true, 1000));
|
||||
// CraftBukkit end
|
||||
cserver.detectListNameConflict(entityplayer); // CraftBukkit
|
||||
//this.sendAll(new Packet201PlayerInfo(entityplayer.name, true, 1000)); // CraftBukkit - replaced with loop below
|
||||
this.players.add(entityplayer);
|
||||
WorldServer worldserver = this.server.getWorldServer(entityplayer.dimension);
|
||||
|
||||
@@ -142,11 +140,24 @@ public class ServerConfigurationManager {
|
||||
worldserver.addEntity(entityplayer);
|
||||
this.getPlayerManager(entityplayer.dimension).addPlayer(entityplayer);
|
||||
|
||||
// CraftBukkit start - sendAll above replaced with this loop
|
||||
Packet201PlayerInfo packet = new Packet201PlayerInfo(entityplayer.listName, true, 1000);
|
||||
for (int i = 0; i < this.players.size(); ++i) {
|
||||
EntityPlayer entityplayer1 = (EntityPlayer) this.players.get(i);
|
||||
|
||||
if (entityplayer1.getBukkitEntity().canSee(entityplayer.getBukkitEntity())) {
|
||||
entityplayer1.netServerHandler.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
for (int i = 0; i < this.players.size(); ++i) {
|
||||
EntityPlayer entityplayer1 = (EntityPlayer) this.players.get(i);
|
||||
|
||||
// CraftBukkit start - .name -> .listName
|
||||
entityplayer.netServerHandler.sendPacket(new Packet201PlayerInfo(entityplayer1.listName, true, entityplayer1.ping));
|
||||
if (entityplayer.getBukkitEntity().canSee(entityplayer1.getBukkitEntity())) {
|
||||
entityplayer.netServerHandler.sendPacket(new Packet201PlayerInfo(entityplayer1.listName, true, entityplayer1.ping));
|
||||
}
|
||||
// CraftBukkit end
|
||||
}
|
||||
}
|
||||
@@ -169,8 +180,15 @@ public class ServerConfigurationManager {
|
||||
this.server.getWorldServer(entityplayer.dimension).kill(entityplayer);
|
||||
this.players.remove(entityplayer);
|
||||
this.getPlayerManager(entityplayer.dimension).removePlayer(entityplayer);
|
||||
// CraftBukkit start - .name -> .listName
|
||||
this.sendAll(new Packet201PlayerInfo(entityplayer.listName, false, 9999));
|
||||
// CraftBukkit start - .name -> .listName, replace sendAll with loop
|
||||
Packet201PlayerInfo packet = new Packet201PlayerInfo(entityplayer.listName, false, 9999);
|
||||
for (int i = 0; i < this.players.size(); ++i) {
|
||||
EntityPlayer entityplayer1 = (EntityPlayer) this.players.get(i);
|
||||
|
||||
if (entityplayer1.getBukkitEntity().canSee(entityplayer.getBukkitEntity())) {
|
||||
entityplayer1.netServerHandler.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
return playerQuitEvent.getQuitMessage(); // CraftBukkit
|
||||
|
Reference in New Issue
Block a user