From 19bf08d548f2b83ecda40e8046c34d32a911d98d Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 6 May 2018 15:07:53 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=81=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=B8=D0=B3=D1=80=D0=BE=D0=BA=D0=BE=D0=B2=20=D0=B2=20=D1=81?= =?UTF-8?q?=D0=B5=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/mc/core/player/InMemoryPlayerManager.java | 2 +- .../core/network/proto_125/netty/PacketHandler.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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); + }); } }