Don't call chunkmap status updates if the playerlist wasn't modified
This commit is contained in:
parent
15ee73f944
commit
7a229def7d
|
@ -347,11 +347,17 @@ public class NMSImpl implements NMSBridge {
|
|||
EntityPlayer handle = (EntityPlayer) getHandle(entity);
|
||||
if (handle.world == null)
|
||||
return;
|
||||
if (remove) {
|
||||
handle.world.getPlayers().remove(handle);
|
||||
} else if (!handle.world.getPlayers().contains(handle)) {
|
||||
((List) handle.world.getPlayers()).add(handle);
|
||||
List<? extends EntityHuman> players = handle.world.getPlayers();
|
||||
boolean changed = false;
|
||||
if (remove && players.contains(handle)) {
|
||||
players.remove(handle);
|
||||
changed = true;
|
||||
} else if (!remove && !players.contains(handle)) {
|
||||
((List) players).add(handle);
|
||||
changed = true;
|
||||
}
|
||||
if (!changed)
|
||||
return;
|
||||
try {
|
||||
CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((WorldServer) handle.world).getChunkProvider().playerChunkMap, handle,
|
||||
!remove);
|
||||
|
|
|
@ -358,11 +358,17 @@ public class NMSImpl implements NMSBridge {
|
|||
EntityPlayer handle = (EntityPlayer) getHandle(entity);
|
||||
if (handle.world == null)
|
||||
return;
|
||||
if (remove) {
|
||||
handle.world.getPlayers().remove(handle);
|
||||
} else if (!handle.world.getPlayers().contains(handle)) {
|
||||
((List) handle.world.getPlayers()).add(handle);
|
||||
List<? extends EntityHuman> players = handle.world.getPlayers();
|
||||
boolean changed = false;
|
||||
if (remove && players.contains(handle)) {
|
||||
players.remove(handle);
|
||||
changed = true;
|
||||
} else if (!remove && !players.contains(handle)) {
|
||||
((List) players).add(handle);
|
||||
changed = true;
|
||||
}
|
||||
if (!changed)
|
||||
return;
|
||||
try {
|
||||
CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((WorldServer) handle.world).getChunkProvider().playerChunkMap, handle,
|
||||
!remove);
|
||||
|
|
|
@ -372,11 +372,17 @@ public class NMSImpl implements NMSBridge {
|
|||
EntityPlayer handle = (EntityPlayer) getHandle(entity);
|
||||
if (handle.world == null)
|
||||
return;
|
||||
if (remove) {
|
||||
handle.world.getPlayers().remove(handle);
|
||||
} else if (!handle.world.getPlayers().contains(handle)) {
|
||||
((List) handle.world.getPlayers()).add(handle);
|
||||
List<? extends EntityHuman> players = handle.world.getPlayers();
|
||||
boolean changed = false;
|
||||
if (remove && players.contains(handle)) {
|
||||
players.remove(handle);
|
||||
changed = true;
|
||||
} else if (!remove && !players.contains(handle)) {
|
||||
((List) players).add(handle);
|
||||
changed = true;
|
||||
}
|
||||
if (!changed)
|
||||
return;
|
||||
try {
|
||||
CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((WorldServer) handle.world).getChunkProvider().playerChunkMap, handle,
|
||||
!remove);
|
||||
|
|
|
@ -370,11 +370,19 @@ public class NMSImpl implements NMSBridge {
|
|||
ServerPlayer handle = (ServerPlayer) getHandle(entity);
|
||||
if (handle.level == null)
|
||||
return;
|
||||
if (remove) {
|
||||
handle.level.players().remove(handle);
|
||||
} else if (!handle.level.players().contains(handle)) {
|
||||
((List) handle.level.players()).add(handle);
|
||||
|
||||
List<? extends net.minecraft.world.entity.player.Player> players = handle.level.players();
|
||||
boolean changed = false;
|
||||
if (remove && players.contains(handle)) {
|
||||
players.remove(handle);
|
||||
changed = true;
|
||||
} else if (!remove && !players.contains(handle)) {
|
||||
((List) players).add(handle);
|
||||
changed = true;
|
||||
}
|
||||
if (!changed)
|
||||
return;
|
||||
|
||||
try {
|
||||
CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(
|
||||
((ServerChunkCache) ((ServerLevel) handle.level).getChunkSource()).chunkMap, handle, !remove);
|
||||
|
|
|
@ -374,11 +374,19 @@ public class NMSImpl implements NMSBridge {
|
|||
ServerPlayer handle = (ServerPlayer) getHandle(entity);
|
||||
if (handle.level == null)
|
||||
return;
|
||||
if (remove) {
|
||||
handle.level.players().remove(handle);
|
||||
} else if (!handle.level.players().contains(handle)) {
|
||||
((List) handle.level.players()).add(handle);
|
||||
|
||||
List<? extends net.minecraft.world.entity.player.Player> players = handle.level.players();
|
||||
boolean changed = false;
|
||||
if (remove && players.contains(handle)) {
|
||||
players.remove(handle);
|
||||
changed = true;
|
||||
} else if (!remove && !players.contains(handle)) {
|
||||
((List) players).add(handle);
|
||||
changed = true;
|
||||
}
|
||||
if (!changed)
|
||||
return;
|
||||
|
||||
try {
|
||||
CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((ServerLevel) handle.level).getChunkSource().chunkMap, handle,
|
||||
!remove);
|
||||
|
|
|
@ -410,11 +410,19 @@ public class NMSImpl implements NMSBridge {
|
|||
ServerPlayer handle = (ServerPlayer) getHandle(entity);
|
||||
if (handle.level == null)
|
||||
return;
|
||||
if (remove) {
|
||||
handle.level.players().remove(handle);
|
||||
} else if (!handle.level.players().contains(handle)) {
|
||||
((List) handle.level.players()).add(handle);
|
||||
|
||||
List<? extends net.minecraft.world.entity.player.Player> players = handle.level.players();
|
||||
boolean changed = false;
|
||||
if (remove && players.contains(handle)) {
|
||||
players.remove(handle);
|
||||
changed = true;
|
||||
} else if (!remove && !players.contains(handle)) {
|
||||
((List) players).add(handle);
|
||||
changed = true;
|
||||
}
|
||||
if (!changed)
|
||||
return;
|
||||
|
||||
try {
|
||||
CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((ServerLevel) handle.level).getChunkSource().chunkMap, handle,
|
||||
!remove);
|
||||
|
|
|
@ -401,11 +401,19 @@ public class NMSImpl implements NMSBridge {
|
|||
ServerPlayer handle = (ServerPlayer) getHandle(entity);
|
||||
if (handle.level() == null)
|
||||
return;
|
||||
if (remove) {
|
||||
handle.level().players().remove(handle);
|
||||
} else if (!handle.level().players().contains(handle)) {
|
||||
((List) handle.level().players()).add(handle);
|
||||
|
||||
List<? extends net.minecraft.world.entity.player.Player> players = handle.level().players();
|
||||
boolean changed = false;
|
||||
if (remove && players.contains(handle)) {
|
||||
players.remove(handle);
|
||||
changed = true;
|
||||
} else if (!remove && !players.contains(handle)) {
|
||||
((List) players).add(handle);
|
||||
changed = true;
|
||||
}
|
||||
if (!changed)
|
||||
return;
|
||||
|
||||
try {
|
||||
CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((ServerLevel) handle.level()).getChunkSource().chunkMap, handle,
|
||||
!remove);
|
||||
|
|
Loading…
Reference in New Issue