From aadaf7dc68885bc5cd46c3829b062d6bde43314e Mon Sep 17 00:00:00 2001 From: zxw Date: Sat, 26 Sep 2020 20:41:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=AD=A4=E7=B1=BB=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E8=BE=93=E5=87=BA=E5=AF=B9=E6=88=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ServerEventListener_CODE_GAME_WATCH.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 landlords-server/src/main/java/org/nico/ratel/landlords/server/event/ServerEventListener_CODE_GAME_WATCH.java diff --git a/landlords-server/src/main/java/org/nico/ratel/landlords/server/event/ServerEventListener_CODE_GAME_WATCH.java b/landlords-server/src/main/java/org/nico/ratel/landlords/server/event/ServerEventListener_CODE_GAME_WATCH.java new file mode 100644 index 0000000..03b4598 --- /dev/null +++ b/landlords-server/src/main/java/org/nico/ratel/landlords/server/event/ServerEventListener_CODE_GAME_WATCH.java @@ -0,0 +1,37 @@ +package org.nico.ratel.landlords.server.event; + +import org.nico.noson.Noson; +import org.nico.ratel.landlords.channel.ChannelUtils; +import org.nico.ratel.landlords.entity.ClientSide; +import org.nico.ratel.landlords.entity.Room; +import org.nico.ratel.landlords.enums.ClientEventCode; +import org.nico.ratel.landlords.helper.MapHelper; +import org.nico.ratel.landlords.server.ServerContains; + +import java.util.HashMap; +import java.util.Map; + +public class ServerEventListener_CODE_GAME_WATCH implements ServerEventListener { + + @Override + public void call(ClientSide clientSide, String data) { + Room room = ServerContains.getRoom(Integer.valueOf(data)); + + if (room == null) { + String result = MapHelper.newInstance() + .put("roomId", data) + .json(); + + ChannelUtils.pushToClient(clientSide.getChannel(), ClientEventCode.CODE_ROOM_JOIN_FAIL_BY_INEXIST, result); + } else { + // 将用户加入到房间中的观战者列表中 + clientSide.setRoomId(room.getId()); + room.getWatcherList().add(clientSide); + + Map map = new HashMap<>(16); + map.put("owner", room.getRoomOwner()); + map.put("status", room.getStatus().toString()); + ChannelUtils.pushToClient(clientSide.getChannel(), ClientEventCode.CODE_GAME_WATCH_SUCCESSFUL, Noson.reversal(map)); + } + } +}