diff --git a/src/main/java/net/minestom/server/entity/fakeplayer/FakePlayer.java b/src/main/java/net/minestom/server/entity/fakeplayer/FakePlayer.java index f1b174834..6dc593fd9 100644 --- a/src/main/java/net/minestom/server/entity/fakeplayer/FakePlayer.java +++ b/src/main/java/net/minestom/server/entity/fakeplayer/FakePlayer.java @@ -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(); + } + } }