refactor(game): 重构游戏相关代码

- 删除了 PlayerInitState 类
- 新增 RoomWaitState 类
- 修改了 RoomDestoryGameState 和 PlayerReloadState 类
- 优化了 EventController 中的 redisGroupMemberRound 方法
- 更新了 Global 类中的 logger 属性
master
苗庆帅 2025-06-17 19:49:39 +08:00
parent bc6d2d0abb
commit c698851efe
332 changed files with 1609 additions and 560 deletions

View File

@ -2,27 +2,15 @@
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/game_web/event_mgr/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/game_web/event_mgr/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/game_web/group_room_mgr/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/game_web/group_room_mgr/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/game_web/pack_tools/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/game_web/pack_tools/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/game_web/web_group/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/game_web/web_group/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/game_web/web_login20/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/game_web/web_login20/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/data_cache/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/data_cache/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/game_common/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/game_common/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/taurus-server/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/taurus-server/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/taurus-server/taurus-core/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/taurus-server/taurus-core/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/taurus-server/taurus-permanent/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/taurus-server/taurus-permanent/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/taurus-server/taurus-web/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/libs/taurus-server/taurus-web/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/puke/suoha/game_pk_suoha/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/puke/suoha/game_pk_suoha/src/main/resources" charset="UTF-8" />
</component>

View File

@ -6,6 +6,11 @@
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />

View File

@ -1,6 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$/game_web/event_mgr" />
<file type="web" url="file://$PROJECT_DIR$/game_web/group_room_mgr" />
<file type="web" url="file://$PROJECT_DIR$/game_web/pack_tools" />
<file type="web" url="file://$PROJECT_DIR$/game_web/web_group" />
<file type="web" url="file://$PROJECT_DIR$/game_web/web_login20" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
@ -16,7 +23,7 @@
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8 (2)" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
</set>
</option>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

20
config/game-config.xml Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--<gameSetting>-->
<!-- <host>192.168.1.5</host>-->
<!-- <intranet>192.168.1.5</intranet>-->
<!-- <port>8830</port>-->
<!-- <serverId>8831</serverId>-->
<!-- <gameId>90</gameId>-->
<!-- <loggerDebug>true</loggerDebug>-->
<!--</gameSetting>-->
<gameSetting>
<host>192.168.1.5</host>
<intranet>192.168.1.5</intranet>
<port>8890</port>
<serverId>8490</serverId>
<gameId>90</gameId>
<loggerDebug>true</loggerDebug>
</gameSetting>

20
config/log4j.properties Normal file
View File

@ -0,0 +1,20 @@
log4j.rootLogger = INFO,consoleAppender,fileAppender
# ConsoleAppender
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%t] %c{2} %3x - %m%n
# Regular FileAppender
log4j.appender.fileAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.File=${WORKDIR}/logs/web_main.log
log4j.appender.fileAppender.layout.ConversionPattern=%d{dd MMM yyyy | HH:mm:ss,SSS} | %-5p | %t | %c{3} | %3x | %m%n
log4j.appender.fileAppender.Encoding=UTF-8
log4j.appender.fileAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.dailyFile.Append=true
# The file is rolled over very day
log4j.appender.fileAppender.DatePattern ='.'yyyy-MM-dd

