Fix FakePlayer not being removed from the tablist

This commit is contained in:
TheMode 2021-05-31 20:49:33 +02:00
parent 52d0ef7f53
commit 6764d040c3

View File

@ -124,17 +124,22 @@ public class FakePlayer extends Player implements NavigableEntity {
super.setInstance(instance);
}
@Override
protected boolean addViewer0(@NotNull Player player) {
final boolean result = super.addViewer0(player);
if (result) {
handleTabList(player.getPlayerConnection());
}
return result;
}
/**
* {@inheritDoc}
*/
@Override
protected void showPlayer(@NotNull PlayerConnection connection) {
super.showPlayer(connection);
if (!option.isInTabList()) {
// Remove from tab-list
MinecraftServer.getSchedulerManager().buildTask(() -> connection.sendPacket(getRemovePlayerToList())).delay(20, TimeUnit.TICK).schedule();
}
handleTabList(connection);
}
@NotNull
@ -142,4 +147,11 @@ public class FakePlayer extends Player implements NavigableEntity {
public Navigator getNavigator() {
return navigator;
}
private void handleTabList(PlayerConnection connection) {
if (!option.isInTabList()) {
// Remove from tab-list
MinecraftServer.getSchedulerManager().buildTask(() -> connection.sendPacket(getRemovePlayerToList())).delay(2, TimeUnit.TICK).schedule();
}
}
}