diff --git a/core/src/main/java/mc/core/player/InMemoryPlayerManager.java b/core/src/main/java/mc/core/player/InMemoryPlayerManager.java index 5994775..01240f7 100644 --- a/core/src/main/java/mc/core/player/InMemoryPlayerManager.java +++ b/core/src/main/java/mc/core/player/InMemoryPlayerManager.java @@ -66,7 +66,7 @@ public class InMemoryPlayerManager implements PlayerManager, Runnable { @Override public int getCountOnlinePlayers() { - return players.size(); + return (int) players.stream().filter(Player::isOnline).count(); } @Override diff --git a/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java b/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java index fede65f..4f24ba5 100644 --- a/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java +++ b/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java @@ -27,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.lang.reflect.Method; import java.util.Arrays; +import java.util.List; import java.util.Optional; @Slf4j @@ -162,6 +163,16 @@ public class PacketHandler extends SimpleChannelInboundHandler { channel.attr(ATTR_PLAYER).set(player); player.setChannel(new WrapperNetChannel(channel)); playerManager.joinServer(player); + + // send Player info + List players = playerManager.getPlayers(); + players.forEach(pl -> { + PlayerInfoPacket infoPkt = new PlayerInfoPacket(); + infoPkt.setPlayerName(pl.getName()); + infoPkt.setOnline(true); + infoPkt.setPing(4); + playerManager.getBroadcastChannel().writeAndFlush(infoPkt); + }); } }