51
config/taurus-core.xml Normal file
View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<serivce-core>
<log4jPath>log4j.properties</log4jPath>
<plugin>
<id>redis</id>
<class>com.taurus.core.plugin.redis.RedisPlugin</class>
<poolConfig>
<!-- 最大连接数, 默认8个 -->
<maxTotal>80</maxTotal>
<!-- 最大空闲连接数, 默认8个 -->
<maxIdle>20</maxIdle>
<!-- 最小空闲连接数, 默认0个 -->
<minIdle>5</minIdle>
<!-- 获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1 -->
<maxWaitMillis>-1</maxWaitMillis>
<!-- 在borrow一个jedis实例时是否提前进行alidate操作, 默认false -->
<testOnBorrow>true</testOnBorrow>
<!-- 在return给pool时是否提前进行validate操作, 默认false -->
<testOnReturn>true</testOnReturn>
<!-- 表示有一个idle object evitor线程对idle object进行扫描如果validate失败
此object会被从pool中drop掉这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义, 默认true -->
<testWhileIdle>true</testWhileIdle>
<!-- 表示idle object evitor每次扫描的最多的对象数, 默认-1 -->
<numTestsPerEvictionRun>100</numTestsPerEvictionRun>
<!-- 表示一个对象至少停留在idle状态的最短时间然后才能被idle object evitor扫描并驱逐
这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义 , 默认60000-->
<minEvictableIdleTimeMillis>60000</minEvictableIdleTimeMillis>
<!-- 逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认30000 -->
<timeBetweenEvictionRunsMillis>30000</timeBetweenEvictionRunsMillis>
<!-- 在minEvictableIdleTimeMillis基础上加入了至少minIdle个对象已经在pool里面了。
如果为-1evicted不会根据idle time驱逐任何对象。如果minEvictableIdleTimeMillisd大于0
则此项设置无意义且只有在timeBetweenEvictionRunsMillis大于0时才有意义默认1800000 -->
<softMinEvictableIdleTimeMillis>1800000</softMinEvictableIdleTimeMillis>
<!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
<blockWhenExhausted>true</blockWhenExhausted>
</poolConfig>
<infos>
<info name="group1_db0" host="43.143.108.217" password="cssq@2020" port="6379" database="0" timeout="5000"/>
<info name="group1_db1" host="43.143.108.217" password="cssq@2020" port="6379" database="1" timeout="5000"/>
<info name="group1_db5" host="43.143.108.217" password="cssq@2020" port="6379" database="5" timeout="5000"/>
<info name="group1_db8" host="43.143.108.217" password="cssq@2020" port="6379" database="8" timeout="5000"/>
<info name="group1_db9" host="43.143.108.217" password="cssq@2020" port="6379" database="9" timeout="5000"/>
<info name="group1_db10" host="43.143.108.217" password="cssq@2020" port="6379" database="10" timeout="5000"/>
<info name="group1_db11" host="43.143.108.217" password="cssq@2020" port="6379" database="11" timeout="5000"/>
</infos>
</plugin>
</serivce-core>

View File

