summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/src/main/java/kz/ilotterytea/frogartha/server/Room.java15
-rw-r--r--server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java14
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) {