diff options
| author | ilotterytea <iltsu@alright.party> | 2025-01-22 13:47:14 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-01-22 13:47:14 +0500 |
| commit | 371cb9114965be606273e82a2411cf0e729d753e (patch) | |
| tree | 3337f4a4e1cf121663245790e01680dae9941a05 | |
| parent | 449c70cbf900a80042f70dd8929f302f0f0016d7 (diff) | |
feat: methods for broadcasting
| -rw-r--r-- | server/src/main/java/kz/ilotterytea/frogartha/server/Room.java | 15 | ||||
| -rw-r--r-- | server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java | 14 |
2 files changed, 15 insertions, 14 deletions
diff --git a/server/src/main/java/kz/ilotterytea/frogartha/server/Room.java b/server/src/main/java/kz/ilotterytea/frogartha/server/Room.java index 01f92d4..1c76a45 100644 --- a/server/src/main/java/kz/ilotterytea/frogartha/server/Room.java +++ b/server/src/main/java/kz/ilotterytea/frogartha/server/Room.java @@ -23,8 +23,19 @@ public class Room { return players; } + public void broadcast(Object o) { + broadcastExceptPlayer(null, o); + } + + public void broadcastExceptPlayer(PlayerConnection player, Object o) { + this.players.forEach((x) -> { + if (x.equals(player)) return; + x.send(o); + }); + } + public void addPlayer(PlayerConnection player) { - this.players.forEach((x) -> x.send(new PlayerJoinedRoomEvent(player.getId(), player))); + broadcast(new PlayerJoinedRoomEvent(player.getId(), player)); player.send(new SenderJoinedRoomEvent( player.getId(), this.players.stream().map(PlayerConnection::getId).collect(Collectors.toList()), @@ -38,7 +49,7 @@ public class Room { player.setRoom(null); this.players.remove(player); - this.players.forEach((x) -> x.send(new PlayerLeftRoomEvent(player.getId()))); + broadcast(new PlayerLeftRoomEvent(player.getId())); if (player.getConnection().isOpen()) { player.send(new SenderLeftRoomEvent(player.getId())); } diff --git a/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java b/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java index c1bdbbe..9add4ce 100644 --- a/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java +++ b/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java @@ -67,15 +67,10 @@ public class ServerHandlers { PlayerJumpEvent event = new PlayerJumpEvent( player.getId(), startPosition, endPosition, action.getJumpStrength() ); - player.send(event); log.log("{} jumped from {} to {} with strength {}", player, startPosition, endPosition, action.getJumpStrength()); - // broadcasting Room room = player.getRoom(); - room.getPlayers().forEach((x) -> { - if (x.getId() == player.getId()) return; - x.send(event); - }); + room.broadcast(event); } public static void handleChangedDirectionAction(PlayerConnection player, ChangedDirectionAction action) { @@ -89,14 +84,9 @@ public class ServerHandlers { state.setDirection(direction.x, state.getPosition().y, direction.z); ChangedDirectionEvent event = new ChangedDirectionEvent(player.getId(), state.getDirection()); - player.send(event); - // broadcasting Room room = player.getRoom(); - room.getPlayers().forEach((x) -> { - if (x.getId() == player.getId()) return; - x.send(event); - }); + room.broadcast(event); } public static void handleJoinRoomAction(PlayerConnection player, JoinRoomAction action) { |