@ -0,0 +1,75 @@
<server>
<!-- 计时器线程池大小-->
<timerThreadPoolSize>2</timerThreadPoolSize>
<!-- 协议包压缩门槛 (单位字节),当协议包大于设定的值则会进行压缩 -->
<protocolCompression>100</protocolCompression>
<!-- 读缓冲区类型 nio Direct Buffer 或者 Heap Buffer-->
<readBufferType>Heap</readBufferType>
<!-- 写入冲区类型 nio Direct Buffer 或者 Heap Buffer-->
<writeBufferType>Heap</writeBufferType>
<!-- 最大的数据包大小 -->
<maxPacketSize>524288</maxPacketSize>
<!-- 最大读取缓存大小 -->
<maxReadBufferSize>1024</maxReadBufferSize>
<!-- 最大写入缓存大小 -->
<maxWriteBufferSize>32768</maxWriteBufferSize>
<!-- 会话队列的大小-->
<sessionPacketQueueSize>160</sessionPacketQueueSize>
<!-- Thread Pool Size of the 3 main stages of the Bitswarm Engine -->
<socketAcceptorThreadPoolSize>2</socketAcceptorThreadPoolSize>
<socketReaderThreadPoolSize>3</socketReaderThreadPoolSize>
<socketWriterThreadPoolSize>10</socketWriterThreadPoolSize>
<!-- Enable disable Nagle algorithm on sockets, true == disable -->
<tcpNoDelay>true</tcpNoDelay>
<!-- 会话超时时间(单位秒)-->
<sessionTimeout>15</sessionTimeout>
<!-- Bind socket addresses -->
<socketAddresses>
<socket address="0.0.0.0" port="8890" type="TCP" />
</socketAddresses>
<!-- Ip addresses filter-->
<ipFilter>
<addressBlackList>
<string>1.2.3.4</string>
</addressBlackList>
<addressWhiteList>
<string>127.0.0.1</string>
</addressWhiteList>
<maxConnectionsPerAddress>10000</maxConnectionsPerAddress>
</ipFilter>
<webSocket>
<isActive>false</isActive>
<address>0.0.0.0</address>
<port>8080</port>
</webSocket>
<!-- Main extension class -->
<extensionConfig>
<name>extension - test</name>
<className>extend.pk.EXMainServer</className>
</extensionConfig>
<!-- The system thread pool config -->
<systemThreadPoolConfig>
<name>Sys</name>
<corePoolSize>4</corePoolSize>
<maxPoolSize>16</maxPoolSize>
<keepAliveTime>60000</keepAliveTime>
<maxQueueSize>20000</maxQueueSize>
</systemThreadPoolConfig>
<!-- The extension thread pool config -->
<extensionThreadPoolConfig>
<name>Ext</name>
<corePoolSize>4</corePoolSize>
<maxPoolSize>16</maxPoolSize>
<keepAliveTime>60000</keepAliveTime>
<maxQueueSize>20000</maxQueueSize>
</extensionThreadPoolConfig>
</server>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

Binary file not shown.

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Jan 16 21:46:50 GMT+08:00 2025
#Mon Jun 16 19:23:36 CST 2025
version=1.0.0
groupId=com.evt
artifactId=event_mgr

View File

@ -1,15 +1,15 @@
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerGroupRound.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerLose.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerGroupMemberRound.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\EventServer.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\GroupPublisherService.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\EventController.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\job\CleanTimeOutRoomJob.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\Utils.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerPay.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerWin.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\EventReceiver.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\IHandler.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerOver.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerHpConsume.java
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\main\java\com\evt\mgr\job\CleanGroupLogJob.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\GroupPublisherService.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerGroupMemberRound.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\job\CleanTimeOutRoomJob.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\EventReceiver.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerOver.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerHpConsume.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerWin.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerGroupRound.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\job\CleanGroupLogJob.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\EventServer.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerLose.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\handler\HandlerPay.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\IHandler.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\Utils.java
D:\aga\suoha_6.11\game_web\event_mgr\src\main\java\com\evt\mgr\EventController.java

View File

@ -1 +1 @@
D:\project\javapro\javapro\xtserver\game_web\event_mgr\src\test\java\Main.java
D:\aga\suoha_6.11\game_web\event_mgr\src\test\java\Main.java

View File

@ -82,6 +82,7 @@ public class Protocol {
/** 添加玩法 */
public static final String ADD_PLAY = "add_play";
/** 删除玩法 */
public static final String DEL_PLAY = "del_play";
/** 更新玩法*/
@ -90,6 +91,12 @@ public class Protocol {
public static final String GROUP_MATCH_ROOM = "match_room";
/** 加入房间 */
public static final String GROUP_JOIN_ROOM = "join_room";
/** 删除房间 */
public static final String GROUP_DEL_ROOM = "del__room";
/** 更新圈子配置 */

View File

@ -14,7 +14,7 @@ import redis.clients.jedis.Jedis;
public class GroupRoomController extends Controller{
/**
*
*
*
* @throws Exception
*/
@ -34,7 +34,7 @@ public class GroupRoomController extends Controller{
}
/**
*
*
*
* @throws Exception
*/
@ -51,7 +51,7 @@ public class GroupRoomController extends Controller{
}
/**
*
*
*
* @throws Exception
*/

Some files were not shown because too many files have changed in this diff Show More