소스 검색

优化房间相关命名和结构

johnclot69 5 달 전
부모
커밋
85bc6d2ec3

+ 0 - 4
incubator-core/src/main/java/com/incubator/core/room/GRoomInterface.java

@@ -8,10 +8,6 @@ public interface GRoomInterface {
     public abstract void initCardList();
     /** 主线程逻辑 **/
     public abstract void doUpdate();
-    /** 检测是否可以开始 3秒倒计时开始 **/
-    public abstract boolean checkReadyStart();
-    /** 玩家是否都已准备 **/
-    public abstract boolean isStart();
     /** 给玩家发牌 **/
     public abstract void doSendCard();
     /** 游戏开局 **/

+ 5 - 5
incubator-game/src/main/java/com/incubator/game/contest/Contest.java

@@ -9,7 +9,7 @@ import com.incubator.game.data.data.PromotionLvCO;
 import com.incubator.game.data.data.ext.ContestExt;
 import com.incubator.game.data.po.ContestPO;
 import com.incubator.game.player.Player;
-import com.incubator.game.room.JDGDRoom;
+import com.incubator.game.room.GDRoom;
 import com.incubator.game.room.Room;
 import com.incubator.game.room.RoomService;
 import com.incubator.game.util.PlayerUtil;
@@ -340,7 +340,7 @@ public class Contest {
             }
             switch (room.gameType) {
                 case 1:
-                    if (((JDGDRoom) room).data.curRound >= this.prop.maxRound && room.state == 3) {
+                    if (((GDRoom) room).data.curRound >= this.prop.maxRound && room.state == 3) {
                         cnt += 1;
                     }
                     break;
@@ -378,9 +378,9 @@ public class Contest {
             List<Struct.PromotionData> list = roomMap.getOrDefault(room.roomId, new ArrayList<>());
             switch (room.gameType) {
                 case 1:
-                    if (((JDGDRoom) room).data.result.size() >= ((JDGDRoom) room).data.maxNum) {
-                        for (int i = 1; i < ((JDGDRoom) room).data.result.size(); i++) {
-                            Player player = ((JDGDRoom) room).data.result.getOrDefault(i, null);
+                    if (((GDRoom) room).data.result.size() >= ((GDRoom) room).data.maxNum) {
+                        for (int i = 1; i < ((GDRoom) room).data.result.size(); i++) {
+                            Player player = ((GDRoom) room).data.result.getOrDefault(i, null);
                             if (player != null) {
                                 list.add(new Struct.PromotionData(player.getId(), player.data.avatarUrl, 0, 0, list.size() <= cnt));
                             }

+ 2 - 3
incubator-game/src/main/java/com/incubator/game/data/po/RoomPO.java → incubator-game/src/main/java/com/incubator/game/data/po/GDRoomPO.java

@@ -2,7 +2,6 @@ package com.incubator.game.data.po;
 
 import com.incubator.game.player.Player;
 import com.incubator.game.util.JDGDUtils;
-import com.incubator.game.util.Struct;
 
 import java.util.*;
 
@@ -11,7 +10,7 @@ import java.util.*;
  * 作者:agui
  * 自动创建时间:2022-10-01 02:24:37
  */
-public class RoomPO {
+public class GDRoomPO {
 
 	/** 房间号 */
 	public long roomId;
@@ -63,7 +62,7 @@ public class RoomPO {
 	/** 牌库 **/
 	public List<Integer> cardList = new ArrayList<>();
 
-	public RoomPO() {}
+	public GDRoomPO() {}
 
 	public void init() {
 		this.roomId = 0;

+ 4 - 4
incubator-game/src/main/java/com/incubator/game/handler/jdgd/JDGDDisCardHandler.java → incubator-game/src/main/java/com/incubator/game/handler/room/GDDisCardHandler.java

@@ -1,4 +1,4 @@
-package com.incubator.game.handler.jdgd;
+package com.incubator.game.handler.room;
 
 import com.incubator.common.MessageHandler;
 import com.incubator.common.log4j.Log;
@@ -6,7 +6,7 @@ import com.incubator.common.net.Connection;
 import com.incubator.core.net.ws.NetHandler;
 import com.incubator.core.net.ws.WSRequest;
 import com.incubator.core.net.ws.WSResponse;
-import com.incubator.game.room.JDGDRoom;
+import com.incubator.game.room.GDRoom;
 import com.incubator.game.player.Player;
 import com.incubator.game.room.RoomService;
 import com.incubator.game.util.CardUtils;
@@ -23,7 +23,7 @@ import java.util.Map;
  * @author johnc
  */
 @MessageHandler(id = CommonProto.Cmd.PlayDisCardsReq_VALUE)
-public class JDGDDisCardHandler extends NetHandler {
+public class GDDisCardHandler extends NetHandler {
 
     @Override
     public void onDate(Connection session, WSRequest request, WSResponse response) {
@@ -46,7 +46,7 @@ public class JDGDDisCardHandler extends NetHandler {
         }
 
         // 玩家房间是否存在
-        JDGDRoom room = (JDGDRoom) RoomService.getInstance().getRoom(player.data.roomId);
+        GDRoom room = (GDRoom) RoomService.getInstance().getRoom(player.data.roomId);
         if (room == null) {
             Log.info("玩家房间已解散");
             response.setCode(CommonProto.Code.ROOM_NOT_EXIST_ERR_VALUE);

+ 4 - 4
incubator-game/src/main/java/com/incubator/game/handler/jdgd/JDGDPassHandler.java → incubator-game/src/main/java/com/incubator/game/handler/room/GDPassHandler.java

@@ -1,4 +1,4 @@
-package com.incubator.game.handler.jdgd;
+package com.incubator.game.handler.room;
 
 import com.incubator.common.MessageHandler;
 import com.incubator.common.log4j.Log;
@@ -8,7 +8,7 @@ import com.incubator.core.net.ws.WSRequest;
 import com.incubator.core.net.ws.WSResponse;
 import com.incubator.game.player.Player;
 import com.incubator.game.room.RoomService;
-import com.incubator.game.room.JDGDRoom;
+import com.incubator.game.room.GDRoom;
 import com.incubator.game.util.ProtoUtil;
 import com.incubator.game.util.PlayerUtil;
 import com.incubator.message.proto.CommonProto;
@@ -21,7 +21,7 @@ import java.util.Map;
  * @author johnc
  */
 @MessageHandler(id = CommonProto.Cmd.PlayNoCardsReq_VALUE)
-public class JDGDPassHandler extends NetHandler {
+public class GDPassHandler extends NetHandler {
 
     @Override
     public void onDate(Connection session, WSRequest request, WSResponse response) {
@@ -44,7 +44,7 @@ public class JDGDPassHandler extends NetHandler {
         }
 
         // 玩家房间是否存在
-        JDGDRoom room = (JDGDRoom) RoomService.getInstance().getRoom(player.data.roomId);
+        GDRoom room = (GDRoom) RoomService.getInstance().getRoom(player.data.roomId);
         if (room == null) {
             Log.info("玩家房间已解散");
             response.setCode(CommonProto.Code.ROOM_NOT_EXIST_ERR_VALUE);

+ 4 - 4
incubator-game/src/main/java/com/incubator/game/handler/jdgd/JDGDReadyHandler.java → incubator-game/src/main/java/com/incubator/game/handler/room/GDReadyHandler.java

@@ -1,4 +1,4 @@
-package com.incubator.game.handler.jdgd;
+package com.incubator.game.handler.room;
 
 import com.incubator.common.MessageHandler;
 import com.incubator.common.log4j.Log;
@@ -6,7 +6,7 @@ import com.incubator.common.net.Connection;
 import com.incubator.core.net.ws.NetHandler;
 import com.incubator.core.net.ws.WSRequest;
 import com.incubator.core.net.ws.WSResponse;
-import com.incubator.game.room.JDGDRoom;
+import com.incubator.game.room.GDRoom;
 import com.incubator.game.player.Player;
 import com.incubator.game.room.RoomService;
 import com.incubator.game.util.ProtoUtil;
@@ -22,7 +22,7 @@ import java.util.Objects;
  * @author johnc
  */
 @MessageHandler(id = CommonProto.Cmd.RoomReadyReq_VALUE)
-public class JDGDReadyHandler extends NetHandler {
+public class GDReadyHandler extends NetHandler {
 
 	@Override
 	public void onDate(Connection session, WSRequest request, WSResponse response) {
@@ -45,7 +45,7 @@ public class JDGDReadyHandler extends NetHandler {
 		}
 
 		// 玩家房间是否存在
-		JDGDRoom room = (JDGDRoom) RoomService.getInstance().getRoom(player.data.roomId);
+		GDRoom room = (GDRoom) RoomService.getInstance().getRoom(player.data.roomId);
 		if (room == null) {
 			Log.info("玩家房间已解散");
 			response.setCode(CommonProto.Code.ROOM_NOT_EXIST_ERR_VALUE);

+ 4 - 4
incubator-game/src/main/java/com/incubator/game/handler/jdgd/JDGDTributeHandler.java → incubator-game/src/main/java/com/incubator/game/handler/room/GDTributeHandler.java

@@ -1,4 +1,4 @@
-package com.incubator.game.handler.jdgd;
+package com.incubator.game.handler.room;
 
 import com.incubator.common.MessageHandler;
 import com.incubator.common.log4j.Log;
@@ -7,7 +7,7 @@ import com.incubator.core.net.ws.NetHandler;
 import com.incubator.core.net.ws.WSRequest;
 import com.incubator.core.net.ws.WSResponse;
 import com.incubator.game.player.Player;
-import com.incubator.game.room.JDGDRoom;
+import com.incubator.game.room.GDRoom;
 import com.incubator.game.room.RoomService;
 import com.incubator.game.util.CardUtils;
 import com.incubator.game.util.JDGDUtils;
@@ -26,7 +26,7 @@ import java.util.Objects;
  * @author johnc
  */
 @MessageHandler(id = CommonProto.Cmd.EnterBackCardsReq_VALUE)
-public class JDGDTributeHandler extends NetHandler {
+public class GDTributeHandler extends NetHandler {
 
 	@Override
 	public void onDate(Connection session, WSRequest request, WSResponse response) {
@@ -49,7 +49,7 @@ public class JDGDTributeHandler extends NetHandler {
 		}
 
 		// 玩家房间是否存在
-		JDGDRoom room = (JDGDRoom) RoomService.getInstance().getRoom(player.data.roomId);
+		GDRoom room = (GDRoom) RoomService.getInstance().getRoom(player.data.roomId);
 		if (room == null) {
 			Log.info("玩家房间已解散");
 			response.setCode(CommonProto.Code.ROOM_NOT_EXIST_ERR_VALUE);

+ 8 - 12
incubator-game/src/main/java/com/incubator/game/room/JDGDRoom.java → incubator-game/src/main/java/com/incubator/game/room/GDRoom.java

@@ -2,9 +2,8 @@ package com.incubator.game.room;
 
 import com.alibaba.fastjson2.JSONObject;
 import com.incubator.common.log4j.Log;
-import com.incubator.game.data.po.RoomPO;
+import com.incubator.game.data.po.GDRoomPO;
 import com.incubator.game.player.Player;
-import com.incubator.core.room.GRoomInterface;
 import com.incubator.game.util.CardUtils;
 import com.incubator.game.util.JDGDUtils;
 import com.incubator.game.util.ProtoUtil;
@@ -15,14 +14,14 @@ import org.apache.commons.lang3.StringUtils;
 import java.util.*;
 
 /**
- * 经典掼蛋房间
+ * 掼蛋房间
  */
-public class JDGDRoom extends Room implements GRoomInterface {
+public class GDRoom extends Room {
 
     /** 房间内数据 **/
-    public RoomPO data;
+    public GDRoomPO data;
 
-    public JDGDRoom() {}
+    public GDRoom() {}
 
     @Override
     public void init(Player player, JSONObject jsonData) {
@@ -30,16 +29,15 @@ public class JDGDRoom extends Room implements GRoomInterface {
         this.roomId = jsonData.getLong("roomId");
         this.type = jsonData.getInteger("type");
         this.gameType = jsonData.getInteger("gameType");
-        if (player != null) {
-            this.ownerId = player.getId();
-        }
+        this.ownerId = player != null? player.getId() : "";
         // todo 默认配置
-        this.data = new RoomPO();
+        this.data = new GDRoomPO();
         this.data.roomId = this.roomId;
         this.data.maxNum = jsonData.getInteger("PlayerNum");
         this.data.maxRound = jsonData.getInteger("maxRound");
         // 初始化级牌点数
         this.data.curLevelPoint = JDGDUtils.levelPoint[this.data.curLevelIndex];
+        // 初始化牌库
         this.initCardList();
     }
 
@@ -187,7 +185,6 @@ public class JDGDRoom extends Room implements GRoomInterface {
      *
      * @return
      */
-    @Override
     public boolean checkReadyStart() {
         if (!this.isStart() || this.state != 0) {
             return false;
@@ -212,7 +209,6 @@ public class JDGDRoom extends Room implements GRoomInterface {
      *
      * @return
      */
-    @Override
     public boolean isStart() {
         int cnt = 0;
         for (Player player : this.actors.values()) {

+ 9 - 4
incubator-game/src/main/java/com/incubator/game/room/Room.java

@@ -2,10 +2,9 @@ package com.incubator.game.room;
 
 import com.alibaba.fastjson2.JSONObject;
 import com.incubator.common.log4j.Log;
+import com.incubator.core.room.GRoomInterface;
 import com.incubator.game.player.Player;
 
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.Executors;
@@ -15,7 +14,7 @@ import java.util.concurrent.TimeUnit;
 /**
  * 房间实体基类
  */
-public class Room {
+public class Room implements GRoomInterface {
 
     /** 房间规则数据 **/
     public JSONObject jsonData;
@@ -65,10 +64,16 @@ public class Room {
         }, 0, 1, TimeUnit.SECONDS);
     }
 
+    public void initCardList() {}
+
     /**
      * 房间主线程逻辑
      */
-    void doUpdate() {}
+    public void doUpdate() {}
+
+    public void doSendCard() {}
+
+    public void doStart() {}
 
     /**
      * 房间重置逻辑

+ 2 - 2
incubator-game/src/main/java/com/incubator/game/room/RoomFactory.java

@@ -14,8 +14,8 @@ public class RoomFactory {
     public static Room createRoom(int roomType) {
         switch (roomType) {
             case 1:
-                // 经典掼蛋
-                return new JDGDRoom();
+                // 掼蛋
+                return new GDRoom();
             case 2:
                 // 添加其他房间类型
 //                return new SomeOtherRoom();

+ 12 - 16
incubator-game/src/main/java/com/incubator/game/util/ProtoUtil.java

@@ -1,14 +1,10 @@
 package com.incubator.game.util;
 
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
 import com.incubator.game.contest.Contest;
 import com.incubator.game.contest.ContestService;
 import com.incubator.game.player.Player;
-import com.incubator.game.room.JDGDRoom;
+import com.incubator.game.room.GDRoom;
 import com.incubator.game.room.Room;
-import org.apache.commons.lang3.StringUtils;
 
 import java.util.*;
 
@@ -73,18 +69,18 @@ public final class ProtoUtil {
         data.put("time", room.time);
         // todo 后面这里写法要调整
         if (room.gameType == 1) {
-            data.put("maxRound", ((JDGDRoom) room).data.maxRound);
-            data.put("curRound", ((JDGDRoom) room).data.curRound);
-            data.put("zhuangPos", ((JDGDRoom) room).data.zhuangPos);
+            data.put("maxRound", ((GDRoom) room).data.maxRound);
+            data.put("curRound", ((GDRoom) room).data.curRound);
+            data.put("zhuangPos", ((GDRoom) room).data.zhuangPos);
             // 当前级牌点数
-            data.put("curLevelPoint", ((JDGDRoom) room).data.curLevelPoint);
+            data.put("curLevelPoint", ((GDRoom) room).data.curLevelPoint);
             data.put("opId", opPlayer != null ? opPlayer.getId() : "");
             data.put("opPos", opPlayer != null ? opPlayer.data.pos : -1);
-            data.put("curDiscardList", ((JDGDRoom) room).data.curDisCardList);
-            data.put("curDisCardType", ((JDGDRoom) room).data.curDisCardType);
-            data.put("curDiscardPlayer", ((JDGDRoom) room).data.disCardPlayer != null ? ((JDGDRoom) room).data.disCardPlayer.getId() : "");
-            data.put("curDiscardSex", ((JDGDRoom) room).data.disCardPlayer != null ? ((JDGDRoom) room).data.disCardPlayer.data.sex : 0);
-            data.put("curPassList", ((JDGDRoom) room).data.passList);
+            data.put("curDiscardList", ((GDRoom) room).data.curDisCardList);
+            data.put("curDisCardType", ((GDRoom) room).data.curDisCardType);
+            data.put("curDiscardPlayer", ((GDRoom) room).data.disCardPlayer != null ? ((GDRoom) room).data.disCardPlayer.getId() : "");
+            data.put("curDiscardSex", ((GDRoom) room).data.disCardPlayer != null ? ((GDRoom) room).data.disCardPlayer.data.sex : 0);
+            data.put("curPassList", ((GDRoom) room).data.passList);
 
             data.put("myInfo", playerRoomToMessage(room, player, true));
             List<Map<String, Object>> otherInfo = new ArrayList<>();
@@ -94,9 +90,9 @@ public final class ProtoUtil {
                 }
             }
             // 增加结算玩家信息
-            if (!((JDGDRoom) room).data.result.isEmpty()) {
+            if (!((GDRoom) room).data.result.isEmpty()) {
                 Map<Integer, String> settlementData = new HashMap<>();
-                for (Map.Entry<Integer, Player> entry : ((JDGDRoom) room).data.result.entrySet()) {
+                for (Map.Entry<Integer, Player> entry : ((GDRoom) room).data.result.entrySet()) {
                     settlementData.put(entry.getKey(), entry.getValue().getId());
                 }
                 if (!settlementData.isEmpty()) {