From 606406085efe11038065d5fcdcc765ca8912fcf0 Mon Sep 17 00:00:00 2001 From: wzp Date: Thu, 12 Dec 2024 13:01:13 +0800 Subject: [PATCH] feat: adding chess function --- .idea/.cache/.Apifox_Helper/.toolWindow.db | Bin 0 -> 131072 bytes .idea/ApifoxUploaderProjectSetting.xml | 15 ++ .idea/ITZX-Clubs-Home-Server.iml | 9 + .idea/dataSources.xml | 9 +- .idea/inspectionProfiles/Project_Default.xml | 3 + .idea/misc.xml | 12 ++ .idea/modules.xml | 1 - build.gradle.kts | 1 - .../clubs/ItzxClubsHomeServerApplication.java | 2 + .../configuration/CorsConfiguration.java | 1 - .../configuration/WebSocketConfiguration.java | 13 ++ .../clubs/controller/ChessController.java | 158 ++++++++++++++++++ .../org/mmga/clubs/entities/chess/Room.java | 140 ++++++++++++++++ .../chess/packet/BaseWebSocketPacket.java | 19 +++ .../entities/chess/packet/ErrorPacket.java | 4 + .../clubs/entities/chess/packet/OkPacket.java | 4 + .../chess/packet/PlayerJoinRoomPacket.java | 7 + .../chess/packet/PlayerLeavePacket.java | 4 + .../chess/packet/PlayerLosePacket.java | 4 + .../packet/PlayerSideAllocationPacket.java | 4 + .../chess/packet/PlayerWinPacket.java | 4 + .../chess/packet/RoomCreatedPacket.java | 6 + .../entities/chess/packet/RoomInfoPacket.java | 9 + .../entities/chess/packet/RoomListPacket.java | 8 + .../entities/chess/packet/UserInfoPacket.java | 6 + .../packet/request/CreateRoomRequest.java | 4 + .../request/PlaceChessPieceRequest.java | 4 + .../packet/request/PlayerJoinRequest.java | 6 + .../chess/packet/request/RoomListRequest.java | 4 + .../mmga/clubs/entities/user/UserLoginVo.java | 2 +- .../org/mmga/clubs/service/UserService.java | 4 +- .../java/org/mmga/clubs/utils/JwtUtils.java | 16 +- .../org/mmga/clubs/utils/WebSocketUtils.java | 27 +++ 33 files changed, 498 insertions(+), 12 deletions(-) create mode 100644 .idea/.cache/.Apifox_Helper/.toolWindow.db create mode 100644 .idea/ApifoxUploaderProjectSetting.xml create mode 100644 .idea/ITZX-Clubs-Home-Server.iml create mode 100644 src/main/java/org/mmga/clubs/configuration/WebSocketConfiguration.java create mode 100644 src/main/java/org/mmga/clubs/controller/ChessController.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/Room.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/BaseWebSocketPacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/ErrorPacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/OkPacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/PlayerJoinRoomPacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/PlayerLeavePacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/PlayerLosePacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/PlayerSideAllocationPacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/PlayerWinPacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/RoomCreatedPacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/RoomInfoPacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/RoomListPacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/UserInfoPacket.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/request/CreateRoomRequest.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/request/PlaceChessPieceRequest.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/request/PlayerJoinRequest.java create mode 100644 src/main/java/org/mmga/clubs/entities/chess/packet/request/RoomListRequest.java create mode 100644 src/main/java/org/mmga/clubs/utils/WebSocketUtils.java diff --git a/.idea/.cache/.Apifox_Helper/.toolWindow.db b/.idea/.cache/.Apifox_Helper/.toolWindow.db new file mode 100644 index 0000000000000000000000000000000000000000..53649dbe3273719387f89b617b9f05e195298e61 GIT binary patch literal 131072 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 literal 0 HcmV?d00001 diff --git a/.idea/ApifoxUploaderProjectSetting.xml b/.idea/ApifoxUploaderProjectSetting.xml new file mode 100644 index 0000000..d01654a --- /dev/null +++ b/.idea/ApifoxUploaderProjectSetting.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/.idea/ITZX-Clubs-Home-Server.iml b/.idea/ITZX-Clubs-Home-Server.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/ITZX-Clubs-Home-Server.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 63eda1b..7fa111c 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,25 +1,26 @@ - + mysql.8 true true $PROJECT_DIR$/src/main/resources/application.properties com.mysql.cj.jdbc.Driver - jdbc:mysql://wzpmc.cn:3306/itzx + jdbc:mysql://172.16.127.100:3306/itzx + $ProjectFileDir$ - + redis true jdbc.RedisDriver - jdbc:redis://server.wzpmc.cn:6379/0 + jdbc:redis://172.16.127.100:6379/0 diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 4ac183f..1b0ef04 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -1,6 +1,9 @@