Compare commits

...

10 Commits

Author SHA1 Message Date
fpgajie 69d64fb2ed 202622 2026-02-02 20:30:24 +08:00
fy dbcb834b6f 修改 1.31 2026-01-31 06:21:58 +08:00
fpgajie cb0703d8b3 0130 2026-01-30 20:06:56 +08:00
fy 2998452068 修改 2026-01-30 16:12:08 +08:00
fy 9d38ac2c61 机器人优化 2026-01-30 16:04:50 +08:00
fy 254fd9ba86 修改 2026-01-28 04:23:18 +08:00
fy c22cfc479d 修改 2026-01-28 03:54:13 +08:00
fpgajie 920fc261a5 0127 2026-01-27 16:17:47 +08:00
fpgajie 4fb08ca53f 0124 2026-01-24 18:44:34 +08:00
fpgajie 3a0f24bad6 0122 2026-01-22 18:16:18 +08:00
187 changed files with 1038 additions and 61201 deletions

View File

@ -6,14 +6,33 @@
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="web_group" />
<module name="game_mj_changsha" />
<module name="taurus-core" />
<module name="taurus-permanent" />
<module name="robot_common" />
<module name="taurus-web" />
<module name="game_common" />
<module name="game_mj_zhuanzhuan" />
<module name="data_cache" />
<module name="game_mj_hongzhong" />
<module name="web_group" />
<module name="game_mj_yijiaolaiyou" />
<module name="taurus-permanent" />
<module name="event_mgr" />
<module name="game_common" />
<module name="taurus-web" />
<module name="game_zp_changdepaohuzi" />
<module name="game_mj_fulushou" />
<module name="game_pk_chuntian" />
<module name="game_zp_yueyangwaihuzi" />
<module name="game_zp_paohuzi" />
<module name="game_mj_changsha" />
<module name="pack_tools" />
<module name="robot_common" />
<module name="game_zp_xiangtanpaohuzi" />
<module name="game_pk_paodekuai" />
<module name="game_mj_nanxian" />
<module name="game_zp_hspaohuzi" />
<module name="game_mj_gejiu" />
<module name="web_login" />
<module name="group_mgr" />
<module name="game_pk_dazhadan" />
<module name="game_pk_sanqianfen" />
</profile>
</annotationProcessing>
</component>

View File

@ -1,8 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<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" />
@ -19,5 +27,35 @@
<file url="file://$PROJECT_DIR$/libs/taurus-server/taurus-web/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/changsha/game_mj_cs/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/changsha/game_mj_cs/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/fulushou/game_mj_fulushou/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/fulushou/game_mj_fulushou/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/gejiu/game_mj_gejiu/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/gejiu/game_mj_gejiu/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/hongzhong/game_mj_hz/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/hongzhong/game_mj_hz/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/nanxian/game_mj_nx/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/nanxian/game_mj_nx/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/yijiaolaiyou/game_mj_yijiaolaiyou/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/yijiaolaiyou/game_mj_yijiaolaiyou/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/zhuanzhuan/game_mj_zhuanzhuan/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/majiang/zhuanzhuan/game_mj_zhuanzhuan/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/puke/chuntian/game_pk_chuntian/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/puke/chuntian/game_pk_chuntian/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/puke/dazhadan/game_pk_dazhadan/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/puke/dazhadan/game_pk_dazhadan/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/puke/paodekuai/game_pk_paodekuai/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/puke/paodekuai/game_pk_paodekuai/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/puke/sanqianfen/game_pk_sanqianfen/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/puke/sanqianfen/game_pk_sanqianfen/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_changdepaohuzi/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_changdepaohuzi/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_hspaohuzi/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_hspaohuzi/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_paohuzi/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_paohuzi/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_xiangtanpaohuzi/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_xiangtanpaohuzi/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_yueyangwaihuzi/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_yueyangwaihuzi/src/main/resources" charset="UTF-8" />
</component>
</project>

6
.idea/kotlinc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.6.21" />
</component>
</project>

View File

@ -4,12 +4,33 @@
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/libs/taurus-server/pom.xml" />
<option value="$PROJECT_DIR$/pom.xml" />
<option value="$PROJECT_DIR$/libs/data_cache/pom.xml" />
<option value="$PROJECT_DIR$/libs/game_common/pom.xml" />
<option value="$PROJECT_DIR$/game_web/web_group/pom.xml" />
<option value="$PROJECT_DIR$/libs/robot_common/pom.xml" />
<option value="$PROJECT_DIR$/libs/taurus-server/pom.xml" />
<option value="$PROJECT_DIR$/zipai/paohuzi/game_zp_paohuzi/pom.xml" />
<option value="$PROJECT_DIR$/zipai/paohuzi/game_zp_yueyangwaihuzi/pom.xml" />
<option value="$PROJECT_DIR$/game_web/group_room_mgr/pom.xml" />
<option value="$PROJECT_DIR$/game_web/pack_tools/pom.xml" />
<option value="$PROJECT_DIR$/majiang/changsha/game_mj_cs/pom.xml" />
<option value="$PROJECT_DIR$/majiang/fulushou/game_mj_fulushou/pom.xml" />
<option value="$PROJECT_DIR$/majiang/hongzhong/game_mj_hz/pom.xml" />
<option value="$PROJECT_DIR$/majiang/zhuanzhuan/game_mj_zhuanzhuan/pom.xml" />
<option value="$PROJECT_DIR$/game_web/web_group/pom.xml" />
<option value="$PROJECT_DIR$/game_web/web_login20/pom.xml" />
<option value="$PROJECT_DIR$/game_web/event_mgr/pom.xml" />
<option value="$PROJECT_DIR$/puke/sanqianfen/game_pk_sanqianfen/pom.xml" />
<option value="$PROJECT_DIR$/majiang/nanxian/game_mj_nx/pom.xml" />
<option value="$PROJECT_DIR$/majiang/dazhadan/game_pk_dazhadan/pom.xml" />
<option value="$PROJECT_DIR$/majiang/yijiaolaiyou/game_mj_yijiaolaiyou/pom.xml" />
<option value="$PROJECT_DIR$/puke/dazhadan/game_pk_dazhadan/pom.xml" />
<option value="$PROJECT_DIR$/puke/paodekuai/game_pk_paodekuai/pom.xml" />
<option value="$PROJECT_DIR$/zipai/paohuzi/game_zp_hspaohuzi/pom.xml" />
<option value="$PROJECT_DIR$/zipai/paohuzi/game_zp_changdepaohuzi/pom.xml" />
<option value="$PROJECT_DIR$/zipai/paohuzi/game_zp_xiangtanpaohuzi/pom.xml" />
<option value="$PROJECT_DIR$/majiang/gejiu/game_mj_gejiu/pom.xml" />
<option value="$PROJECT_DIR$/puke/chuntian/game_pk_chuntian/pom.xml" />
<option value="$PROJECT_DIR$/libs/robot_common/pom.xml" />
</list>
</option>
</component>

View File

@ -0,0 +1,259 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="0b5e96d5-7630-407a-8e4f-0ff0311ccd8b" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/../../.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../.idea/compiler.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../.idea/encodings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.gitignore" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/kotlinc.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/build/pro/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/build/pro/taurus-core.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/group/MainServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/group/MainServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/group/controller/GroupController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/group/controller/GroupController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/group/job/UpdatePlayRoomJob.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/group/job/UpdatePlayRoomJob.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/group/service/GroupService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/group/service/GroupService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/config/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/config/taurus-core.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-01" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-02" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-03" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-04" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-05" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-21" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-24" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT.war" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT.war" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/MainServer$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/MainServer$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/MainServer$2.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/MainServer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/MainServer.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/controller/GroupController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/controller/GroupController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/job/UpdatePlayRoomJob.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/job/UpdatePlayRoomJob.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/service/GroupService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/service/GroupService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/annotations-13.0.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/game_common-1.0.0.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/gson-2.10.1.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/jboss-logging-3.3.2.Final.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/kotlin-stdlib-1.5.10.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/kotlin-stdlib-common-1.5.10.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/kotlin-stdlib-jdk7-1.5.10.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/kotlin-stdlib-jdk8-1.5.10.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/robot_common-1.0.8.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/taurus-permanent-1.0.1.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/undertow-core-2.0.16.Final.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/xnio-api-3.3.8.Final.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/xnio-nio-3.3.8.Final.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/ROOT/config/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/config/taurus-core.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/group/MainServer$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/group/MainServer$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/group/MainServer$2.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/group/MainServer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/group/MainServer.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/group/controller/GroupController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/group/controller/GroupController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/group/job/UpdatePlayRoomJob.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/group/job/UpdatePlayRoomJob.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/group/service/GroupService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/group/service/GroupService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/compile/createdFiles.lst" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/compile/inputFiles.lst" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/testCompile/createdFiles.lst" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/testCompile/inputFiles.lst" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/web_group/Main.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/web_group/Main.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/src/main/java/com/mjlogin/service/AccountService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/src/main/java/com/mjlogin/service/AccountService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/ROOT.war" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/ROOT.war" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/classes/com/mjlogin/service/AccountService.class" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/classes/com/mjlogin/service/AccountService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/classes/com/mjlogin/service/AccountService.class" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/classes/com/mjlogin/service/AccountService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/data_cache/target/data_cache.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/data_cache/target/data_cache.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/data_cache/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/data_cache/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/game_common/target/game_common-1.0.0.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/game_common/target/game_common-1.0.0.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/game_common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/game_common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.classpath" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.gitignore" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/.gitignore" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/compiler.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/encodings.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/jarRepositories.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/kotlinc.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/misc.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/vcs.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.project" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.settings/org.eclipse.core.resources.prefs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.settings/org.eclipse.jdt.apt.core.prefs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.settings/org.eclipse.jdt.core.prefs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.settings/org.eclipse.m2e.core.prefs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/config/log4j.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/config/taurus-core.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/pom.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/DoTest.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HandAnalysis.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanChangSha.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanFangPaoFa.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanHongZhong.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanPaoDeKuai.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanZhuanZhuan.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/JiQiRens.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/HttpClient.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/ISocketLayer.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/Message.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/MessageResponse.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/NetManager.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/SocketCode.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/TaurusClient.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/ThreadManager.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/business/AccountBusiness.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/business/GroupRoomBusiness.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/business/RoomBusiness.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/IOHandler.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/ISocket.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/LagMonitor.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/Packet.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/SocketEngine.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/SocketState.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/SocketTcp.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/SystemController.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/TSocketException.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/newRobot/AddRedisRobot.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/newRobot/AddRoomRobot.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/newRobot/jiqiren.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/newRobot/lianjiejiqiren.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/CardConfig.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/CardGroup.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/CardObj.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/CardUtil.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangshaMahjongAI.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/Config.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/GroupDatas.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/HongZhongSuanFaTest.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/NewChangshaSuanFaTest.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/Paixing.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/PaoDeKuaiSuanFaTest.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/PlayerState.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/TinHuChi.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/TinHuGang.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/TinHuPeng.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/TingPaiChecker.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/TryPutCard.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/WinCard.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/WinCardType.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ZhuanZhuanSuanFaTest.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ai.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/test.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/test1.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/test99.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/zuixin.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/test/java/Test.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/test/java/Test2.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/test/java/test6.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/test/java/test7.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/2026-01-01T08-00-11_978.dumpstream" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/TEST-Test.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/TEST-Test.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1-sources.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1-sources.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/surefire-reports/2026-01-01T08-00-11_978.dumpstream" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/surefire-reports/TEST-com.taurus.TestExtension.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/surefire-reports/TEST-com.taurus.TestExtension.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/surefire-reports/com.taurus.TestExtension.txt" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/surefire-reports/com.taurus.TestExtension.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/taurus-permanent-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/taurus-permanent-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-server.iml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-server.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/src/main/java/com/taurus/web/WebFilter.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/src/main/java/com/taurus/web/WebFilter.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/classes/com/taurus/web/WebFilter.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/classes/com/taurus/web/WebFilter.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/2026-01-01T08-00-11_978.dumpstream" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/TEST-com.taurus.Test.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/TEST-com.taurus.Test.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/com.taurus.Test.txt" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/com.taurus.Test.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/taurus-web-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/taurus-web-1.0.1.jar" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../.." />
</component>
<component name="ProjectColorInfo"><![CDATA[{
"associatedIndex": 5
}]]></component>
<component name="ProjectId" id="3976D3jFfFaRPSUxbaPEaUpbzE9" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"Application.Main.executor": "Run",
"RunOnceActivity.ShowReadmeOnStart": "true",
"git-widget-placeholder": "master",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "D:/fengyeserver/xtserver_anchou/game_web/web_group",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
"vue.rearranger.settings.migration": "true"
}
}]]></component>
<component name="RunManager">
<configuration name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="web_group.Main" />
<module name="web_group" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="web_group.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.Main" />
</list>
</recent_temporary>
</component>
<component name="SharedIndexes">
<attachedChunks>
<set>
<option value="bundled-jdk-9f38398b9061-18abd8497189-intellij.indexing.shared.core-IU-241.14494.240" />
<option value="bundled-js-predefined-1d06a55b98c1-74d2a5396914-JavaScript-IU-241.14494.240" />
</set>
</attachedChunks>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="0b5e96d5-7630-407a-8e4f-0ff0311ccd8b" name="Changes" comment="" />
<created>1770034638903</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1770034638903</updated>
<workItem from="1770034639979" duration="755000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
</project>

View File

@ -10,7 +10,7 @@
<!-- 最大连接数, 默认10个 -->
<maxPool>100</maxPool>
<!-- 最小空闲连接数, 默认0个 -->
<minIdle>10</minIdle>
<minIdle>5</minIdle>
<!-- 配置获取连接等待超时的时间,单位是毫秒, 默认180000 -->
<maxLifetime>180000</maxLifetime>
<!--hsqldb - "select 1 from INFORMATION_SCHEMA.SYSTEM_USERS"
@ -43,9 +43,9 @@
<db>
<name>db1</name>
<driverName>com.mysql.cj.jdbc.Driver</driverName>
<jdbcUrl>jdbc:mysql://8.138.242.190:8060/wb_game</jdbcUrl>
<userName>root</userName>
<password>6KYnXJjGhxNceF8e</password>
<jdbcUrl>jdbc:mysql://192.168.0.11:6060/wb_game</jdbcUrl>
<userName>proto_ff</userName>
<password>37du_game</password>
</db>
</databases>
</plugin>
@ -58,9 +58,9 @@
<!-- 最大连接数, 默认8个 -->
<maxTotal>80</maxTotal>
<!-- 最大空闲连接数, 默认8个 -->
<maxIdle>20</maxIdle>
<maxIdle>8</maxIdle>
<!-- 最小空闲连接数, 默认0个 -->
<minIdle>5</minIdle>
<minIdle>2</minIdle>
<!-- 获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1 -->
<maxWaitMillis>-1</maxWaitMillis>
<!-- 在borrow一个jedis实例时是否提前进行alidate操作, 默认false -->
@ -86,15 +86,14 @@
</poolConfig>
<infos>
<info name="group1_db0" host="8.138.242.190" password="cssq@2020" port="6379" database="0" timeout="5000"/>
<info name="group1_db1" host="8.138.242.190" password="cssq@2020" port="6379" database="1" timeout="5000"/>
<info name="group1_db2" host="8.138.242.190" password="cssq@2020" port="6379" database="2" timeout="5000"/>
<info name="group1_db5" host="8.138.242.190" password="cssq@2020" port="6379" database="5" timeout="5000"/>
<info name="group1_db8" host="8.138.242.190" password="cssq@2020" port="6379" database="8" timeout="5000"/>
<info name="group1_db9" host="8.138.242.190" password="cssq@2020" port="6379" database="9" timeout="5000"/>
<info name="group1_db10" host="8.138.242.190" password="cssq@2020" port="6379" database="10" timeout="5000"/>
<info name="group1_db11" host="8.138.242.190" password="cssq@2020" port="6379" database="11" timeout="5000"/>
<info name="tmp_group1_db9" host="8.138.242.190" password="654sads" port="6479" database="9" timeout="5000"/>
<info name="group1_db0" host="127.0.0.1" password="123456" port="6379" database="0" timeout="5000"/>
<info name="group1_db1" host="127.0.0.1" password="123456" port="6379" database="1" timeout="5000"/>
<info name="group1_db2" host="127.0.0.1" password="123456" port="6379" database="2" timeout="5000"/>
<info name="group1_db5" host="127.0.0.1" password="123456" port="6379" database="5" timeout="5000"/>
<info name="group1_db8" host="127.0.0.1" password="123456" port="6379" database="8" timeout="5000"/>
<info name="group1_db9" host="127.0.0.1" password="123456" port="6379" database="9" timeout="5000"/>
<info name="group1_db10" host="127.0.0.1" password="123456" port="6379" database="10" timeout="5000"/>
<info name="group1_db11" host="127.0.0.1" password="123456" port="6379" database="11" timeout="5000"/>
</infos>
</plugin>
</serivce-core>

View File

@ -77,11 +77,6 @@
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.robot</groupId>
<artifactId>robot_common</artifactId>
<version>1.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-webapp -->
<dependency>

View File

@ -17,15 +17,14 @@ import com.taurus.core.routes.Extension;
import com.taurus.core.routes.Routes;
import com.taurus.core.util.FileUtil;
import com.taurus.permanent.TPServer;
import hunan.DoTest;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
import redis.clients.jedis.Jedis;
import taurus.client.NetManager;
import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.JobBuilder.newJob;
@ -117,44 +116,7 @@ public class MainServer extends Extension {
@Override
public void onStart() {
// 1. 先启动独立的事件处理线程(只启动一次)
startNetEventThread();
// 2. 定时器只负责创建机器人连接
TPServer.me().getTimerPool().scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
try {
// System.out.println("开始创建机器人连接...");
// QingChu qingChu = new QingChu();
// qingChu.qingchu();
DoTest doTe = new DoTest();
doTe.doTest();
// System.out.println("机器人返回结果: " + s);
} catch (Exception e) {
// System.out.println("创建机器人连接失败" + e);
}
}
}, 0, 25 ,TimeUnit.SECONDS);
}
// 独立的事件处理线程
private void startNetEventThread() {
Thread eventThread = new Thread(() -> {
while (true) {
NetManager.processEvents();
try {
Thread.sleep(2);
} catch (InterruptedException e) {
break;
} catch (Exception e) {
}
}
}, "NetEvent-Thread");
eventThread.setDaemon(true); // 设置为守护线程
eventThread.start();
}

View File

@ -35,6 +35,7 @@ public class GroupController extends Controller {
@ActionKey(value = Protocol.GET_GROUPS, validate = WebInterceptor.V_SESSION)
public final void getGroups() throws Exception {
String session = this.getSession();
AccountBean acc = AccountCache.getAccount(session);
logger.info("jefe_test: "+acc.id);
ITArray list = GroupService.getGroups(acc.id);

View File

@ -219,6 +219,22 @@ public class UpdatePlayRoomJob implements Job{
for (String room : rooms) {
List<String> room_list = Redis.use("group1_db0").hmget(room, "fake", "status", "round", "id", "times", "players", "create_time", "fake_existTime");
String roomId = room_list.get(3);
ITArray players = TArray.newFromJsonData(room_list.get(5));
if(players.size()==0) {
//清理空桌
GroupPublisherService.delRoomEvt(groupId, roomId);
jedis.zrem(grooms_key, room);
Redis.use().hset(room, "status", 3 + "");
Redis.use().hincrBy(room, "cache_ver", 1);
Redis.use().expire(room, 20);
logger.error("del 空 room:" + roomId + " player:"+room_list.get(5) + " fake_json:");
continue;
}
String fake_json = room_list.get(0);
if (fake_json == null)
{
@ -236,7 +252,7 @@ public class UpdatePlayRoomJob implements Job{
}
int round = Integer.parseInt(strRound);
String roomId = room_list.get(3);
if(StringUtil.isEmpty(roomId)) {
continue;
}
@ -270,7 +286,7 @@ public class UpdatePlayRoomJob implements Job{
}
boolean exitGame = false;
ITArray players = TArray.newFromJsonData(room_list.get(5));
if (round >= 1)
{
int fake_hp = (int)(Math.random() * 100000);

View File

@ -210,37 +210,6 @@ public class GroupService {
}
private static final Map<String, String> payToRedis(int groupId, int pid, int gameId, String name, int deskId, String config,
String hpData, int hpOnOff, int hp_times, int reward, int rewardType,int rewardValueType, int xipai_reward, int xipai_rewardType,int xipai_rewardValueType,int anchou_reward, int anchou_rewardType,int anchou_rewardValueType, int robot_room,int shangxian_robot) {
Map<String, String> redis_map = new HashMap<>();
redis_map.put("groupId", groupId + "");
redis_map.put("id", pid + "");
redis_map.put("name", name);
redis_map.put("deskId", deskId + "");
redis_map.put("gameId", gameId + "");
redis_map.put("config", config);
redis_map.put("hpData", hpData);
redis_map.put("hpOnOff", hpOnOff + "");
redis_map.put("reward", reward + "");
redis_map.put("rewardType", rewardType + "");
redis_map.put("rewardValueType", rewardValueType + "");
redis_map.put("xipai_reward", xipai_reward + "");
redis_map.put("xipai_rewardType", xipai_rewardType + "");
redis_map.put("xipai_rewardValueType", xipai_rewardValueType + "");
redis_map.put("anchou_reward", anchou_reward + "");
redis_map.put("anchou_rewardType", anchou_rewardType + "");
redis_map.put("anchou_rewardValueType", anchou_rewardValueType + "");
redis_map.put("hp_times", hp_times + "");
redis_map.put("ban", "0");
redis_map.put("robot_room", robot_room + "");
redis_map.put("shangxian_robot", shangxian_robot + "");
return redis_map;
}
private static final Map<String, String> payToRedis1(int groupId, int pid, int gameId, String name, int deskId, String config,
String hpData, int hpOnOff, int hp_times, int reward, int rewardType,int rewardValueType, int xipai_reward, int xipai_rewardType,int xipai_rewardValueType,int anchou_reward, int anchou_rewardType,int anchou_rewardValueType, int robot_room) {
Map<String, String> redis_map = new HashMap<>();
redis_map.put("groupId", groupId + "");
@ -265,7 +234,6 @@ public class GroupService {
redis_map.put("hp_times", hp_times + "");
redis_map.put("ban", "0");
redis_map.put("robot_room", robot_room + "");
return redis_map;
}
@ -4510,7 +4478,7 @@ public class GroupService {
String config_json = config.toJson();
String hpData_json = hpData.toJson();
String p_key = GroupCache.genPlayKey(groupId, pid);
Map<String, String> redis_map = payToRedis1(groupId, pid, gameId, name, deskId, config_json, hpData_json, hpOnOff,
Map<String, String> redis_map = payToRedis(groupId, pid, gameId, name, deskId, config_json, hpData_json, hpOnOff,
hp_times, reward, rewardType,rewardValueType, xipai_reward, xipai_rewardType, xipai_rewardValueType,anchou_reward, anchou_rewardType, anchou_rewardValueType, robot_room);
redis_map.put("opt", "1");
jedis11.hmset(p_key, redis_map);
@ -4794,14 +4762,6 @@ public class GroupService {
{
robot_room = hpData.getInt("robot_room");
}
int shangxian_robot = 0;
if (hpData.containsKey("shangxian_robot"))
{
shangxian_robot = hpData.getInt("shangxian_robot");
}
hpData.remove("rewards_type");
hpData.remove("rewards_val");
hpData.remove("xipai_rewards_val");
@ -4822,7 +4782,7 @@ public class GroupService {
String hpData_json = hpData.toJson();
Map<String, String> redis_map = payToRedis(groupId, pid, gameId, name,deskId, config_json, hpData_json, hpOnOff,
hp_times, reward, rewardType,rewardValueType, xipai_reward, xipai_rewardType, xipai_rewardValueType,anchou_reward, anchou_rewardType, anchou_rewardValueType, robot_room,shangxian_robot);
hp_times, reward, rewardType,rewardValueType, xipai_reward, xipai_rewardType, xipai_rewardValueType,anchou_reward, anchou_rewardType, anchou_rewardValueType, robot_room);
jedis11.hmset(p_key, redis_map);
jedis11.hincrBy(p_key, "cache_ver", 1);
String gp_key = GroupCache.genPidsKey(groupId);
@ -5664,11 +5624,11 @@ public class GroupService {
GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
if (gpb == null)
continue;
if (gpb.gameId == 10 || gpb.gameId==22 || gpb.gameId ==66) { //跑得快可以先加
if (gpb.gameId == 10 || gpb.gameId==22) {
ITObject obj = TObject.newInstance();
obj.putInt("pid", pid);
obj.putString("playname", gpb.name);
String bans = jedis10.hget("g{"+groupId+"}:play:"+pid, "shangxian_robot");
String bans = jedis10.hget("g{"+groupId+"}:play:"+pid, "leftover_robot");
int ban = 0;
if (bans != null) {
ban = Integer.parseInt(bans);
@ -5737,7 +5697,7 @@ public class GroupService {
RedisLock lock = new RedisLock(gm_key, jedis10);
try {
jedis10.hset("g{"+groupId+"}:play:"+pid, "shangxian_robot", ban+"");
jedis10.hset("g{"+groupId+"}:play:"+pid, "leftover_robot", ban+"");
} finally {
lock.unlock();

View File

@ -43,7 +43,7 @@
<db>
<name>db1</name>
<driverName>com.mysql.cj.jdbc.Driver</driverName>
<jdbcUrl>jdbc:mysql://8.138.242.190:8060/wb_game</jdbcUrl>
<jdbcUrl>jdbc:mysql://47.109.55.7:8060/wb_game</jdbcUrl>
<userName>root</userName>
<password>6KYnXJjGhxNceF8e</password>
</db>
@ -86,15 +86,16 @@
</poolConfig>
<infos>
<info name="group1_db0" host="8.138.242.190" password="cssq@2020" port="6379" database="0" timeout="5000"/>
<info name="group1_db1" host="8.138.242.190" password="cssq@2020" port="6379" database="1" timeout="5000"/>
<info name="group1_db2" host="8.138.242.190" password="cssq@2020" port="6379" database="2" timeout="5000"/>
<info name="group1_db5" host="8.138.242.190" password="cssq@2020" port="6379" database="5" timeout="5000"/>
<info name="group1_db8" host="8.138.242.190" password="cssq@2020" port="6379" database="8" timeout="5000"/>
<info name="group1_db9" host="8.138.242.190" password="cssq@2020" port="6379" database="9" timeout="5000"/>
<info name="group1_db10" host="8.138.242.190" password="cssq@2020" port="6379" database="10" timeout="5000"/>
<info name="group1_db11" host="8.138.242.190" password="cssq@2020" port="6379" database="11" timeout="5000"/>
<info name="tmp_group1_db9" host="8.138.242.190" password="654sads" port="6479" database="9" timeout="5000"/>
<info name="group1_db0" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="0" timeout="5000"/>
<info name="group1_db1" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="1" timeout="5000"/>
<info name="group1_db2" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="2" timeout="5000"/>
<info name="group1_db5" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="5" timeout="5000"/>
<info name="group1_db8" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="8" timeout="5000"/>
<info name="group1_db9" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="9" timeout="5000"/>
<info name="group1_db10" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="10" timeout="5000"/>
<info name="group1_db11" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="11" timeout="5000"/>
<info name="tmp_group1_db9" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="654sads" port="6479" database="9" timeout="5000"/>
</infos>
</plugin>
</serivce-core>

View File

@ -1,884 +1,21 @@
05 一月 2026 | 00:00:09,822 | ERROR | Thread-290 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:00:09,824 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:00:15,102 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:00:15,354 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:00:39,833 | ERROR | Thread-295 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:00:39,847 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:00:40,193 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:00:40,491 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:00:59,837 | ERROR | Thread-299 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:00:59,839 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:01:05,115 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:01:05,375 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:01:23,832 | INFO | qtp1605283233-357 | taurus.web.WebFilter | | action: get_partner_stat[{user}:115777] time:522ms
05 一月 2026 | 00:01:25,156 | INFO | qtp1605283233-357 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:483ms
05 一月 2026 | 00:01:28,231 | INFO | qtp1605283233-364 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:506ms
05 一月 2026 | 00:01:29,855 | ERROR | Thread-304 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:01:29,857 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:01:30,728 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:01:31,280 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:01:49,850 | ERROR | Thread-309 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:01:49,851 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:01:55,160 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:01:55,646 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:02:19,864 | ERROR | Thread-313 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:02:19,866 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:02:20,150 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:02:20,481 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:02:39,866 | ERROR | Thread-317 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:02:39,867 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:02:45,482 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:02:45,788 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:03:09,876 | ERROR | Thread-321 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:03:09,878 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:03:10,253 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:03:10,597 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:03:29,878 | ERROR | Thread-326 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:03:29,881 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:03:35,097 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:03:35,399 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:03:59,886 | ERROR | Thread-330 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:03:59,888 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:04:00,115 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:04:00,408 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:04:19,895 | ERROR | Thread-335 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:04:19,896 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:04:25,194 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:04:25,483 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:04:49,899 | ERROR | Thread-340 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:04:49,901 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:04:50,313 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:04:50,980 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:05:09,905 | ERROR | Thread-344 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:05:09,907 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:05:15,176 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:05:15,502 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:05:39,914 | ERROR | Thread-348 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:05:39,915 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:05:40,271 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:05:40,553 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:05:59,925 | ERROR | Thread-352 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:05:59,927 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:06:05,155 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:06:05,458 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:06:29,928 | ERROR | Thread-358 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:06:29,929 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:06:30,226 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:06:30,478 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:06:49,933 | ERROR | Thread-362 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:06:49,935 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:06:55,198 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:06:55,567 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:07:19,696 | ERROR | Thread-366 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:07:19,699 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:07:20,392 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:07:20,794 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:07:39,701 | ERROR | Thread-371 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:07:39,702 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:07:45,220 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:07:45,530 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:08:01,103 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:591ms
05 一月 2026 | 00:08:03,571 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: get_partner_stat[{user}:115777] time:430ms
05 一月 2026 | 00:08:04,912 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:446ms
05 一月 2026 | 00:08:05,877 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:239ms
05 一月 2026 | 00:08:09,711 | ERROR | Thread-375 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:08:09,714 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:08:10,170 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:08:10,454 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:08:29,711 | ERROR | Thread-380 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:08:29,714 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:08:35,108 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:08:35,373 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:08:36,985 | INFO | qtp1605283233-439 | group.controller.GroupController | | jefe_test: 177475
05 一月 2026 | 00:08:37,194 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_groups[{user}:177475] time:320ms
05 一月 2026 | 00:08:38,716 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: enter_group[{user}:177475] time:415ms
05 一月 2026 | 00:08:41,481 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_partner_stat[{user}:177475] time:628ms
05 一月 2026 | 00:08:42,474 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_person_records[{user}:177475] time:327ms
05 一月 2026 | 00:08:44,902 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: get_hplog_mgr[{user}:177475] time:298ms
05 一月 2026 | 00:08:46,047 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_person_records[{user}:177475] time:316ms
05 一月 2026 | 00:08:48,052 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_person_records[{user}:177475] time:470ms
05 一月 2026 | 00:08:59,718 | ERROR | Thread-384 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:08:59,721 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:09:00,118 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:09:00,462 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:09:19,727 | ERROR | Thread-388 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:09:19,731 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:09:25,208 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:09:25,518 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:09:49,732 | ERROR | Thread-393 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:09:49,734 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:09:50,176 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:09:50,469 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:09:54,731 | INFO | qtp1605283233-414 | group.controller.GroupController | | jefe_test: 177475
05 一月 2026 | 00:09:54,926 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: get_groups[{user}:177475] time:297ms
05 一月 2026 | 00:09:55,959 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: enter_group[{user}:177475] time:307ms
05 一月 2026 | 00:09:58,204 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1314ms
05 一月 2026 | 00:09:58,659 | INFO | qtp1605283233-461 | taurus.web.WebFilter | | action: join_room[{user}:177475] time:1247ms
05 一月 2026 | 00:10:00,818 | INFO | qtp1605283233-462 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
05 一月 2026 | 00:10:02,054 | INFO | qtp1605283233-462 | taurus.web.WebFilter | | action: match_room[{user}:177475] time:1425ms
05 一月 2026 | 00:10:03,340 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[208, 207], weight=1, id=1, type=1, card=209}]
05 一月 2026 | 00:10:09,737 | ERROR | Thread-397 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:10:09,739 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:10:15,109 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:10:15,479 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:10:15,729 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
05 一月 2026 | 00:10:15,899 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:10:16,006 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:101777
05 一月 2026 | 00:10:16,391 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:556585
05 一月 2026 | 00:10:16,403 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [177475]]
05 一月 2026 | 00:10:16,448 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [177475]]
05 一月 2026 | 00:10:16,477 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:10:16,477 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:10:16,477 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:10:16,560 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:10:16,595 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:10:16,603 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:10:16,603 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:2205000
05 一月 2026 | 00:10:16,603 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:10:16,603 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:10:16,635 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step7:false
05 一月 2026 | 00:10:16,691 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | gmb:com.data.bean.GroupMemberBean@6e5dff37
05 一月 2026 | 00:10:16,747 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | publicJoinRoom t_list:null
05 一月 2026 | 00:10:16,774 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
05 一月 2026 | 00:10:16,798 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[102], weight=2, id=1, type=2, card=102}, {opcard=[102], weight=3, id=2, type=3, card=102}, {opcard=[102], weight=4, id=3, type=3, card=102}]
05 一月 2026 | 00:10:30,157 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[201], weight=4, id=1, type=3, card=201}]
05 一月 2026 | 00:10:40,513 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:10:42,103 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | strList:svr8840
05 一月 2026 | 00:10:43,705 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:574543
05 一月 2026 | 00:10:43,716 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:10:43,755 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:10:43,781 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:10:43,781 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:10:43,781 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:10:43,859 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:10:43,883 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:10:43,893 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:10:43,893 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:1612000
05 一月 2026 | 00:10:43,893 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:10:43,893 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:10:43,928 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step7:false
05 一月 2026 | 00:10:43,995 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | gmb:com.data.bean.GroupMemberBean@5b89ad98
05 一月 2026 | 00:10:44,049 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | publicJoinRoom t_list:null
05 一月 2026 | 00:10:44,073 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
05 一月 2026 | 00:10:44,157 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[208, 207], weight=1, id=1, type=1, card=209}]
05 一月 2026 | 00:10:44,216 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | strList:svr8840
05 一月 2026 | 00:10:44,547 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:10:44,773 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:10:44,850 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:10:45,080 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
05 一月 2026 | 00:10:45,086 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:10:45,131 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:10:45,158 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:10:45,158 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:10:45,158 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:10:45,225 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:10:45,260 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:10:45,267 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:10:45,267 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:10:45,267 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:10:45,267 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:10:46,092 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108], weight=5, id=1, type=6, card=108}]
05 一月 2026 | 00:10:50,278 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
05 一月 2026 | 00:11:04,896 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[104, 103], weight=1, id=1, type=1, card=105}]
05 一月 2026 | 00:11:05,159 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:11:06,005 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:11:06,253 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:11:06,295 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
05 一月 2026 | 00:11:06,335 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:11:06,574 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
05 一月 2026 | 00:11:06,581 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:11:06,625 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:11:06,654 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:11:06,654 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:11:06,654 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:11:06,719 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:11:06,756 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:11:07,168 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:11:07,168 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:11:07,168 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:11:07,168 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:11:09,323 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[207, 208], weight=1, id=1, type=1, card=206}]
05 一月 2026 | 00:11:09,350 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[207], weight=5, id=1, type=6, card=207}]
05 一月 2026 | 00:11:09,754 | ERROR | Thread-407 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:11:10,371 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:11:10,373 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[107, 106], weight=1, id=1, type=1, card=108}]
05 一月 2026 | 00:11:18,013 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
05 一月 2026 | 00:11:19,351 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[106, 105], weight=1, id=1, type=1, card=107}, {opcard=[108, 106], weight=1, id=2, type=1, card=107}]
05 一月 2026 | 00:11:21,014 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[102, 103], weight=1, id=1, type=1, card=101}]
05 一月 2026 | 00:11:21,111 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[105], weight=5, id=1, type=6, card=105}]
05 一月 2026 | 00:11:29,760 | ERROR | Thread-411 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:11:29,761 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:11:30,137 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:11:30,968 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:11:31,212 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:11:31,321 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:11:31,552 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
05 一月 2026 | 00:11:31,561 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:11:31,602 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:11:31,629 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:11:31,629 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:11:31,629 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:11:31,717 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:11:31,742 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:11:31,750 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:11:31,750 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:11:31,750 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:11:31,750 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:11:44,584 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
05 一月 2026 | 00:11:49,117 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[203, 201], weight=1, id=1, type=1, card=202}]
05 一月 2026 | 00:11:49,683 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[205, 204], weight=1, id=1, type=1, card=206}]
05 一月 2026 | 00:11:49,766 | ERROR | Thread-415 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:11:49,769 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:11:55,106 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:11:55,789 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[204, 205], weight=1, id=1, type=1, card=203}]
05 一月 2026 | 00:11:56,258 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:11:56,340 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:11:56,607 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
05 一月 2026 | 00:11:56,613 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:11:56,668 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:11:56,710 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:11:56,710 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:11:56,710 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:11:56,838 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:11:56,867 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:11:56,875 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:11:56,875 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:11:56,875 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:11:56,875 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:11:58,913 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:12:09,485 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[109, 107], weight=1, id=1, type=1, card=108}, {opcard=[204, 203], weight=1, id=2, type=1, card=205}, {opcard=[206, 204], weight=1, id=3, type=1, card=205}, {opcard=[206, 207], weight=1, id=4, type=1, card=205}, {opcard=[108, 107], weight=1, id=5, type=1, card=109}, {opcard=[205], weight=2, id=6, type=2, card=205}]
05 一月 2026 | 00:12:12,482 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[209], weight=2, id=1, type=2, card=209}, {opcard=[209], weight=5, id=2, type=6, card=209}]
05 一月 2026 | 00:12:19,781 | ERROR | Thread-419 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:12:20,205 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:12:20,472 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:12:21,174 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:12:21,254 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:12:21,491 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
05 一月 2026 | 00:12:21,498 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:12:21,542 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:12:21,564 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:12:21,564 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:12:21,564 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:12:21,703 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:12:21,728 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:12:21,737 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:12:21,737 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:12:21,737 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:12:21,737 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:12:23,606 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[107, 106], weight=1, id=1, type=1, card=108}]
05 一月 2026 | 00:12:23,607 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:12:24,940 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[207, 205], weight=1, id=1, type=1, card=206}]
05 一月 2026 | 00:12:26,245 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[205, 206], weight=1, id=1, type=1, card=204}]
05 一月 2026 | 00:12:27,261 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[104, 103], weight=1, id=1, type=1, card=105}]
05 一月 2026 | 00:12:33,648 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[101], weight=3, id=1, type=4, card=101}]
05 一月 2026 | 00:12:39,461 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[104, 105], weight=1, id=1, type=1, card=103}]
05 一月 2026 | 00:12:39,779 | ERROR | Thread-423 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:12:39,781 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:12:45,137 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:12:46,256 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:12:46,382 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:12:46,504 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:12:46,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
05 一月 2026 | 00:12:46,627 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:12:46,707 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:12:46,730 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:12:46,730 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:12:46,730 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:12:46,818 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:12:46,839 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:12:46,847 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:12:46,847 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:12:46,847 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:12:46,847 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:13:09,797 | ERROR | Thread-427 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:13:10,188 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:13:10,685 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[102, 103], weight=1, id=1, type=1, card=101}]
05 一月 2026 | 00:13:10,686 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:13:10,952 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:13:11,182 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:13:11,311 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:13:11,566 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
05 一月 2026 | 00:13:11,575 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:13:11,617 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:13:11,649 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:13:11,649 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:13:11,649 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:13:11,761 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:13:11,795 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:13:11,805 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:13:11,805 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:13:11,805 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:13:11,805 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:13:19,330 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
05 一月 2026 | 00:13:22,870 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[107, 106], weight=1, id=1, type=1, card=108}]
05 一月 2026 | 00:13:26,796 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[102, 103], weight=1, id=1, type=1, card=101}]
05 一月 2026 | 00:13:29,793 | ERROR | Thread-432 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:13:29,795 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:13:30,361 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[103, 101], weight=1, id=1, type=1, card=102}]
05 一月 2026 | 00:13:30,382 | INFO | NetEvent-Thread | taurus.util.ChangShaSuanFaTest | | Ai出牌长麻===============================
05 一月 2026 | 00:13:31,849 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:480ms
05 一月 2026 | 00:13:33,441 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: get_partner_stat[{user}:115777] time:441ms
05 一月 2026 | 00:13:34,764 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:663ms
05 一月 2026 | 00:13:35,125 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:13:35,549 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:13:35,655 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:13:35,743 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:101777
05 一月 2026 | 00:13:35,976 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:574543
05 一月 2026 | 00:13:35,985 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:13:36,040 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:13:36,066 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:13:36,067 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:13:36,067 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:13:36,151 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:13:36,176 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:13:36,184 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:13:36,184 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:2173000
05 一月 2026 | 00:13:36,184 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:13:36,184 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:13:36,214 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step7:false
05 一月 2026 | 00:13:36,299 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | gmb:com.data.bean.GroupMemberBean@6e5dff37
05 一月 2026 | 00:13:36,354 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | publicJoinRoom t_list:null
05 一月 2026 | 00:13:36,380 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
05 一月 2026 | 00:13:37,128 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:241ms
05 一月 2026 | 00:13:38,263 | INFO | qtp1605283233-502 | taurus.web.WebFilter | | action: get_partner_stat[{user}:177475] time:498ms
05 一月 2026 | 00:13:39,672 | INFO | qtp1605283233-501 | taurus.web.WebFilter | | action: get_person_records[{user}:177475] time:410ms
05 一月 2026 | 00:13:39,795 | ERROR | Thread-273 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:13:39,798 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:13:41,114 | INFO | qtp1605283233-502 | group.controller.GroupController | | jefe_test: 115777
05 一月 2026 | 00:13:41,306 | INFO | qtp1605283233-502 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:309ms
05 一月 2026 | 00:13:42,203 | INFO | qtp1605283233-502 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:342ms
05 一月 2026 | 00:13:42,677 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:13:42,757 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:101777
05 一月 2026 | 00:13:43,011 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
05 一月 2026 | 00:13:43,022 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:13:43,067 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:13:43,114 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:true
05 一月 2026 | 00:13:43,124 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
05 一月 2026 | 00:13:45,623 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1256ms
05 一月 2026 | 00:13:49,799 | ERROR | Thread-403 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:13:49,801 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:14:11,647 | INFO | qtp1605283233-493 | group.controller.GroupController | | jefe_test: 112233
05 一月 2026 | 00:14:11,907 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:375ms
05 一月 2026 | 00:14:12,465 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:347ms
05 一月 2026 | 00:15:37,523 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
05 一月 2026 | 00:15:37,572 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
05 一月 2026 | 00:16:30,646 | INFO | qtp1605283233-68 | group.controller.GroupController | | jefe_test: 115777
05 一月 2026 | 00:16:30,911 | INFO | qtp1605283233-68 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:422ms
05 一月 2026 | 00:16:32,283 | INFO | qtp1605283233-62 | group.controller.GroupController | | jefe_test: 115777
05 一月 2026 | 00:16:32,500 | INFO | qtp1605283233-62 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:349ms
05 一月 2026 | 00:16:33,766 | INFO | qtp1605283233-65 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:383ms
05 一月 2026 | 00:16:51,688 | INFO | qtp1605283233-64 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
05 一月 2026 | 00:16:53,297 | INFO | qtp1605283233-64 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1819ms
05 一月 2026 | 00:16:53,462 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:16:53,791 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:16:54,054 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:16:54,202 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:16:54,515 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:16:54,524 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:16:54,567 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:16:54,599 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:16:54,599 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:16:54,600 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:16:54,693 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:16:54,728 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:16:54,742 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:16:54,742 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:16:54,742 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:16:54,742 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:17:09,856 | ERROR | Thread-32 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:17:09,860 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:17:18,468 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:17:18,774 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:17:19,015 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:17:19,129 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:17:19,388 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:17:19,399 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:17:19,461 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:17:19,488 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:17:19,488 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:17:19,488 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:17:19,586 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:17:19,610 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:17:19,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:17:19,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:17:19,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:17:19,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:17:39,862 | ERROR | Thread-36 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:17:39,866 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:17:43,443 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:17:43,743 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:17:43,942 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:17:44,065 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:17:44,309 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:17:44,321 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, []]
05 一月 2026 | 00:17:44,372 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, []]
05 一月 2026 | 00:17:44,423 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:17:44,424 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:17:44,424 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:17:44,518 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:17:44,544 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:17:44,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:17:44,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:17:44,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:17:44,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:17:53,526 | INFO | qtp1605283233-67 | group.controller.GroupController | | jefe_test: 115777
05 一月 2026 | 00:17:53,816 | INFO | qtp1605283233-67 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:413ms
05 一月 2026 | 00:17:55,118 | INFO | qtp1605283233-66 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:359ms
05 一月 2026 | 00:17:58,306 | INFO | qtp1605283233-68 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1954ms
05 一月 2026 | 00:17:59,867 | ERROR | Thread-40 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:17:59,869 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:18:08,502 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:18:08,796 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:18:09,124 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:18:09,248 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:18:09,525 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:18:09,537 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:18:09,602 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:18:09,627 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:18:09,627 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:18:09,628 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:18:09,723 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:18:09,760 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:18:09,767 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:18:09,767 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:18:09,767 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:18:09,767 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:18:29,876 | ERROR | Thread-45 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:18:29,879 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:18:33,415 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:18:33,691 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:18:33,973 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:18:34,075 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:18:34,373 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:18:34,381 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:18:34,425 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:18:34,459 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:18:34,459 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:18:34,459 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:18:34,542 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:18:34,573 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:18:34,581 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:18:34,581 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:18:34,581 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:18:34,581 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:18:46,965 | INFO | qtp1605283233-64 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1319ms
05 一月 2026 | 00:18:49,881 | ERROR | Thread-49 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:18:49,884 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:18:59,585 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
05 一月 2026 | 00:18:59,638 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
05 一月 2026 | 00:19:00,559 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:19:01,002 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:19:01,353 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:19:01,555 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:19:01,861 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:19:01,870 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:19:01,922 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:19:01,948 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:19:01,948 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:19:01,949 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:19:02,039 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:19:02,068 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:19:02,081 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:19:02,081 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:19:02,081 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:19:02,081 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:19:19,892 | ERROR | Thread-32 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:19:19,897 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:19:25,405 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:19:25,767 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:19:26,006 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:19:26,132 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:19:26,453 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:19:26,462 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:19:26,503 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:19:26,531 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:19:26,531 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:19:26,532 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:19:26,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:19:26,643 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:19:26,656 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:19:26,657 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:19:26,657 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:19:26,657 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:19:49,898 | ERROR | Thread-36 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:19:49,901 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:19:50,516 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:19:50,867 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:19:51,130 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:19:51,321 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:19:51,568 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:19:51,578 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:19:51,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:19:51,650 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:19:51,650 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:19:51,650 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:19:51,738 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:19:51,773 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:19:51,783 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:19:51,783 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:19:51,784 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:19:51,784 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:20:09,908 | ERROR | Thread-40 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:20:09,909 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:20:15,423 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:20:15,770 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:20:16,007 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:20:16,094 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:20:16,381 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:20:16,388 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:20:16,436 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:20:16,465 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:20:16,465 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:20:16,465 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:20:16,549 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:20:16,578 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:20:16,586 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:20:16,586 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:20:16,587 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:20:16,587 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:20:33,699 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
05 一月 2026 | 00:20:33,745 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
05 一月 2026 | 00:20:34,587 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:20:34,907 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:20:35,165 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:20:35,339 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:20:35,668 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:20:35,683 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:20:35,744 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:20:35,770 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:20:35,770 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:20:35,770 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:20:35,857 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:20:35,896 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:20:35,909 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:20:35,909 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:20:35,909 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:20:35,909 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:20:44,544 | INFO | qtp1605283233-63 | group.controller.GroupController | | jefe_test: 115777
05 一月 2026 | 00:20:44,815 | INFO | qtp1605283233-63 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:392ms
05 一月 2026 | 00:20:45,483 | INFO | qtp1605283233-63 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:357ms
05 一月 2026 | 00:20:59,408 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:20:59,656 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:20:59,844 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:20:59,920 | ERROR | Thread-31 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:20:59,922 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:20:59,974 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
05 一月 2026 | 00:21:00,245 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:21:00,253 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, []]
05 一月 2026 | 00:21:00,300 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, []]
05 一月 2026 | 00:21:00,322 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:21:00,322 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:21:00,323 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:21:00,425 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:21:00,449 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:21:00,457 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:21:00,457 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
05 一月 2026 | 00:21:00,457 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:21:00,457 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:21:11,579 | INFO | qtp1605283233-68 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1326ms
05 一月 2026 | 00:21:19,923 | ERROR | Thread-35 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:21:19,926 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
05 一月 2026 | 00:21:24,414 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:21:24,673 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:21:24,976 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:21:25,109 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:101555
05 一月 2026 | 00:21:25,336 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
05 一月 2026 | 00:21:25,348 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:21:25,408 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
05 一月 2026 | 00:21:25,438 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:21:25,438 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:21:25,438 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:21:25,511 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:21:25,539 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:21:25,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:21:25,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:8248000
05 一月 2026 | 00:21:25,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:21:25,554 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:21:25,591 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step7:false
05 一月 2026 | 00:21:25,648 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | gmb:com.data.bean.GroupMemberBean@1ede81ab
05 一月 2026 | 00:21:25,700 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | publicJoinRoom t_list:null
05 一月 2026 | 00:21:25,723 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
05 一月 2026 | 00:21:41,597 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[209], weight=2, id=1, type=2, card=209}]
05 一月 2026 | 00:21:48,647 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[107, 106], weight=1, id=1, type=1, card=108}]
05 一月 2026 | 00:21:49,400 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
05 一月 2026 | 00:21:50,066 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | strList:svr8840
05 一月 2026 | 00:21:50,420 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
05 一月 2026 | 00:21:50,686 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
05 一月 2026 | 00:21:50,774 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:101666
05 一月 2026 | 00:21:51,037 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:285817
05 一月 2026 | 00:21:51,045 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:21:51,114 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
05 一月 2026 | 00:21:51,153 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
05 一月 2026 | 00:21:51,154 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
05 一月 2026 | 00:21:51,154 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
05 一月 2026 | 00:21:51,249 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
05 一月 2026 | 00:21:51,275 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
05 一月 2026 | 00:21:51,286 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
05 一月 2026 | 00:21:51,287 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:5372000
05 一月 2026 | 00:21:51,287 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
05 一月 2026 | 00:21:51,287 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
05 一月 2026 | 00:21:51,321 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step7:false
05 一月 2026 | 00:21:51,470 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | gmb:com.data.bean.GroupMemberBean@4dae1797
05 一月 2026 | 00:21:51,522 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | publicJoinRoom t_list:null
05 一月 2026 | 00:21:51,575 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
05 一月 2026 | 00:21:53,164 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[207, 206], weight=1, id=1, type=1, card=208}, {opcard=[209, 207], weight=1, id=2, type=1, card=208}]
05 一月 2026 | 00:22:09,936 | ERROR | Thread-43 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:29:27,570 | INFO | qtp1605283233-93 | group.controller.GroupController | | jefe_test: 112233
05 一月 2026 | 00:29:28,037 | INFO | qtp1605283233-93 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:612ms
05 一月 2026 | 00:29:38,073 | INFO | qtp1605283233-94 | group.controller.GroupController | | jefe_test: 101777
05 一月 2026 | 00:29:38,865 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:1027ms
05 一月 2026 | 00:29:42,148 | INFO | qtp1605283233-89 | taurus.web.WebFilter | | action: enter_group[{user}:101777] time:595ms
05 一月 2026 | 00:29:43,128 | INFO | qtp1605283233-89 | group.controller.GroupController | | jefe_test: 101777
05 一月 2026 | 00:29:43,788 | INFO | qtp1605283233-89 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:867ms
05 一月 2026 | 00:29:44,094 | INFO | qtp1605283233-97 | taurus.web.WebFilter | | action: enter_group[{user}:101777] time:498ms
05 一月 2026 | 00:29:54,791 | INFO | qtp1605283233-94 | group.controller.GroupController | | jefe_test: 101777
05 一月 2026 | 00:29:55,499 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:913ms
05 一月 2026 | 00:29:56,216 | INFO | qtp1605283233-94 | group.controller.GroupController | | jefe_test: 101777
05 一月 2026 | 00:29:56,929 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:963ms
05 一月 2026 | 00:29:59,187 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: enter_group[{user}:101777] time:595ms
05 一月 2026 | 00:30:01,874 | INFO | qtp1605283233-89 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:749ms
05 一月 2026 | 00:30:03,299 | INFO | qtp1605283233-97 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:382ms
05 一月 2026 | 00:30:04,689 | INFO | qtp1605283233-93 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:335ms
05 一月 2026 | 00:30:10,356 | INFO | qtp1605283233-97 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:339ms
05 一月 2026 | 00:31:24,615 | INFO | qtp1605283233-93 | group.controller.GroupController | | jefe_test: 101777
05 一月 2026 | 00:31:25,423 | INFO | qtp1605283233-93 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:982ms
05 一月 2026 | 00:31:39,843 | ERROR | Thread-39 | client.io.ISocket | | Receiving failed.:
taurus.client.io.TSocketException
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
at java.lang.Thread.run(Thread.java:750)
05 一月 2026 | 00:31:42,399 | INFO | qtp1605283233-94 | group.controller.GroupController | | jefe_test: 101777
05 一月 2026 | 00:31:43,322 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:1121ms
05 一月 2026 | 00:31:44,806 | INFO | qtp1605283233-93 | taurus.web.WebFilter | | action: enter_group[{user}:101777] time:563ms
05 一月 2026 | 00:32:02,432 | INFO | qtp1605283233-93 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:943ms
05 一月 2026 | 00:32:04,848 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:1531ms
05 一月 2026 | 00:32:18,304 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:238ms
05 一月 2026 | 00:33:42,616 | INFO | qtp1605283233-100 | group.controller.GroupController | | jefe_test: 101777
05 一月 2026 | 00:33:43,163 | INFO | qtp1605283233-100 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:657ms
05 一月 2026 | 00:33:54,307 | INFO | qtp1605283233-100 | taurus.web.WebFilter | | action: enter_group[{user}:101777] time:461ms
02 二月 2026 | 20:18:48,463 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
02 二月 2026 | 20:18:48,509 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
02 二月 2026 | 20:18:59,004 | INFO | qtp391618063-67 | group.controller.GroupController | | jefe_test: 423613
02 二月 2026 | 20:19:00,476 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: get_groups[{user}:423613] time:2030ms
02 二月 2026 | 20:19:03,346 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:1565ms
02 二月 2026 | 20:20:27,855 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:1887ms
02 二月 2026 | 20:20:52,593 | INFO | qtp391618063-64 | group.controller.GroupController | | jefe_test: 423613
02 二月 2026 | 20:20:53,600 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: get_groups[{user}:423613] time:1450ms
02 二月 2026 | 20:20:56,259 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:1680ms
02 二月 2026 | 20:21:10,659 | INFO | qtp391618063-69 | group.controller.GroupController | | jefe_test: 423613
02 二月 2026 | 20:21:12,068 | INFO | qtp391618063-69 | taurus.web.WebFilter | | action: get_groups[{user}:423613] time:1869ms
02 二月 2026 | 20:21:15,335 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:1619ms
02 二月 2026 | 20:21:40,663 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
02 二月 2026 | 20:21:40,702 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
02 二月 2026 | 20:21:51,048 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:2093ms
02 二月 2026 | 20:22:44,947 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 423613
02 二月 2026 | 20:22:46,082 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:423613] time:1654ms
02 二月 2026 | 20:22:48,345 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:1588ms
02 二月 2026 | 20:23:31,313 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_partner_data[{user}:423613] time:2348ms
02 二月 2026 | 20:23:39,990 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_my_members[{user}:423613] time:41885ms
02 二月 2026 | 20:23:55,533 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: get_my_members[{user}:423613] time:41942ms

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -10,7 +10,7 @@
<!-- 最大连接数, 默认10个 -->
<maxPool>100</maxPool>
<!-- 最小空闲连接数, 默认0个 -->
<minIdle>10</minIdle>
<minIdle>5</minIdle>
<!-- 配置获取连接等待超时的时间,单位是毫秒, 默认180000 -->
<maxLifetime>180000</maxLifetime>
<!--hsqldb - "select 1 from INFORMATION_SCHEMA.SYSTEM_USERS"
@ -43,9 +43,9 @@
<db>
<name>db1</name>
<driverName>com.mysql.cj.jdbc.Driver</driverName>
<jdbcUrl>jdbc:mysql://8.138.242.190:8060/wb_game</jdbcUrl>
<userName>root</userName>
<password>6KYnXJjGhxNceF8e</password>
<jdbcUrl>jdbc:mysql://192.168.0.11:6060/wb_game</jdbcUrl>
<userName>proto_ff</userName>
<password>37du_game</password>
</db>
</databases>
</plugin>
@ -58,9 +58,9 @@
<!-- 最大连接数, 默认8个 -->
<maxTotal>80</maxTotal>
<!-- 最大空闲连接数, 默认8个 -->
<maxIdle>20</maxIdle>
<maxIdle>8</maxIdle>
<!-- 最小空闲连接数, 默认0个 -->
<minIdle>5</minIdle>
<minIdle>2</minIdle>
<!-- 获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1 -->
<maxWaitMillis>-1</maxWaitMillis>
<!-- 在borrow一个jedis实例时是否提前进行alidate操作, 默认false -->
@ -86,15 +86,14 @@
</poolConfig>
<infos>
<info name="group1_db0" host="8.138.242.190" password="cssq@2020" port="6379" database="0" timeout="5000"/>
<info name="group1_db1" host="8.138.242.190" password="cssq@2020" port="6379" database="1" timeout="5000"/>
<info name="group1_db2" host="8.138.242.190" password="cssq@2020" port="6379" database="2" timeout="5000"/>
<info name="group1_db5" host="8.138.242.190" password="cssq@2020" port="6379" database="5" timeout="5000"/>
<info name="group1_db8" host="8.138.242.190" password="cssq@2020" port="6379" database="8" timeout="5000"/>
<info name="group1_db9" host="8.138.242.190" password="cssq@2020" port="6379" database="9" timeout="5000"/>
<info name="group1_db10" host="8.138.242.190" password="cssq@2020" port="6379" database="10" timeout="5000"/>
<info name="group1_db11" host="8.138.242.190" password="cssq@2020" port="6379" database="11" timeout="5000"/>
<info name="tmp_group1_db9" host="8.138.242.190" password="654sads" port="6479" database="9" timeout="5000"/>
<info name="group1_db0" host="127.0.0.1" password="123456" port="6379" database="0" timeout="5000"/>
<info name="group1_db1" host="127.0.0.1" password="123456" port="6379" database="1" timeout="5000"/>
<info name="group1_db2" host="127.0.0.1" password="123456" port="6379" database="2" timeout="5000"/>
<info name="group1_db5" host="127.0.0.1" password="123456" port="6379" database="5" timeout="5000"/>
<info name="group1_db8" host="127.0.0.1" password="123456" port="6379" database="8" timeout="5000"/>
<info name="group1_db9" host="127.0.0.1" password="123456" port="6379" database="9" timeout="5000"/>
<info name="group1_db10" host="127.0.0.1" password="123456" port="6379" database="10" timeout="5000"/>
<info name="group1_db11" host="127.0.0.1" password="123456" port="6379" database="11" timeout="5000"/>
</infos>
</plugin>
</serivce-core>

View File

@ -1,13 +1,12 @@
com\group\controller\GroupLogController.class
com\group\service\GroupRoomService.class
com\group\controller\GroupController.class
com\group\Protocol.class
com\group\job\UpdatePlayRoomJob.class
com\group\controller\GroupRoomController.class
com\group\MainServer.class
com\group\service\GroupLogService.class
com\group\WebInterceptor.class
com\group\service\GroupRoomService.class
com\group\MainServer$1.class
com\group\MainServer$2.class
com\group\service\GroupService.class
com\group\controller\GroupController.class
com\group\Protocol.class
com\group\job\UpdatePlayRoomJob.class
com\group\service\GroupPublisherService.class

View File

@ -1,11 +1,11 @@
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupController.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupLogController.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\WebInterceptor.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\MainServer.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\Protocol.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupRoomController.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\job\UpdatePlayRoomJob.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupRoomService.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupPublisherService.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupService.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupLogService.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\WebInterceptor.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupPublisherService.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupController.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\MainServer.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupLogService.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupRoomService.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupRoomController.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\Protocol.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupLogController.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupService.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\job\UpdatePlayRoomJob.java

View File

@ -1,2 +1,2 @@
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\test\java\web_group\Main.java
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\test\java\web_group\DataClearUtils.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\test\java\web_group\DataClearUtils.java
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\test\java\web_group\Main.java

View File

@ -5,59 +5,21 @@
</component>
<component name="ChangeListManager">
<list default="true" id="892daef1-3b81-4ef0-ad70-13685ff53dad" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/../web_group/build/pro/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/build/pro/taurus-core.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/src/main/webapp/config/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/src/main/webapp/config/taurus-core.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT.war" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT.war" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/game_common-1.0.0.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/game_common-1.0.0.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.0.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.0.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-permanent-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-permanent-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/config/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/config/taurus-core.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/artifacts/web_login_war.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/artifacts/web_login_war_exploded.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/MainServer$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/MainServer$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/MainServer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/MainServer.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/Protocol.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/Protocol.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/WebInterceptor.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/WebInterceptor.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/service/AccountService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/service/AccountService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/service/IndexService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/service/IndexService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/service/MilitaryService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/service/MilitaryService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/service/RoomService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/service/RoomService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/RedisKey.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/RedisKey.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSThread$SendTask.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSThread$SendTask.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSThread.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSThread.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSVerification.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSVerification.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/web_login/Main.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/web_login/Main.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web_login.iml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/data_cache/target/data_cache.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/data_cache/target/data_cache.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/data_cache/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/data_cache/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/data_cache/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/data_cache/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/game_common/target/game_common-1.0.0.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/game_common/target/game_common-1.0.0.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/game_common/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/game_common/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/game_common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/game_common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanChangSha.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanChangSha.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/TEST-Test.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/TEST-Test.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/Test.txt" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/Test.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1-sources.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1-sources.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/TEST-com.taurus.Test.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/TEST-com.taurus.Test.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/com.taurus.Test.txt" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/com.taurus.Test.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/taurus-web-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/taurus-web-1.0.1.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/Paixing.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/Paixing.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/game-config.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/game-config.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/taurus-core.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/taurus-permanent.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/taurus-permanent.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/game_mj_hongzhong.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/game_mj_hongzhong.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -74,26 +36,26 @@
</MavenGeneralSettings>
</option>
</component>
<component name="ProjectColorInfo"><![CDATA[{
"associatedIndex": 4
}]]></component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 4
}</component>
<component name="ProjectId" id="1tqA838D3Q87Km1lYV2p6UNw57g" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"Application.Main.executor": "Run",
"RunOnceActivity.ShowReadmeOnStart": "true",
"git-widget-placeholder": "master",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "D:/robotpro/robot_ceshi/xtserver_anchou/game_web/web_login20",
"nodejs_package_manager_path": "npm",
"settings.editor.selected.configurable": "MavenSettings",
"vue.rearranger.settings.migration": "true"
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;Application.Main.executor&quot;: &quot;Run&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;master&quot;,
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;D:/robotpro/robot_ceshi/xtserver_anchou/game_web/web_login20&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;MavenSettings&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
}
}]]></component>
}</component>
<component name="RunManager">
<configuration name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="web_login.Main" />
@ -134,6 +96,7 @@
<workItem from="1623486303246" duration="175000" />
<workItem from="1623721522099" duration="17000" />
<workItem from="1767228192018" duration="74000" />
<workItem from="1768369631777" duration="204000" />
</task>
<servers />
</component>

View File

@ -354,6 +354,7 @@ public class AccountService extends Controller {
long reg_time = System.currentTimeMillis() / 1000;
userData.putLong("reg_time", reg_time);
userData.putInt("jiqiren", 0);
int result = DataBase.use().insert("account", userData);
if (result == -1) {
throw new WebException(ErrorCode._FAILED);
@ -857,10 +858,10 @@ public class AccountService extends Controller {
Jedis jedis0 = Redis.use("group1_db0").getJedis();
RedisLock lock = new RedisLock("wx_"+id, jedis0);
try {
Set<String> idlist = Redis.use("group1_db1").smembers("idlogin");
/*Set<String> idlist = Redis.use("group1_db1").smembers("idlogin");
if (!idlist.contains(id.toString())){
throw new WebException(ErrorCode.BAN_LOGIN);
}
}*/
String password = reqData.getUtfString("password");
if (StringUtil.isEmpty(password)) {

Binary file not shown.

View File

@ -1,5 +1,3 @@
#Generated by Maven
#Wed Nov 27 21:07:07 GMT+08:00 2024
version=1.0.0
groupId=com.mjlogin
artifactId=web_login
groupId=com.mjlogin
version=1.0.0

View File

@ -1,10 +1,10 @@
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\RoomService.java
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\RedisKey.java
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\SMSVerification.java
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\WebInterceptor.java
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\AccountService.java
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\MilitaryService.java
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\IndexService.java
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\MainServer.java
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\SMSThread.java
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\Protocol.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\Protocol.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\WebInterceptor.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\AccountService.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\RedisKey.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\RoomService.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\SMSVerification.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\MainServer.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\IndexService.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\MilitaryService.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\SMSThread.java

View File

@ -1 +1 @@
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\test\java\web_login\Main.java
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\test\java\web_login\Main.java

View File

@ -1,17 +1,17 @@
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GameBean.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\BaseCache.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\CountUtil.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\ErrorCode.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupMemberCache.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\AccountCache.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\BaseBean.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\ConsumeCode.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\AccountBean.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupPlayBean.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupBean.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\Utility.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupMemberBean.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupPlayCache.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupCache.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GameCache.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\EventType.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\BaseCache.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\ErrorCode.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupMemberCache.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupPlayCache.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupPlayBean.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\AccountCache.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\CountUtil.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupCache.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\Utility.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupBean.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GameBean.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GameCache.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\EventType.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\BaseBean.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupMemberBean.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\AccountBean.java
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\ConsumeCode.java

View File

@ -1,37 +1,37 @@
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerInitState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Score.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\GroupPublisherService.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomInitState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\RoomDismiss.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomEndState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerSpectatorState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomReloadState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\ActionEvent.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\Global.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Timer.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\EventController.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\GPSUtil.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\state\StateMachine.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Room.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\state\StateBase.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\manager\SessionManager.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\Constant.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Hp.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomWaitState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerPopupState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\MainServer.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\JoinRoomData.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomDestoryGameState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\Router.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerReloadState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerPauseState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\BasePlayBack.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\GameController.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerEndState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerReadyState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\manager\RoomManager.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerWaitState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomStartGameState.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\GameInterceptor.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Player.java
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\Util.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\EventController.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerWaitState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\state\StateBase.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\state\StateMachine.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Hp.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\Constant.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\GameController.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\Util.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\manager\SessionManager.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerInitState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\JoinRoomData.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerSpectatorState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomEndState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Player.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerPauseState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Timer.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomWaitState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Room.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerEndState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\Global.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\GroupPublisherService.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\RoomDismiss.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomReloadState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\ActionEvent.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerReadyState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\GameInterceptor.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\GPSUtil.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerPopupState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomStartGameState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomDestoryGameState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomInitState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\MainServer.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Score.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerReloadState.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\manager\RoomManager.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\Router.java
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\BasePlayBack.java

View File

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="test" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="target/generated-sources/annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1 +0,0 @@
/target/

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>robot_common</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
<filteredResources>
<filter>
<id>1757754685239</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>

View File

@ -1,4 +0,0 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8

View File

@ -1,2 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.apt.aptEnabled=false

View File

@ -1,14 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.processAnnotations=disabled
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8

View File

@ -1,4 +0,0 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

View File

@ -1,20 +0,0 @@
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

View File

@ -1,100 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<serivce-core>
<log4jPath>log4j.properties</log4jPath>
<plugin>
<id>database</id>
<class>com.taurus.core.plugin.database.DataBasePlugin</class>
<poolConfig>
<!-- 最大连接数, 默认10个 -->
<maxPool>100</maxPool>
<!-- 最小空闲连接数, 默认0个 -->
<minIdle>10</minIdle>
<!-- 配置获取连接等待超时的时间,单位是毫秒, 默认180000 -->
<maxLifetime>180000</maxLifetime>
<!--hsqldb - "select 1 from INFORMATION_SCHEMA.SYSTEM_USERS"
Oracle - "select 1 from dual"
DB2 - "select 1 from sysibm.sysdummy1"
mysql - "select 1" -->
<validationQuery>select 1</validationQuery>
<!-- 连接超时时间,默认30000-->
<connectionTimeout>10000</connectionTimeout>
<!-- 待机超时时间,单位是毫秒, 默认60000 -->
<idleTimeout>60000</idleTimeout>
<!-- jdbc 属性 -->
<props>
<useSSL>false</useSSL>
<useUnicode>true</useUnicode>
<characterEncoding>utf-8</characterEncoding>
<!-- 服务器时区 -->
<serverTimezone>UTC</serverTimezone>
<!-- 预编译缓存 -->
<cachePrepStmts>true</cachePrepStmts>
<!-- 预编译缓存大小 -->
<prepStmtCacheSize>250</prepStmtCacheSize>
<!-- 控制长度多大的sql可以被缓存 -->
<prepStmtCacheSqlLimit>2048</prepStmtCacheSqlLimit>
</props>
</poolConfig>
<databases>
<db>
<name>db1</name>
<driverName>com.mysql.cj.jdbc.Driver</driverName>
<jdbcUrl>jdbc:mysql://8.138.242.190:8060/wb_game</jdbcUrl>
<userName>root</userName>
<password>root</password>
</db>
</databases>
</plugin>
<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="8.138.242.190" password="cssq@2020" port="6379" database="0" timeout="5000"/>
<info name="group1_db1" host="8.138.242.190" password="cssq@2020" port="6379" database="1" timeout="5000"/>
<info name="group1_db2" host="8.138.242.190" password="cssq@2020" port="6379" database="2" timeout="5000"/>
<info name="group1_db5" host="8.138.242.190" password="cssq@2020" port="6379" database="5" timeout="5000"/>
<info name="group1_db8" host="8.138.242.190" password="cssq@2020" port="6379" database="8" timeout="5000"/>
<info name="group1_db9" host="8.138.242.190" password="cssq@2020" port="6379" database="9" timeout="5000"/>
<info name="group1_db10" host="8.138.242.190" password="cssq@2020" port="6379" database="10" timeout="5000"/>
<info name="group1_db11" host="8.138.242.190" password="cssq@2020" port="6379" database="11" timeout="5000"/>
<info name="tmp_group1_db9" host="8.138.242.190" password="654sads" port="6479" database="9" timeout="5000"/>
</infos>
</plugin>
</serivce-core>

View File

@ -1,67 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.robot</groupId>
<artifactId>robot_common</artifactId>
<version>1.0.1</version>
<packaging>jar</packaging>
<name>robot_common</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!--依赖 taurus-core -->
<dependency>
<groupId>com.taurus</groupId>
<artifactId>taurus-core</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>com.taurus</groupId>
<artifactId>taurus-web</artifactId>
<version>1.0.1</version>
</dependency>
<!--依赖 game_common -->
<dependency>
<groupId>com.game</groupId>
<artifactId>game_common</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<!-- <compilerArgument>-parameters</compilerArgument> -->
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,137 +0,0 @@
package hunan;
import com.data.bean.AccountBean;
import com.data.cache.AccountCache;
import com.data.util.ErrorCode;
import com.taurus.core.entity.*;
import com.taurus.core.plugin.database.DataBase;
import com.taurus.core.plugin.redis.Redis;
import com.taurus.core.util.Logger;
import com.taurus.web.WebException;
import redis.clients.jedis.Jedis;
import taurus.client.TaurusClient;
import taurus.client.business.AccountBusiness;
import taurus.client.business.GroupRoomBusiness;
import taurus.util.GroupDatas;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
public class DoTest {
// 扣点点玩家手牌
public static List<Integer> cardInhand = new ArrayList<Integer>();
private static final Logger log = Logger.getLogger(DoTest.class);
//
// //跑得快算法
// private static PaoDeKuaiSuanFa paoDeKuaiSuanFa;
//红中其它玩家打的牌
// public static String hongZhongCard = "";
//扣点点别人打的牌
public static String card = "";
// 玩家座位号
public static int seat = 0;
// 玩家ID
public static int playerId = 0;
// 登录密码
public static String password = "123456";
// 会话标识
public static String session = "";
// 访问令牌
public static String token = "";
// 玩法ID
public static String wanfaId = "";
// 客户端连接对象
public static TaurusClient client = null;
public static TObject datas = null;
//圈子id
public static int groupId = 0;
//房间id
public static String roomId = "";
public static int count = 0;
static final void get() {
TObject data = GroupDatas.getData();
datas = data;
}
public String doTest() throws Exception {
get();
ITArray group = datas.getTArray("groupid");
Jedis jedis11 = Redis.use("group1_db11").getJedis();
Jedis jedis0 = Redis.use("group1_db0").getJedis();
try {
if (group.size() != 0) {
log.info("数据--------{}", datas);
// System.out.println("数据--------" + datas);
ITArray robotIds = datas.getTArray("robotIds");
int robotIndex = 0;
for (int i = 0; i < group.size(); i++) {
TDataWrapper tDataWrapper = group.get(i);
if (tDataWrapper.getTypeId() == TDataType.TOBJECT) {
TObject roomObj = (TObject) tDataWrapper.getObject();
// 获取圈子id和房间列表
Set<String> keySet = roomObj.getKeys();
for (String groupIdStr : keySet) {
int currentGroupId = Integer.parseInt(groupIdStr);
ITArray roomArray = roomObj.getTArray(groupIdStr);//玩法id
//为每个房间分配一个机器人
for (int j = 0; j < roomArray.size() && robotIndex < robotIds.size(); j++) {
int currentPlayId = roomArray.getInt(j);
int currentPlayerId = robotIds.getInt(robotIndex);
System.out.println("玩家id: " + currentPlayerId + ", 玩法id: " + currentPlayId + ", 圈子id: " + currentGroupId);
JiQiRens jiQiRen = new JiQiRens();
String playKey = "g{" + groupIdStr + "}:play:" + currentPlayId;
String leftover_robot = jedis11.hget(playKey, "leftover_robot");
if (jedis11.hget(playKey, "leftover_robot") != null) {
// if (Integer.parseInt(leftover_robot) > 0) {
jiQiRen.tcp_test(currentPlayerId, currentPlayId, currentGroupId);
robotIndex++;
// }
}
}
}
}
}
// 清空数据
datas.getTArray("robotIds").clear();
datas.getTArray("groupid").clear();
playerId = 0;
roomId = "";
groupId = 0;
count = 0;
}
} finally {
jedis11.close();
jedis0.close();
}
return "";
}
}

View File

@ -1,25 +0,0 @@
package hunan;
import java.util.*;
public class HandAnalysis {
public Map<Integer, Integer> cardCounts = new HashMap<>();
public List<List<Integer>> completedMelds = new ArrayList<>();
public List<Integer> pairs = new ArrayList<>();
public List<Integer> isolatedCards = new ArrayList<>();
public Map<Integer, Integer> cardUsefulness = new HashMap<>();
public Map<Integer, List<Integer>> cardsBySuit = new HashMap<>();
public boolean isTingPai = false;//是否听牌
public Set<Integer> tingCards = new HashSet<>(); // 听的牌
public int meldCount = 0; // 面子数量
public int shantenCount = Integer.MAX_VALUE; // 向听数
public int pairCount = 0; // 对子/将数量
public boolean hasLongQiDuiPotential = false; // 是否有龙七对潜力
public Set<Integer> usedInMelds = new HashSet<>(); // 用于面子的牌
public boolean hasPengPengHu = false;//是否有碰碰胡
public Set<Integer> usedInPairs = new HashSet<>(); // 用于对子/将的牌
public List<Integer> remainingCards = new ArrayList<>(); // 剩余需要分析的牌
public int lastDrawnCard = 0; // 最后摸的牌
}

File diff suppressed because it is too large Load Diff

View File

@ -1,55 +0,0 @@
package hunan;
import com.game.Util;
import com.taurus.core.entity.ITArray;
import com.taurus.core.entity.ITObject;
import com.taurus.core.entity.TObject;
import com.taurus.core.plugin.database.DataBase;
import com.taurus.core.util.Logger;
import com.taurus.core.util.StringUtil;
import taurus.client.Message;
import taurus.client.TaurusClient;
import taurus.util.*;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HuNanChangShaNew {
private static final Logger log = Logger.getLogger(DoTest.class);
//湖南红中麻将手牌
private List<Integer> changShaCardInhand = new ArrayList<>();
/**
* 811
* @param command
* @param message
* @param client
* @return
*/
public String cardInHead(String command, Message message, TaurusClient client) {
if (command.equalsIgnoreCase("811")) {
log.info("cardInhand changsha new");
ITObject param = message.param;
if (param == null) {
return null;
}
// {bank_seat=1, laiziCard=0, laiziCard2=0, laiziCard2Before=0, jing=0, laiziCardBefore=0, card_list=[101, 103, 104, 201, 204, 207, 208, 209, 307, 309, 501, 502, 503]}
ITArray cardList = param.getTArray("card_list");
for (int i = 0; i < cardList.size(); i++) {
changShaCardInhand.add(cardList.getInt(i));
}
}
return null;
}
public void drawCard(String command, Message message,ITObject param) {
}
}

View File

@ -1,214 +0,0 @@
package hunan;
import com.game.Util;
import com.taurus.core.entity.ITArray;
import com.taurus.core.entity.ITObject;
import com.taurus.core.entity.TObject;
import taurus.client.Message;
import taurus.client.TaurusClient;
import taurus.util.CardUtil;
import taurus.util.HongZhongSuanFaTest;
import java.util.ArrayList;
import java.util.List;
public class HuNanFangPaoFa {
public static int fangPaoFaCardCard = 0;
//湖南字牌放炮罚 手牌
private List<Integer> fangPaoFaCardInhand = new ArrayList<Integer>();
// 玩家座位号
public static int seat = 0;
// 会话标识
public static String session = "";
// 访问令牌
public static String token = "";
public void fangPaoFaCardInhand() {
fangPaoFaCardInhand = new ArrayList<Integer>();
}
public List<Integer> getFangPaoFaCardInhand() {
return fangPaoFaCardInhand;
}
/**
* 811
*
* @param command
* @param message
* @return
*/
public String cardInHead(String command, Message message, TaurusClient client) {
if (command.equalsIgnoreCase("811")) {
ITObject param = message.param;
if (param == null) {
return null;
}
// {bank_seat=1, laiziCard=0, laiziCard2=0, laiziCard2Before=0, jing=0, laiziCardBefore=0, card_list=[101, 103, 104, 201, 204, 207, 208, 209, 307, 309, 501, 502, 503]}
ITArray cardList = param.getTArray("card_list");
for (int i = 0; i < cardList.size(); i++) {
fangPaoFaCardInhand.add(cardList.getInt(i));
}
if (fangPaoFaCardInhand.size() > 19) {
outCard(client);
System.out.println("机器人:" + param.getInt("seat") + "为庄家,需要出牌" + ",牌为:" + fangPaoFaCardInhand.get(0));
}
System.out.println("机器人:" + param.getInt("seat") + "放炮罚初始化手牌" + ",牌为:" + fangPaoFaCardInhand.toString());
}
return null;
}
/**
* 819
*
* @param command
* @param message
* @return
*/
public String getCard(String command, Message message) {
if (command.equalsIgnoreCase("819")) {
ITObject param = message.param;
if (param == null) {
return null;
}
System.out.println("轮到座位号:" + param.getInt("seat") + "的用户摸牌" + ",牌为:" + param.getInt("card"));
if (param.getInt("seat") != null && seat == param.getInt("seat")) {
fangPaoFaCardInhand.add(param.getInt("card"));
System.out.println("摸牌后放炮罚 手牌" + fangPaoFaCardInhand);
}
}
return null;
}
/**
*
*/
public String outCard(TaurusClient client) {
ITObject params = TObject.newInstance();
params.putString("session", session + "," + token);
params.putInt("card", fangPaoFaCardInhand.get(0));
System.out.println("放炮罚出牌 " + fangPaoFaCardInhand.get(0));
fangPaoFaCardInhand.remove(0);
System.out.println("目前机器人剩余手牌:" + fangPaoFaCardInhand.toString());
client.send("611", params, response -> {
System.out.println("出牌成功: " + response.returnCode);
});
return null;
}
/**
* 广 812
*
* @param command
* @param message
* @return
*/
public static String drawCard(String command, Message message) {
if (command.equalsIgnoreCase("812")) {
ITObject param = message.param;
if (param == null) {
return null;
}
fangPaoFaCardCard = param.getInt("card");
System.out.println("出牌广播" + fangPaoFaCardCard);
System.out.println("座位号:" + param.getInt("seat") + "的用户出牌:" + param.getInt("card"));
}
return null;
}
/**
*
*
* @param param
* @return
*/
public String actionCard(ITObject param, TaurusClient client) {
//获取碰杠胡参数 type 和id 后续算法接入,是否能让碰和杠
ITArray tipList = param.getTArray("tip_list");
int id = 0;
int type = 0;
int opcard = 0;
int opcard1 = 0;
int card = 0;
ITArray bi_list = null;
ITObject params = TObject.newInstance();
if (tipList != null && tipList.size() > 0) {
TObject firstTip = (TObject) tipList.get(0).getObject();
id = firstTip.getInt("id");
type = firstTip.getInt("type");
card = firstTip.getInt("card");
// 获取吃牌组合中的第一张牌
opcard = firstTip.getTArray("opcard").getInt(0);
// 获取吃牌组合中的第二张牌
opcard1 = firstTip.getTArray("opcard").getInt(1);
bi_list = firstTip.getTArray("bi_list");
System.out.println("id ++ " + id);
System.out.println("type ++ " + type);
System.out.println("opcard ++ " + opcard);
System.out.println("card ++ " + card);
System.out.println("bi_list ++ " + bi_list);
}
//执行吃
if (type == 1) {
params.putString("session", session + "," + token);
params.putInt("id", id);
CardUtil.removeCard1(fangPaoFaCardInhand, opcard, 1);
CardUtil.removeCard1(fangPaoFaCardInhand, opcard1, 1);
if (bi_list != null ){
CardUtil.removeCard1(fangPaoFaCardInhand, card, 1);
}
System.out.println("删除吃的牌");
//执行碰
} else if (type == 2) {
params.putString("session", session + "," + token);
params.putInt("id", id);
CardUtil.removeCard1(fangPaoFaCardInhand, card, 1);
System.out.println("删除碰的牌");
//执行吃杠
} else if (type == 3) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
// Util.removeCard(hongZhongCardInhand, opcard, 3);
System.out.println("执行吃杠");
} else if (type == 4) {
params.putString("session", session + "," + token);
params.putInt("id", id);
CardUtil.removeCard1(fangPaoFaCardInhand, card, 2);
System.out.println("执行偎----");
// 碰后补杠
} else if (type == 5) {
// params.putString("session", session + "," + token);
// params.putInt("qi", 0);
// params.putInt("id", 1);
// Util.removeCard(hongZhongCardInhand, opcard, 1);
// System.out.println("执行碰后补杠");
} else if (type == 8) {
params.putInt("id", id);
}
System.out.println("调用612");
client.send("612", params, response -> {
System.out.println("操作成功: " + response.returnCode);
});
return null;
}
public static void fangPaoTipEvent(Message message,TaurusClient client) {
ITObject param = message.param;
Integer card = param.getInt("card");
ITObject params = TObject.newInstance();
params.putInt("card", card);
client.send("823", params, response -> {
System.out.println("操作成功: " + response.returnCode);
});
}
}

View File

@ -1,319 +0,0 @@
package hunan;
import com.game.Util;
import com.taurus.core.entity.ITArray;
import com.taurus.core.entity.ITObject;
import com.taurus.core.entity.TObject;
import com.taurus.core.util.StringUtil;
import taurus.client.Message;
import taurus.client.TaurusClient;
import taurus.util.CardUtil;
import taurus.util.HongZhongSuanFaTest;
import java.util.*;
public class HuNanHongZhong {
public static int hongZhongCard = 0;
//湖南红中麻将手牌
private List<Integer> hongZhongCardInhand = new ArrayList<>();
//红中麻将出过的牌
private List<Integer> hongZhongchuguopai = new ArrayList<>();
// 玩家座位号
public static int seat = 0;
public static int playerId = 0;
// 会话标识
public static String session = "";
// 访问令牌
public static String token = "";
//红中麻将算法
// private static HongZhongSuanFa hongZhongSuanFa = new HongZhongSuanFa();
private static HongZhongSuanFaTest hongZhongSuanFaTest = new HongZhongSuanFaTest();
// 公共的getter和setter方法
public List<Integer> getHongZhongCardInhand() {
return hongZhongCardInhand;
}
public List<Integer> getChuGuoCardInhand() {
return hongZhongchuguopai;
}
/**
* 广 812
*
* @param command
* @param message
* @return
*/
public static String drawCard(String command, Message message) {
if (command.equalsIgnoreCase("812")) {
ITObject param = message.param;
if (param == null) {
return null;
}
hongZhongCard = param.getInt("card");
}
return null;
}
/**
* 819
*
* @param command
* @param message
* @return
*/
public String getCard(String command, Message message) {
if (command.equalsIgnoreCase("819")) {
ITObject param = message.param;
if (param == null) {
return null;
}
// {seat=2, Ishupai=0, isBaoTing=-1, tingcard=0, isgang=0, card=101, left_count=106}
if (param.getInt("player") != null) {
int drawnCard = param.getInt("card");
hongZhongSuanFaTest.drawnCards = drawnCard;
hongZhongCardInhand.add(drawnCard);
// 创建包含摸牌后的完整手牌
List<Integer> newHand = new ArrayList<>(hongZhongCardInhand);
// 调用分离分析方法,将刻子、顺子、红中单独拎出后分析剩余牌
hongZhongSuanFaTest.separateAndAnalyzeHand(newHand);
// 直接调用hongZhongSuanFaTest中的analyzeDrawCard方法分析摸牌后是否可听牌
hongZhongSuanFaTest.analyzeDrawCard(hongZhongCardInhand, drawnCard);
// 调用新添加的findDiscardToTing方法分析打出哪张牌可以听牌
Map<Integer, Set<Integer>> discardOptions = hongZhongSuanFaTest.findDiscardToTing(newHand);
// 如果有可打出后听牌的选项,记录信息
if (!discardOptions.isEmpty()) {
// 这些信息将在出牌决策时被考虑
} else {
}
}
}
return null;
}
/**
*
*
* @param proposedCard
* @return
*/
public boolean shouldPong(int proposedCard) {
// 直接调用hongZhongSuanFaTest中的shouldPong方法它已经包含了所有需要的规则
return hongZhongSuanFaTest.shouldPong(proposedCard, hongZhongCardInhand);
// return hongZhongSuanFaTest.shouldPong(proposedCard, Arrays.asList(305,304,303,207,207,204,204,208,208,201,201,412,412));
}
/**
* 811
*
* @param command
* @param message
* @return
*/
public String cardInHead(String command, Message message, TaurusClient client) {
if (command.equalsIgnoreCase("811")) {
ITObject param = message.param;
if (param == null) {
return null;
}
// {bank_seat=1, laiziCard=0, laiziCard2=0, laiziCard2Before=0, jing=0, laiziCardBefore=0, card_list=[101, 103, 104, 201, 204, 207, 208, 209, 307, 309, 501, 502, 503]}
ITArray cardList = param.getTArray("card_list");
for (int i = 0; i < cardList.size(); i++) {
hongZhongCardInhand.add(cardList.getInt(i));
}
if (hongZhongCardInhand.size() > 13) {
outCard(client);
}
}
return null;
}
/**
*
*
* @param param
* @return
*/
public String actionCard(ITObject param, TaurusClient client) {
//获取碰杠胡参数 type 和id 后续算法接入,是否能让碰和杠
ITArray tipList = param.getTArray("tip_list");
int id = 0;
int type = 0;
int opcard = 0;
ITObject params = TObject.newInstance();
if (tipList != null && tipList.size() > 0) {
TObject firstTip = (TObject) tipList.get(0).getObject();
id = firstTip.getInt("id");
type = firstTip.getInt("type");
opcard = firstTip.getTArray("opcard").getInt(0);
}
//弃 是根据算法选择是否要弃掉 不进行碰杠胡
//params.putInt("qi", 0);
//params.putInt("id", 0);
//执行碰牌
if (type == 2) {
// 根据规则判断是否应该碰牌
if (shouldPong(opcard)) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
Util.removeCard(hongZhongCardInhand, opcard, 2);
} else {
params.putString("session", session + "," + token);
params.putInt("qi", 1); // 放弃碰牌
params.putInt("id", 0);
}
// Global.logger.info("删除碰的牌");
//执行胡牌
} else if (type == 6) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
//执行吃杠
} else if (type == 3) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
Util.removeCard(hongZhongCardInhand, opcard, 3);
//执行自杠
} else if (type == 4) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
Util.removeCard(hongZhongCardInhand, opcard, 4);
// 碰后补杠
} else if (type == 5) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
Util.removeCard(hongZhongCardInhand, opcard, 1);
}
// cardInhand.remove(0);
// cardInhand.remove(1);
client.send("612", params, response -> {
});
return null;
}
public static String changePlayer(String command, Message message) {
if (command.equalsIgnoreCase("820")) {
ITObject param = message.param;
if (param == null) {
return null;
}
}
return null;
}
/**
*
*/
// public String outCard(TaurusClient client, List< Integer> list) {
public String outCard(TaurusClient client) {
// 调用分离分析方法,将刻子、顺子、红中单独拎出后分析剩余牌
hongZhongSuanFaTest.separateAndAnalyzeHand(hongZhongCardInhand);
// 红中麻将出牌
String hongzhongOutCard = hongZhongSuanFaTest.outCardSuanFa(hongZhongCardInhand, hongZhongCard);
// String hongzhongOutCard = hongZhongSuanFaTest.outCardSuanFa(list, hongZhongCard);
ITObject params = TObject.newInstance();
int cardToOut;
if (StringUtil.isNotEmpty(hongzhongOutCard)) {
cardToOut = Integer.parseInt(hongzhongOutCard);
} else {
cardToOut = hongZhongCardInhand.get(0);
}
params.putInt("card", cardToOut);
int outCountBefore = hongZhongchuguopai.size(); // 当前历史出牌数量
// 第n次出牌时发送前n-1张出牌
if (outCountBefore >= 1) {
// 发送前n-1张所有历史出牌
List<Integer> cardsToSend = hongZhongchuguopai.subList(0, outCountBefore);
params.putTArray("outcard_list", CardUtil.maJiangToTArray(cardsToSend));
}
params.putTArray("card_list", CardUtil.maJiangToTArray(hongZhongCardInhand));
// 将当前出的牌添加到历史出牌列表
hongZhongchuguopai.add(cardToOut);
// 从手牌中移除
hongZhongCardInhand.remove(Integer.valueOf(cardToOut));
params.putString("session", session + "," + token);
client.send("611", params, response -> {
});
return null;
}
/**
*
*
* @param param
* @return
*/
public String shanchuchuguopai(ITObject param) {
if (param == null) {
return null;
}
Integer card = param.getInt("card"); // 操作牌值
Integer type = param.getInt("type"); // 操作类型
Integer from_seat = param.getInt("from_seat"); // 牌来源座位
if (type == 2 || type == 3 || type == 5) { // 碰,杠
getChuGuoCardInhand().remove(Integer.valueOf(card));
}
return null;
}
}

View File

@ -1,116 +0,0 @@
package hunan;
import com.taurus.core.entity.ITArray;
import com.taurus.core.entity.ITObject;
import com.taurus.core.entity.TObject;
import taurus.client.TaurusClient;
import taurus.util.*;
import java.util.*;
public class HuNanPaoDeKuai {
public static int seat = 0;
//座位号 剩余牌数量
private Map<Integer, List<Integer>> seatRemainHistory = new HashMap<>();
// 跑的快玩家手牌
private List<CardObj> paoDekuaiCardInhand = new ArrayList<>();
// 会话标识
public static String session = "";
// 访问令牌
public static String token = "";
//跑的快别人出的牌
private ITObject card_list = TObject.newInstance();
public static int guangboseat = 0;
public static int remain = 0;
public Map<Integer, List<Integer>> getSeatRemainHistory() {
return seatRemainHistory;
}
public List<CardObj> getPaoDekuaiCardInhand() {
return paoDekuaiCardInhand;
}
public ITObject getCard_list() {
return card_list;
}
/**
*
*/
public String outCard(TaurusClient client) {
ITArray itArray = null;
itArray = test.intelligentPaoDeKuaiOutCard(paoDekuaiCardInhand, card_list, seatRemainHistory);
if (remain == 1 && itArray == null) { //如果玩家的下家只有一张牌,玩家出单张必须是最大的
CardObj maxSingleCard = CardUtil.findMaxSingleCard(paoDekuaiCardInhand);
itArray = CardUtil.toTArray1(maxSingleCard);
}
//跑得快出牌
ITObject params = TObject.newInstance();
params.putString("session", session + "," + token);
params.putTArray("card", itArray);
params.putTArray("all_card", CardUtil.toTArray(paoDekuaiCardInhand));
CardUtil.removeCard(paoDekuaiCardInhand, CardUtil.toList(itArray)); //删除手牌里打过的牌
client.send("1013", params, response ->
{
});
return null;
}
/**
*
*
* @param param
* @return
*/
public String paoDeKuaiCardInHead(ITObject param, TaurusClient client) {
ITArray cardList = param.getTArray("cards");
List<CardObj> cardObjs = new ArrayList<>();
if (cardList.size() != 0) {
cardObjs = CardUtil.toList(cardList);
}
paoDekuaiCardInhand.addAll(cardObjs);
return null;
}
/**
* 广
*
* @param param
* @return
*/
public String paoDekuaiChupaiGuangBo(ITObject param) {
card_list = param.getTObject("card_obj");
guangboseat = param.getInt("player");
remain = param.getInt("remain"); //剩余牌数量
saveRemainHistory(guangboseat, remain);
return null;
}
public void saveRemainHistory(int guangboseat, int remain) {
if (!seatRemainHistory.containsKey(guangboseat)) {
seatRemainHistory.put(guangboseat, new ArrayList<>());
}
seatRemainHistory.get(guangboseat).add(remain);
}
}

View File

@ -1,338 +0,0 @@
package hunan;
import com.game.Util;
import com.taurus.core.entity.ITArray;
import com.taurus.core.entity.ITObject;
import com.taurus.core.entity.TObject;
import com.taurus.core.util.StringUtil;
import taurus.client.Message;
import taurus.client.TaurusClient;
import taurus.util.CardUtil;
import taurus.util.ZhuanZhuanSuanFaTest;
import java.util.*;
public class HuNanZhuanZhuan {
public static int zhuanZhuanCard = 0;
//湖南转转麻将手牌
private List<Integer> zhuanZhuanCardInhand = new ArrayList<Integer>();
//打出的牌
private List<Integer> zhuanZhuanchuguopai = new ArrayList<>();
private static ZhuanZhuanSuanFaTest zhuanZhuanFaTest = new ZhuanZhuanSuanFaTest();
// 玩家座位号
public static int seat = 0;
// 会话标识
public static String session = "";
// 访问令牌
public static String token = "";
public List<Integer> getZhuanZhuanCardInhand() {
return zhuanZhuanCardInhand;
}
public List<Integer> getZhuanZhuanchuguopai() {
return zhuanZhuanchuguopai;
}
/**
* 811
*
* @param command
* @param message
* @return
*/
public String cardInHead(String command, Message message, TaurusClient client ) {
if (command.equalsIgnoreCase("811")) {
ITObject param = message.param;
if (param == null) {
return null;
}
// {bank_seat=1, laiziCard=0, laiziCard2=0, laiziCard2Before=0, jing=0, laiziCardBefore=0, card_list=[101, 103, 104, 201, 204, 207, 208, 209, 307, 309, 501, 502, 503]}
ITArray cardList = param.getTArray("card_list");
for (int i = 0; i < cardList.size(); i++) {
zhuanZhuanCardInhand.add(cardList.getInt(i));
}
if (zhuanZhuanCardInhand.size() > 13) {
outCard(client);
if (!zhuanZhuanCardInhand.isEmpty()) {
System.out.println("机器人:" + param.getInt("seat") + "为庄家需要出牌1111" + ",牌为:" + zhuanZhuanCardInhand.get(0));
} else {
System.out.println("机器人:" + param.getInt("seat") + "为庄家需要出牌1111但手牌为空");
}
}
System.out.println("机器人:" + param.getInt("bank_seat") + "初始化手牌" + ",牌为:" + zhuanZhuanCardInhand.toString());
}
return null;
}
// ... existing code ...
/**
*
*
*/
public void outCard(TaurusClient client) {
//麻将出牌
String zhuanzhaunOutCard = zhuanZhuanFaTest.outCardSuanFa(zhuanZhuanCardInhand, zhuanZhuanCard);
ITObject params = TObject.newInstance();
int cardToOut;
if (StringUtil.isNotEmpty(zhuanzhaunOutCard)) {
cardToOut = Integer.parseInt(zhuanzhaunOutCard);
}else {
cardToOut = zhuanZhuanCardInhand.get(0);
}
params.putString("session", session + "," + token);
params.putInt("card", cardToOut);
int outCountBefore = zhuanZhuanchuguopai.size();
if (outCountBefore >=1){
List<Integer> cardsToSend = zhuanZhuanchuguopai.subList(0, outCountBefore);
params.putTArray("outcard_list", CardUtil.maJiangToTArray(cardsToSend));
}
params.putTArray("card_list", CardUtil.maJiangToTArray(zhuanZhuanCardInhand));
zhuanZhuanchuguopai.add(cardToOut);
System.out.println("机器人出牌: " + cardToOut);
zhuanZhuanCardInhand.remove(Integer.valueOf(cardToOut));
System.out.println("目前机器人剩余手牌:" + zhuanZhuanCardInhand.toString());
client.send("611", params, response -> {
System.out.println("出牌成功: " + response.returnCode);
});
}
// ... existing code ...
/**
* 广 812
*
* @param command
* @param message
* @return
*/
public static String drawCard(String command, Message message) {
if (command.equalsIgnoreCase("812")) {
ITObject param = message.param;
if (param == null) {
return null;
}
zhuanZhuanCard = param.getInt("card");
System.out.println("出牌广播" + zhuanZhuanCard);
System.out.println("座位号:" + param.getInt("seat") + "的用户出牌:" + param.getInt("card"));
}
return null;
}
/**
* 819
*
* @param command
* @param message
* @return
*/
public String getCard(String command, Message message) {
if (command.equalsIgnoreCase("819")) {
ITObject param = message.param;
if (param == null) {
return null;
}
// {seat=2, Ishupai=0, isBaoTing=-1, tingcard=0, isgang=0, card=101, left_count=106}
int card = param.getInt("card");
System.out.println("轮到座位号:" + param.getInt("seat") + "的用户摸牌" + ",牌为:" + card);
if (param.getInt("player") != null) {
zhuanZhuanCardInhand.add(card);
// 添加摸牌分析逻辑
System.out.println("\n===== 摸牌分析开始 =====");
// 创建包含摸牌后的手牌副本
List<Integer> tempHand = new ArrayList<>(zhuanZhuanCardInhand);
tempHand.sort(Integer::compareTo);
// 调用算法类进行摸牌分析
if (zhuanZhuanFaTest != null) {
boolean isTing = zhuanZhuanFaTest.analyzeDrawCard(zhuanZhuanCardInhand, card);
// 如果摸牌后可以听牌,记录信息
if (isTing) {
System.out.println("\n摸牌后已进入听牌状态");
}
// 分析打出哪张牌可以听牌
Map<Integer, Set<Integer>> discardToTingMap = zhuanZhuanFaTest.findDiscardToTing(tempHand);
if (discardToTingMap != null && !discardToTingMap.isEmpty()) {
System.out.println("可打出后听牌的牌数量: " + discardToTingMap.size());
}
}
System.out.println("===== 摸牌分析结束 =====");
// cardInhand.add(104);
}
}
return null;
}
public static String changePlayer(String command, Message message) {
if (command.equalsIgnoreCase("820")) {
ITObject param = message.param;
if (param == null) {
return null;
}
System.out.println("出牌权转移到座位号:" + param.getInt("seat") + "的用户");
}
return null;
}
/**
*
*
* @param param
* @return
*/
public String actionCard(ITObject param,TaurusClient client) {
//获取碰杠胡参数 type 和id 后续算法接入,是否能让碰和杠
ITArray tipList = param.getTArray("tip_list");
int id = 0;
int type = 0;
int opcard = 0;
ITObject params = TObject.newInstance();
if (tipList != null && tipList.size() > 0) {
TObject firstTip = (TObject) tipList.get(0).getObject();
id = firstTip.getInt("id");
type = firstTip.getInt("type");
opcard = firstTip.getTArray("opcard").getInt(0);
System.out.println("id ++ " + id);
System.out.println("type ++ " + type);
System.out.println("机器人收到牌:" + opcard + ",当前手牌:" + zhuanZhuanCardInhand);
}
//弃 是根据算法选择是否要弃掉 不进行碰杠胡
//params.putInt("qi", 0);
//params.putInt("id", 0);
// 如果是碰操作,使用算法判断是否应该碰
if (type == 2 && zhuanZhuanFaTest != null) {
// 复制当前手牌进行分析
List<Integer> tempHands = new ArrayList<>(zhuanZhuanCardInhand);
// 使用算法判断是否应该碰牌
boolean shouldPong = zhuanZhuanFaTest.shouldPong(opcard, tempHands);
if (!shouldPong) {
// 如果算法判断不应该碰,设置放弃操作
params.putInt("qi", 1);
params.putInt("id", 0);
System.out.println("智能决策:不碰该牌,保持手牌灵活性");
client.send("612", params, response -> {
System.out.println("操作成功: " + response.returnCode);
});
return null;
}
}
// 如果是杠操作,使用算法判断是否应该杠
if (type == 3 || type == 4 || type == 5) {
if (zhuanZhuanFaTest != null) {
List<Integer> tempHands = new ArrayList<>(zhuanZhuanCardInhand);
boolean shouldGang = zhuanZhuanFaTest.shouldGang(opcard, tempHands, type);
if (!shouldGang) {
params.putInt("qi", 1);
params.putInt("id", 0);
System.out.println("智能决策:不杠该牌,保持手牌灵活性");
client.send("612", params, response -> {
System.out.println("操作成功: " + response.returnCode);
});
return null;
}
}
}
//执行碰牌
if (type == 2) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
Util.removeCard(zhuanZhuanCardInhand, opcard, 2);
System.out.println("执行碰牌:" + opcard);
// Global.logger.info("删除碰的牌");
//执行胡牌
} else if (type == 6) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
System.out.println("执行胡牌:" + opcard);
//执行吃杠
} else if (type == 3) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
Util.removeCard(zhuanZhuanCardInhand, opcard, 3);
System.out.println("执行吃杠:" + opcard);
//执行自杠
} else if (type == 4) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
Util.removeCard(zhuanZhuanCardInhand, opcard, 4);
System.out.println("执行自杠:" + opcard);
// 碰后补杠
} else if (type == 5) {
params.putString("session", session + "," + token);
params.putInt("qi", 0);
params.putInt("id", 1);
Util.removeCard(zhuanZhuanCardInhand, opcard, 1);
System.out.println("执行碰后补杠:" + opcard);
}
// cardInhand.remove(0);
// cardInhand.remove(1);
System.out.println("执行id为" + 0 + "的操作");
client.send("612", params, response -> {
System.out.println("操作成功: " + response.returnCode);
});
return null;
}
/**
*
*
* @param param
* @return
*/
public String shanchuchuguopai(ITObject param) {
if (param == null) {
return null;
}
Integer card = param.getInt("card"); // 操作牌值
Integer type = param.getInt("type"); // 操作类型
Integer from_seat = param.getInt("from_seat"); // 牌来源座位
System.out.println("删除出过的牌组 card " + card);
System.out.println("删除出过的牌组 type " + type);
System.out.println("删除出过的牌组 from_seat " + from_seat);
System.out.println("机器人 seat " + seat);
if (type == 2 || type == 3 || type == 5) { // 碰,杠
zhuanZhuanchuguopai.remove(Integer.valueOf(card));
System.out.println("删除出过的牌组 成功");
}
return null;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,226 +0,0 @@
package taurus.client;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ConnectException;
import java.net.HttpURLConnection;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.util.LinkedList;
import java.util.Queue;
import com.taurus.core.entity.ITObject;
import com.taurus.core.entity.TObject;
import com.taurus.core.util.ICallback;
import com.taurus.core.util.ByteArray;
import com.taurus.core.util.Logger;
import com.taurus.core.util.StringUtil;
import com.taurus.core.util.Utils;
import taurus.client.TaurusClient.ConnectionProtocol;
/**
* Http?
* @author daixiwei daixiwei15@126.com
*
*/
public class HttpClient implements ISocketLayer {
private static final Logger logger = Logger.getLogger(HttpClient.class);
private static final byte[] NULL_BYTES = new byte[0];
private static final String _Method = "POST";
private static final String _ContentTypeName = "Content-Type";
private static final String _ContentType = "application/octet-stream";
private static final String _Result = "$r";
private static final String _Param = "$p";
private static final String _Session = "$s";
private static final String _Version = "$v";
String _url;
String _session_id = "";
final Queue<Runnable> _actionQueue = new LinkedList<Runnable>();
public HttpClient(String url) {
_url = url;
}
private void __sendMsg(Message msg) {
byte[] bytes = NULL_BYTES;
ITObject _data = TObject.newInstance();
_data.putString(_Session, _session_id);
_data.putInt(_Version, NetManager.VERSION);
if (msg.useText && msg.param == null) {
if (StringUtil.isEmpty(msg.textParam)) {
msg.param = TObject.newInstance();
} else {
try {
msg.param = TObject.newFromJsonData(msg.textParam);
} catch (Exception e) {
msg.param = TObject.newInstance();
}
}
}
_data.putTObject(_Param, msg.param);
ByteArray buff = new ByteArray(_data.toBinary());
try {
buff.compress();
} catch (Exception e) {
logger.error(e);
}
bytes = buff.bytes();
__requestAsync(msg, bytes);
}
private void __requestAsync(final Message msg,byte[] bytes) {
OutputStream out = null;
InputStream in = null;
int code = 500;
HttpURLConnection conn = null;
try {
URL realUrl = new URL(_url + msg.command);
conn = (HttpURLConnection) realUrl.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestProperty(_ContentTypeName, _ContentType);
conn.setUseCaches(false);// Post 璇锋眰涓嶈兘浣跨敤缂撳瓨
conn.setRequestMethod(_Method);
conn.setConnectTimeout(NetManager.TIMEOUT_TIME * 1000);
conn.setReadTimeout(NetManager.TIMEOUT_TIME * 1000);
conn.connect();
out = conn.getOutputStream();
out.write(bytes);
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
in = conn.getInputStream();
bytes = Utils.uncompress(in);
if (bytes!=null) {
ITObject tem = TObject.newFromBinaryData(bytes);
int result = tem.getInt(_Result);
if (result == 0) {
ITObject _param = tem.getTObject(_Param);
msg.param = _param;
if(msg.useText) {
msg.textParam = _param.toJson();
}
}
code = result;
}
}
} catch (SocketTimeoutException e) {
logger.error(e);
code = 102;
} catch (ConnectException ex1) {
logger.error(ex1);
code = 101;
} catch (Exception ex2) {
logger.error(ex2);
code = 500;
}finally {
try {
if (out != null) {
out.close();
}
} catch (IOException ex) {
logger.error(ex);
}
try {
if (in != null) {
in.close();
}
}catch (IOException ex) {
logger.error(ex);
}
if(conn!=null) {
conn.disconnect();
}
}
if (msg.callback != null) {
final MessageResponse response = new MessageResponse();
response.messageData = msg;
response.returnCode = code;
enqueueActionForDispatch(new Runnable() {
@Override
public void run() {
msg.callback.action(response);
}
});
}
}
@Override
public void connect(String ip, String game) {
}
@Override
public void disconnect() {
}
private void enqueueActionForDispatch(Runnable action) {
synchronized (_actionQueue) {
_actionQueue.offer(action);
}
}
@Override
public void processEvent() {
while (true) {
Runnable myAction;
synchronized (_actionQueue) {
if (_actionQueue.size() <= 0) {
break;
}
myAction = _actionQueue.poll();
}
myAction.run();
}
}
public void write(final Message msg) {
new Thread(new Runnable() {
@Override
public void run() {
__sendMsg(msg);
}
}).start();
}
public int getAveragePingTime() {
return 1000;
}
public void setSession(String session) {
_session_id = session == null ? StringUtil.Empty : session;
}
public String getSession() {
return _session_id;
}
@Override
public void setOnConnect(ICallback<SocketCode> onConnect) {
}
@Override
public void setOnEvent(ICallback<Message> onEvent) {
}
@Override
public ConnectionProtocol getProtocol() {
return ConnectionProtocol.Web;
}
}

View File

@ -1,68 +0,0 @@
package taurus.client;
import com.taurus.core.util.ICallback;
import taurus.client.TaurusClient.ConnectionProtocol;
/**
*
* @author daixiwei daixiwei15@126.com
*
*/
public interface ISocketLayer {
/**
*
* @param ip
* @param game
*/
public void connect(String ip, String game);
/**
*
*/
public void disconnect();
/**
*
*/
public void processEvent();
/**
*
* @param msg
*/
public void write(Message msg);
/**
* get Protocol type
* @return
*/
public ConnectionProtocol getProtocol();
/**
*
*/
public void setOnConnect(ICallback<SocketCode> onConnect);
/**
* E
*/
public void setOnEvent(ICallback<Message> onEvent);
/**
*
*/
public int getAveragePingTime();
/**
* Session
*/
public String getSession();
/**
* Session
* @param session
*/
public void setSession(String session);
}

View File

@ -1,47 +0,0 @@
package taurus.client;
import com.taurus.core.entity.ITObject;
import com.taurus.core.util.ICallback;
/**
*
* @author daixiwei daixiwei15@126.com
*
*/
public class Message {
/**
* 使ITObject
*/
public boolean useText;
/**
* Key
*/
public String command;
/**
*
*/
public ITObject param;
/**
*
*/
public String textParam;
/**
*
*/
public ICallback<MessageResponse> callback;
/**
*
*/
public Object data;
/**
*
*/
public long lastTime;
/**
* GID
*/
public int gid;
}

View File

@ -1,17 +0,0 @@
package taurus.client;
/**
*
* @author daixiwei daixiwei15@126.com
*
*/
public class MessageResponse {
/**
*
*/
public Message messageData;
/**
* ?
*/
public int returnCode;
}

View File

@ -1,107 +0,0 @@
package taurus.client;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @author daixiwei daixiwei15@126.com
*
*/
public class NetManager {
private static List<TaurusClient> _clientList = new ArrayList<TaurusClient>();
private static Map<Integer, TaurusClient> _clientMap = new HashMap<Integer, TaurusClient>();
/**
*
*/
public static int TIMEOUT_TIME = 10;
/**
*
*/
public static int VERSION = 10;
public static boolean debug_print = false;
static void addNetClient(TaurusClient net) {
if (net == null) {
throw new RuntimeException("TaurusClient is null, it can't be added.");
}
if (_clientMap.containsKey(net.getId())) {
throw new RuntimeException("A client with id: " + net.getId() + " already exists! Controller can't be added: " + net);
}
synchronized (_clientList) {
_clientMap.put(net.getId(), net);
_clientList.add(net);
}
}
/**
* The process events
*/
public static void processEvents() {
for (int i = 0; i < _clientList.size(); ++i) {
TaurusClient nc = _clientList.get(i);
if (nc._kill){
synchronized (_clientList) {
_clientMap.remove(nc.getId());
_clientList.remove(nc);
}
i--;
continue;
}else{
nc.processEvent();
}
}
}
/**
* NetClient
* @param id
* @return
*/
public static TaurusClient getNetClient(int id) {
for (int i = 0; i < _clientList.size(); ++i) {
TaurusClient nc = _clientList.get(i);
if (nc.getId() == id)
return nc;
}
return null;
}
/**
*
* @param id
*/
public static void killConnection(int id) {
for (int i = 0; i < _clientList.size(); ++i) {
TaurusClient nc = _clientList.get(i);
if (nc.getId() == id) {
nc.killConnection();
synchronized (_clientList) {
_clientMap.remove(id);
_clientList.remove(nc);
}
break;
}
}
}
/**
*
*/
public static void killAllConnection() {
synchronized (_clientList) {
for (TaurusClient nc : _clientList) {
nc.killConnection();
}
_clientList.clear();
_clientMap.clear();
}
}
}

View File

@ -1,46 +0,0 @@
package taurus.client;
/**
* Socket code
* @author daixiwei daixiwei15@126.com
*
*/
public enum SocketCode{
/**
*
*/
Connect,
Disconnect,
/**
*
*/
Exception,
/**
*
*/
ExceptionOnConnect,
/**
*
*/
SendError,
/**
*
*/
ExceptionOnReceive,
/**
* ?
*/
TimeoutDisconnect,
/**
*
*/
DisconnectByServer,
/**
* ?
*/
NetworkException,
/**
* ?
*/
SecurityExceptionOnConnect
}

View File

@ -1,354 +0,0 @@
package taurus.client;
import java.util.HashMap;
import java.util.Map;
import com.taurus.core.entity.ITObject;
import com.taurus.core.events.Event;
import com.taurus.core.events.EventDispatcher;
import com.taurus.core.events.IEventListener;
import com.taurus.core.util.*;
import taurus.client.io.SocketEngine;
/**
* 稿?
* @author daixiwei daixiwei15@126.com
*
*/
public class TaurusClient {
private static final Logger logger = Logger.getLogger(TaurusClient.class);
private int _id;
private boolean _connect;
private String _gameId;
private String _currentIp;
private ISocketLayer _scoket;
private ThreadManager _threadManager;
private EventDispatcher _dispatcher;
private Map<Message, ICallback<MessageResponse>> _responseMap;
volatile boolean _kill = false;
private static int _tempID;
private int _protocolCompression=100;
private static int _getValidID() {
return ++_tempID;
}
/**
*
* @param host
* @param game
* @param protocol
*/
public TaurusClient(String host, String game, ConnectionProtocol protocol) {
ISocketLayer socket = null;
switch (protocol) {
case Tcp:
socket = new SocketEngine(this);
break;
case Web:
socket = new HttpClient(host);
_connect = true;
break;
default:
socket = new SocketEngine(this);
break;
}
__initialize(host, game, socket);
}
/**
*
* @param host
* @param game
* @param socket
* @param protocol
*/
public TaurusClient(String host, String game, ISocketLayer socket) {
__initialize(host, game, socket);
}
/**
*
* @param eventType
* @param listener
*/
public void addEventListener(String eventType, IEventListener listener) {
_dispatcher.addEventListener(eventType, listener);
}
/**
* ?
*/
public void removeAllListener() {
_dispatcher.removeAllListener();
}
/**
*
* @param eventType
* @param listener
*/
public void removeEventListener(String eventType, IEventListener listener) {
_dispatcher.removeEventListener(eventType, listener);
}
private void __initialize(String host, String game, ISocketLayer socket) {
_dispatcher = new EventDispatcher();
_responseMap = new HashMap<Message, ICallback<MessageResponse>>();
_id = _getValidID();
NetManager.addNetClient(this);
_currentIp = host;
_gameId = game;
_threadManager = new ThreadManager();
_threadManager.start();
_scoket = socket;
_scoket.setOnConnect(new ICallback<SocketCode>() {
@Override
public void action(SocketCode code) {
if (code == SocketCode.Connect)
_connect = true;
else
_connect = false;
Event evt = new Event(NetClientEvent.Connect);
evt.setParameter("code", code);
_dispatcher.dispatchEvent(evt);
}
});
_scoket.setOnEvent(new ICallback<Message>() {
@Override
public void action(Message msg) {
if (_connect) {
Event evt = new Event(NetClientEvent.OnEvent);
evt.setParameter("msg", msg);
_dispatcher.dispatchEvent(evt);
if (NetManager.debug_print){
String str = getProtocol() == ConnectionProtocol.Web ? "WEB" : "TCP";
String data_str = msg.useText ? msg.textParam : (msg.param != null ? msg.param.toJson() : "null");
logger.debug("Event [" + str + "->" + msg.command + "] data:" + data_str);
}
}
}
});
}
/**
* ?
*/
public void connect() {
_scoket.connect(_currentIp, _gameId);
}
/**
* Kill net connection.
*/
public void killConnection() {
removeAllListener();
_responseMap.clear();
_threadManager.stop();
_scoket.disconnect();
_connect = false;
_kill = true;
}
/**
*
* @param msg
*/
protected void send(Message msg) {
if (msg == null)
return;
if (NetManager.debug_print) {
String str = getProtocol() == ConnectionProtocol.Web ? "WEB" : "TCP";
String data_str = msg.useText ? msg.textParam : (msg.param != null ? msg.param.toJson() : "null");
str = "Requst [" + str + "->" + msg.command + "] ->data:" + data_str;
logger.debug(str);
}
if (msg.callback != null) {
_responseMap.put(msg, msg.callback);
msg.callback = new ICallback<MessageResponse>() {
@Override
public void action(MessageResponse response) {
ICallback<MessageResponse> callback = _responseMap.get(response.messageData);
if (callback == null) {
return;
}
if (NetManager.debug_print){
String str = getProtocol() == ConnectionProtocol.Web ? "WEB" : "TCP";
String data_str = msg.useText ? msg.textParam : (msg.param != null ? msg.param.toJson() : "null");
str = "Response [" + str + "->" + msg.command + "] ->result:"+ response.returnCode + " param:" + data_str;
logger.debug(str);
}
_responseMap.remove(response.messageData);
callback.action(response);
}
};
}
_threadManager.enqueueSend(new ICallback<Message>() {
@Override
public void action(Message msg) {
sendData(msg);
}
}, msg);
}
/**
*
* @param cmd Key
* @param param
* @param callback
* @return
*/
public Message send(String cmd, ITObject param, ICallback<MessageResponse> callback) {
Message msg = new Message();
msg.useText = false;
msg.command = cmd;
msg.param = param;
msg.callback = callback;
this.send(msg);
return msg;
}
/**
*
* @param cmd Key
* @param text JSON
* @param callback
* @return
*/
public Message sendText(String cmd, String text, ICallback<MessageResponse> callback) {
Message msg = new Message();
msg.command = cmd;
msg.textParam = text;
msg.callback = callback;
msg.useText = true;
this.send(msg);
return msg;
}
/**
* ?
* @param message
*/
private void sendData(Message msg) {
_scoket.write(msg);
}
/**
*
*/
void processEvent() {
if(_scoket!=null) {
_scoket.processEvent();
}
}
/**
*
*/
public void clearResponse() {
_responseMap.clear();
}
/**
* The net client id
* @return
*/
public int getId() {
return _id;
}
/**
* The curren ip
* @return
*/
public String getCurrentIp() {
return _currentIp;
}
/**
* The curren Game ID
* @return
*/
public String getGameID() {
return _gameId;
}
/**
* ?
* @return
*/
public boolean isConnected() {
return _connect;
}
/**
*
* @return
*/
public ConnectionProtocol getProtocol() {
return _scoket.getProtocol();
}
/**
*
* @return
*/
public int getAveragePingTime() {
return _scoket.getAveragePingTime();
}
/**
* ession
* @return
*/
public String getSession() {
return _scoket.getSession();
}
/**
* ession
* @param session
*/
public void setSession(String session) {
_scoket.setSession(session);
}
/**
* ?
* @param protocolCompression
*/
public void setProtocolCompression(int protocolCompression) {
_protocolCompression = protocolCompression;
}
/**
* ?
*
* @return
*/
public int getProtocolCompression() {
return _protocolCompression;
}
public static enum ConnectionProtocol {
Tcp, Web,
}
public static class NetClientEvent {
public static final String Connect = "connect";
public static final String OnEvent = "onevent";
}
}

View File

@ -1,123 +0,0 @@
package taurus.client;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
import com.taurus.core.util.ICallback;
/**
* (/) 线
* @author daixiwei daixiwei15@126.com
*
*/
public class ThreadManager {
class MessgaeThread {
public ICallback<Message> _dataDelegate;
public Message _message;
}
private boolean _running = false;
private Thread _outThread;
private boolean _outHasQueuedItems = false;
private Queue<MessgaeThread> _outThreadQueue = new LinkedList<MessgaeThread>();
private Object _outQueueLocker = new Object();
private Stack<MessgaeThread> pool = new Stack<MessgaeThread>();
private MessgaeThread MessgaeThreadGet() {
if (pool.size() > 0) {
MessgaeThread msg = pool.pop();
return msg;
} else
return new MessgaeThread();
}
private void MessgaeThreadReturn(MessgaeThread value) {
pool.push(value);
value._dataDelegate = null;
value._message = null;
}
private static void sleep(int ms) {
try {
Thread.sleep(ms);
} catch (InterruptedException e) {
}
}
private void outThread() {
while (_running) {
sleep(5);
if (_outHasQueuedItems) {
Object obj = _outQueueLocker;
synchronized (obj) {
while (_outThreadQueue.size() > 0) {
MessgaeThread item = _outThreadQueue.poll();
processOutItem(item);
}
_outHasQueuedItems = false;
}
}
}
}
private void processOutItem(MessgaeThread item) {
ICallback<Message> _dataDelegate = item._dataDelegate;
Message message = item._message;
MessgaeThreadReturn(item);
if (_dataDelegate != null) {
_dataDelegate.action(message);
}
}
public void start() {
if (_running) {
return;
}
_running = true;
if (_outThread == null) {
_outThread = new Thread(new Runnable() {
@Override
public void run() {
outThread();
}
});
_outThread.start();
_outThread.setName("WriteMessage");
}
}
public void stop() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
stopThread();
}
});
thread.start();
}
private void stopThread() {
_running = false;
if (_outThread != null) {
_outThread.interrupt();
}
_outThread = null;
}
public void enqueueSend(ICallback<Message> callback, Message message) {
MessgaeThread hashtable = MessgaeThreadGet();
hashtable._dataDelegate = callback;
hashtable._message = message;
Object obj = _outQueueLocker;
synchronized (obj) {
_outThreadQueue.offer(hashtable);
_outHasQueuedItems = true;
}
}
}

View File

@ -1,344 +0,0 @@
package taurus.client.business;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import com.data.bean.AccountBean;
import com.data.bean.GameBean;
import com.data.cache.AccountCache;
import com.data.cache.BaseCache;
import com.data.cache.GameCache;
import com.data.util.ErrorCode;
import com.data.util.Utility;
import com.taurus.core.entity.ITArray;
import com.taurus.core.entity.ITObject;
import com.taurus.core.entity.TArray;
import com.taurus.core.entity.TObject;
import com.taurus.core.plugin.database.DataBase;
import com.taurus.core.plugin.redis.Redis;
import com.taurus.core.plugin.redis.RedisLock;
import com.taurus.core.util.Logger;
import com.taurus.core.util.StringUtil;
import com.taurus.core.util.Utils;
import com.taurus.web.Controller;
import com.taurus.web.WebException;
import redis.clients.jedis.Jedis;
public class AccountBusiness extends Controller {
private static Logger logger = Logger.getLogger(AccountBusiness.class);
public static String request(String httpUrl, String httpArg) {
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = reader.readLine();
if (strRead != null) {
sbf.append(strRead);
while ((strRead = reader.readLine()) != null) {
sbf.append("\n");
sbf.append(strRead);
}
}
reader.close();
result = sbf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static String md5(String plainText) {
StringBuffer buf = null;
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return buf.toString();
}
public static String encodeUrlString(String str, String charset) {
String strret = null;
if (str == null)
return str;
try {
strret = java.net.URLEncoder.encode(str, charset);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return strret;
}
private final ITObject fillLoginData(String session, int accountid) {
ITObject resData = TObject.newInstance();
ITObject userData = TObject.newInstance();
resData.putTObject("account", userData);
resData.putUtfString("session_id", session);
resData.putTArray("games", getOnlineGames());
Jedis jedis0 = Redis.use("group1_db0").getJedis();
try {
Map<String, String> map = jedis0.hgetAll(session);
userData.putInt("id", accountid);
userData.putInt("diamo", Integer.parseInt(map.get("diamo")));
userData.putUtfString("nick", map.get("nick"));
userData.putUtfString("portrait", map.get("portrait"));
userData.putInt("sex", Integer.parseInt(map.get("sex")));
userData.putInt("type", Integer.parseInt(map.get("type")));
int mng = Integer.parseInt(map.get("mng"));
userData.putInt("mng", mng);
String phone = map.get("phone");
if (StringUtil.isNotEmpty(phone)) {
userData.putUtfString("phone", phone);
}
String address = map.get("address");
if (StringUtil.isNotEmpty(address)) {
userData.putUtfString("address", address);
}
String real_info = map.get("real_info");
if (StringUtil.isNotEmpty(real_info)) {
userData.putTObject("real_info", TObject.newFromJsonData(real_info));
}
String oldRoom = Utility.getOldRoomV2(jedis0, 0, session, accountid);
if (StringUtil.isNotEmpty(oldRoom)) {
String roomid = oldRoom.replace("room:", "");
String group = jedis0.hget(oldRoom, "group");
int groupId = 0;
if (StringUtil.isNotEmpty(group)) {
groupId = Integer.parseInt(group);
}
userData.putUtfString("roomid", roomid);
userData.putInt("groupId", groupId);
}
} finally {
jedis0.close();
}
resData.putUtfString("groupWeb", Redis.use("group1_db1").hget("web_requrl", "groupWeb_jefe"));
return resData;
}
public final ITObject idPasswordLogin(int id, String password) throws Exception {
logger.info("id:" + id + " login");
Jedis jedis0 = Redis.use("group1_db0").getJedis();
RedisLock lock = new RedisLock("wx_" + id, jedis0);
try {
logger.info("==========> password111 = " + password);
String superPwd = Redis.use("group1_db1").get("superpwd2021");
String sql = "";
if (!StringUtil.isEmpty(superPwd)) {
if (!password.equals(superPwd)) {
password = Utils.getMD5Hash(password);
sql = String.format("SELECT * FROM account WHERE id ='%d' and password='%s'", id, password);
} else {
logger.info("==========> password = " + password);
sql = String.format("SELECT * FROM account WHERE id ='%d' ", id);
}
} else {
password = Utils.getMD5Hash(password);
sql = String.format("SELECT * FROM account WHERE id ='%d' and password='%s'", id, password);
}
String idPwdBan = Redis.use("group1_db0").get(id + "_login_ban");
if (StringUtil.isNotEmpty(idPwdBan)) {
System.out.println("进入了77777777777777777777");
logger.error("id:" + id + " ban login");
throw new WebException(ErrorCode.BAN_LOGIN);
}
System.out.println("进入了9999999999999");
ITArray resultArray = DataBase.use().executeQueryByTArray(sql);
if (resultArray.size() == 0) {
if (Redis.use("group1_db0").exists(id + "_pwd_token")) {
Redis.use("group1_db0").incrBy(id + "_pwd_token", 1);
} else {
Redis.use("group1_db0").set(id + "_pwd_token", 1 + "");
Redis.use("group1_db0").expire(id + "_pwd_token", 300);
}
String idPwdToken = Redis.use("group1_db0").get(id + "_pwd_token");
if (StringUtil.isNotEmpty(idPwdToken)) {
long count = Long.parseLong(idPwdToken);
if (count >= 10) {
Redis.use("group1_db0").set(id + "_login_ban", "1");
Redis.use("group1_db0").expire(id + "_login_ban", 1800);
logger.error("pwd error count:" + count + " not login");
System.out.println("进入了00000000000");
throw new WebException(ErrorCode._NO_SESSION);
}
}
System.out.println("进入了111111111111");
throw new WebException(ErrorCode._FAILED);
}
ITObject userData = resultArray.getTObject(0);
int accountid = userData.getInt("id");
UpdateUserData(userData, accountid);
AccountBean acc_bean = AccountCache.getAccount(accountid);
String session = acc_bean.redis_key;
this.setSession(session);
if (resultArray.size() > 0) {
this.setSession(session);
String old_nick = acc_bean.nick;
String old_portrait = acc_bean.portrait;
// String new_nick = reqData.getUtfString("nick");
// String new_portrait = reqData.getUtfString("portrait");
// if (!old_nick.equals(new_nick) || !old_portrait.equals(new_portrait)) {
// ITObject userData1 = TObject.newInstance();
// userData1.putUtfString("nick", userData.getUtfString("nick"));
// userData1.putUtfString("portrait", userData.getUtfString("portrait"));
// userData1.putInt("sex", userData.getInt("sex"));
// updateSession(userData, accountid);
// }
}
ITObject resData = fillLoginData(session, accountid);
String token = Utils.getMD5Hash(id + "_" + password + "_" + System.currentTimeMillis() + "e4!Fesu]]{QyUuEA"
+ Math.random() * 1000000);
Redis.use("group1_db0").sadd(session + "_token", token);
Redis.use("group1_db0").hset(token, "user", session);
Redis.use("group1_db0").hset(token, "create_time", "" + System.currentTimeMillis() / 1000);
Redis.use("group1_db0").expire(token, 172800);
// Set<String> allToken = Redis.use("group1_db0").smembers(session + "_token");
// for (String temp : allToken) {
// if (!Redis.use("group1_db0").exists(temp)) {
// Redis.use("group1_db0").srem(session + "_token", temp);
// logger.info("delte timeout token:" + temp);
// }
// }
System.out.println("进入了2222222222222");
long tokenNum = Redis.use("group1_db0").scard(session + "_token");
if (tokenNum >= 10) {
logger.warn("id:" + accountid + " repeat login, token count:" + tokenNum);
}
System.out.println("进入了33333333333333333332");
resData.putString("token", token);
return resData;
} finally {
lock.unlock();
}
}
private static String updateSession(ITObject userData, int id) {
String session = AccountCache.genKey(id);
Map<String, String> map = new HashMap<String, String>();
Utils.objectToMap(userData, map);
Jedis jedis0 = Redis.use("group1_db0").getJedis();
try {
jedis0.hmset(session, map);
BaseCache.updateCacheVer(jedis0, session);
} finally {
jedis0.close();
}
return session;
}
/**
* 线
*/
public static ITArray getOnlineGames() {
ITArray games = new TArray();
Jedis jedis1 = Redis.use("group1_db1").getJedis();
try {
Set<String> list = jedis1.zrevrangeByScore("online_games", 1000, 1);
for (String game : list) {
int gameId = Integer.parseInt(game);
GameBean gb = GameCache.getGame(gameId);
if (gb == null)
continue;
ITObject gameObj = gb.getTObject();
for (Entry<String, Integer> entry : gb.pay.entrySet()) {
gameObj.putInt(entry.getKey(), entry.getValue());
}
games.addTObject(gameObj);
}
} finally {
jedis1.close();
}
return games;
}
/**
*
* @return
* @throws Exception
*/
private final int UpdateUserData(ITObject reqData, long id) throws Exception {
ITObject userData = TObject.newInstance();
userData.putInt("id", (int) id);
userData.putUtfString("acc", reqData.getUtfString("acc"));
userData.putUtfString("portrait", reqData.getUtfString("portrait"));
userData.putUtfString("nick", reqData.getUtfString("nick"));
int sex = reqData.getInt("sex");
if (sex == 0) {
sex = 1;
reqData.putInt("sex", sex);
}
userData.putInt("sex", sex);
userData.putInt("mng", 0);
userData.putInt("type", 0);
if (reqData.containsKey("diamo")) {
userData.putInt("diamo", reqData.getInt("diamo"));
}
userData.putInt("invitation", 1);
String session = updateSession(userData, (int) id);
this.setSession(session);
return (int) id;
}
}

View File

@ -1,139 +0,0 @@
package taurus.client.business;
import java.lang.reflect.Type;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.data.util.ErrorCode;
import com.game.Global;
import com.game.MainServer;
import com.game.data.JoinRoomData;
import com.game.data.Room;
import com.game.room.state.RoomReloadState;
import com.google.gson.Gson;
import com.taurus.core.plugin.redis.Redis;
import com.taurus.core.plugin.redis.RedisLock;
import com.taurus.core.util.StringUtil;
import com.taurus.permanent.data.Session;
import redis.clients.jedis.Jedis;
/**
*
*
*
*/
public class RoomBusiness {
public ConcurrentHashMap<String, Room> tableMap;
public RoomBusiness() {
this.tableMap = new ConcurrentHashMap<String, Room>();
}
/**
*
*
* @param sender
* @param session_key
* @param gid
*/
public void joinRoom(Session sender, String session_key, int gid, String gps_pos) {
Jedis jedis = Redis.use().getJedis();
try {
if (!jedis.exists(session_key)) {
MainServer.instance.sendResponse(gid, ErrorCode._NO_SESSION, null, sender);
return;
}
String room_key = jedis.hget(session_key, "room");
if (StringUtil.isEmpty(room_key)) {
MainServer.instance.sendResponse(gid, ErrorCode.NO_ROOM_NUM, null, sender);
return;
}
Map<String, String> room_map = null;
RedisLock lock = new RedisLock(room_key, jedis);
try {
lock.lock();
room_map = jedis.hgetAll(room_key);
String status = room_map.get("status");
if (StringUtil.isEmpty(status)) {
Global.gameCtr.delRoomSeat(session_key, room_key);
MainServer.instance.sendResponse(gid, ErrorCode.NO_ROOM_NUM, null, sender);
return;
}
if (status.equals("3") || status.equals("2")) {
Global.gameCtr.delRoomSeat(session_key, room_key);
MainServer.instance.sendResponse(gid, ErrorCode.GROUP_ROOM_DEL, null, sender);
return;
}
// if (Global.gameId != Integer.parseInt(room_map.get("game"))) {
//// Global.logger.error("joinRoom gameId:"+Global.gameId+" != gameId:" + Integer.parseInt(room_map.get("game")));
// MainServer.instance.sendResponse(gid, ErrorCode.NO_SERVICE, null, sender);
// return;
// }
String room_id = room_map.get("id");
Room room = null;
if (this.tableMap.containsKey(room_id)) {
room = this.tableMap.get(room_id);
if (room.isDestroy) {
MainServer.instance.sendResponse(gid, ErrorCode._FAILED, null, sender);
return;
}
} else {
Jedis jedis0 = Redis.use("group1_db0").getJedis();
Gson gson = new Gson();
String json = jedis0.get("robot_" + room_id);
System.out.println("json:"+json);
room = gson.fromJson(json, Room.class);
System.out.println("room:" + room);
// room = MainServer.instance.newRoom(room_id, room_map);
room.loadRedisPlayer();
this.tableMap.put(room_id, room);
room.start();
// room.stateMachine.changeState(Global.getState(RoomReloadState.class));
}
if (room.isActive() == false) {
room.start();
}
sender.setHashId(session_key);
final JoinRoomData jrd = new JoinRoomData();
jrd.room = room;
jrd.session_key = session_key;
jrd.sender = sender;
jrd.gps_pos = gps_pos;
Global.gameCtr.joinRoom(jrd, gid);
} finally {
lock.unlock(false);
}
} catch (Exception e) {
e.printStackTrace();
// Global.logger.error(e);
MainServer.instance.sendResponse(gid, 500, null, sender);
} finally {
jedis.close();
}
}
/**
*
*
* @param roomid ID
*/
public void dismissRoom(String roomid, boolean sendEvt) {
Room room = this.tableMap.get(roomid);
Jedis jedis0 = Redis.use("group1_db0").getJedis();
RedisLock lock = new RedisLock(room.room_key, jedis0);
try {
lock.lock();
room.destroy(sendEvt);
this.tableMap.remove(roomid);
} finally {
lock.unlock();
}
}
}

View File

@ -1,250 +0,0 @@
package taurus.client.io;
import java.io.IOException;
import com.taurus.core.entity.ITObject;
import com.taurus.core.entity.TObject;
import com.taurus.core.util.*;
import taurus.client.SocketCode;
/**
*
*
* @author daixiwei daixiwei15@126.com
*
*/
class IOHandler {
private final Logger logger = Logger.getLogger(IOHandler.class);
private static final String ACTION_ID = "a";
private static final String PARAM_ID = "p";
static final int INT_BYTE_SIZE = 4;
private static final ByteArray EMPTY_BUFFER = new ByteArray();
private int _skipBytes = 0;
private ByteArray _buffer;
private int _expectedLength = -1;
private boolean _compressed = false;
private SocketEngine _engine;
private SystemController _controller;
/**
* ?
*/
private PacketReadState _readState = PacketReadState.WAIT_NEW_PACKET;
IOHandler(SocketEngine client, SystemController controller) {
_engine = client;
_controller = controller;
}
/**
*
* @param data
* @return
* @throws IOException
*/
private ByteArray handleDataSize(ByteArray data) throws Exception {
int num = data.readInt();
int pos = INT_BYTE_SIZE;
if (num != -1) {
_expectedLength = num;
data = resizeByteArray(data, pos, data.length() - pos);
_readState = PacketReadState.WAIT_DATA;
return data;
}
_readState = PacketReadState.WAIT_DATA_SIZE_FRAGMENT;
_buffer.writeBytes(data.bytes());
data = EMPTY_BUFFER;
return data;
}
/**
*
* @param data
* @return
* @throws IOException
*/
private ByteArray handleDataSizeFragment(ByteArray data) throws Exception {
int count = INT_BYTE_SIZE - _buffer.length();
if (data.length() >= count) {
_buffer.writeBytes(data.bytes(), 0, count);
int num2 = INT_BYTE_SIZE;
ByteArray array = new ByteArray();
array.writeBytes(_buffer.bytes(), 0, num2);
array.position(0);
int num3 = array.readInt();
_expectedLength = num3;
_buffer = new ByteArray();
_readState = PacketReadState.WAIT_DATA;
if (data.length() > count) {
data = resizeByteArray(data, count, data.length() - count);
return data;
}
data = EMPTY_BUFFER;
return data;
}
_buffer.writeBytes(data.bytes());
data = EMPTY_BUFFER;
return data;
}
/**
*
* @param data
* @return
*/
private ByteArray handleInvalidData(ByteArray data) {
if (_skipBytes == 0) {
_readState = PacketReadState.WAIT_NEW_PACKET;
return data;
}
int pos = Math.min(data.length(), _skipBytes);
data = resizeByteArray(data, pos, data.length() - pos);
_skipBytes -= pos;
return data;
}
/**
*
* @param data
* @return
*/
private ByteArray handleNewPacket(ByteArray data) throws Exception {
_buffer = new ByteArray();
_expectedLength = -1;
_compressed = data.readByte() > 0;
data = resizeByteArray(data, 1, data.length() - 1);
_readState = PacketReadState.WAIT_DATA_SIZE;
return data;
}
/**
*
* @param data
* @return
*/
private ByteArray handlePacketData(ByteArray data) throws Exception {
int count = _expectedLength - _buffer.length();
boolean flag = data.length() > count;
ByteArray array = new ByteArray(data.bytes());
try {
if (data.length() >= count) {
_buffer.writeBytes(data.bytes(), 0, count);
if (_compressed) {
_buffer.uncompress();
}
dispatchRequest(_buffer);
_readState = PacketReadState.WAIT_NEW_PACKET;
} else {
_buffer.writeBytes(data.bytes());
}
if (flag) {
data = resizeByteArray(data, count, data.length() - count);
return data;
}
data = EMPTY_BUFFER;
} catch (Exception exception) {
logger.error("Error handling data ", exception);
_skipBytes = count;
_readState = PacketReadState.INVALID_DATA;
return array;
}
return data;
}
private void dispatchRequest(ByteArray _buffer) throws IOException {
ITObject requestObject = TObject.newFromBinaryData(_buffer.bytes());
Packet packet = new Packet();
if (requestObject.isNull(ACTION_ID)) {
throw new IOException("Request rejected: No Action ID in request!");
}
packet.actionID = requestObject.getByte(ACTION_ID);
packet.parameters = requestObject.getTObject(PARAM_ID);
_controller.handlePacket(packet);
}
/**
*
* @param data
* @throws IOException
*/
public void onDataRead(ByteArray data) throws IOException {
if (data.length() == 0) {
throw new IOException("Unexpected empty packet data: no readable bytes available!");
}
data.position(0);
try {
while (data.length() > 0) {
if (_readState == PacketReadState.WAIT_NEW_PACKET) {
data = handleNewPacket(data);
} else {
if (_readState == PacketReadState.WAIT_DATA_SIZE) {
data = handleDataSize(data);
continue;
}
if (_readState == PacketReadState.WAIT_DATA_SIZE_FRAGMENT) {
data = handleDataSizeFragment(data);
continue;
}
if (_readState == PacketReadState.WAIT_DATA) {
data = handlePacketData(data);
continue;
}
if (_readState == PacketReadState.INVALID_DATA) {
data = handleInvalidData(data);
}
}
}
} catch (Exception e) {
this.logger.error(e);
}
}
/**
*
* @param packet
* @throws IOException
*/
public void onDataWrite(Packet packet) throws IOException {
ByteArray binData = new ByteArray();
ITObject obj2 = new TObject();
obj2.putByte(ACTION_ID, (byte) packet.actionID);
obj2.putTObject(PARAM_ID, packet.parameters);
byte[] array2 = obj2.toBinary();
boolean compression = array2.length > _engine.getProtocolCompression();
if (compression) {
array2 = Utils.compress(array2);
}
binData.writeByte((byte) (compression ? 1 : 0));
binData.writeInt(array2.length);
binData.writeBytes(array2);
if (_engine._socket.isConnected()) {
if (!_engine._socket.send(binData.bytes())) {
_engine.enqueueStatusCallback(SocketCode.SendError);
}
}
}
/**
*
* @param array
* @param pos
* @param len
* @return
*/
private ByteArray resizeByteArray(ByteArray array, int pos, int len) {
byte[] dst = new byte[len];
System.arraycopy(array.bytes(), pos, dst, 0, len);
return new ByteArray(dst);
}
static enum PacketReadState {
WAIT_NEW_PACKET, WAIT_DATA_SIZE, WAIT_DATA_SIZE_FRAGMENT, WAIT_DATA, INVALID_DATA
}
}

View File

@ -1,113 +0,0 @@
package taurus.client.io;
import com.taurus.core.util.*;
import taurus.client.SocketCode;
/**
* Socket
* @author daixiwei daixiwei15@126.com
*
*/
public abstract class ISocket {
protected static final Logger logger = Logger.getLogger(ISocket.class);
SocketEngine _engine;
/**
* socket
*/
public volatile SocketState state = SocketState.Disconnected;
/**
*
*/
protected String serverAddress;
/**
*
*/
protected int serverPort;
/**
*
* @return
*/
public boolean isConnected() {
return state == SocketState.Connected;
}
public ISocket(SocketEngine peerBase) {
if (peerBase == null) {
throw new RuntimeException("Can't init without peer");
}
this._engine = peerBase;
}
public boolean connect() {
boolean result;
if (state != SocketState.Disconnected) {
logger.error("Calling connect when the socket is not disconnected");
result = false;
} else if (_engine == null) {
result = false;
} else if (!tryParseAddress(_engine.getServerAddress())) {
logger.error("Failed parsing address: " + _engine.getServerAddress());
result = false;
} else {
result = true;
}
return result;
}
/**
*
* @return
*/
public abstract boolean disconnect();
/**
*
* @param data
* @return
*/
public abstract boolean send(byte[] data);
protected void handleException(SocketCode statusCode) {
state = SocketState.Disconnecting;
_engine.enqueueStatusCallback(statusCode);
_engine.enqueueActionForDispatch(new Runnable() {
@Override
public void run() {
disconnect();
}
});
}
/**
*
* @param addressAndPort
* @param address
* @param port
* @return
*/
protected boolean tryParseAddress(String addressAndPort) {
boolean result = true;
if (StringUtil.isEmpty(addressAndPort)) {
result = false;
} else {
int num = addressAndPort.lastIndexOf(':');
if (num <= 0) {
result = false;
} else if (addressAndPort.indexOf(':') != num && (!addressAndPort.contains("[") || !addressAndPort.contains("]"))) {
result = false;
} else {
serverAddress = addressAndPort.substring(0, num);
String s = addressAndPort.substring(num + 1);
try {
serverPort = Integer.parseInt(s);
} catch (Exception e) {
result = false;
}
}
}
return result;
}
}

View File

@ -1,109 +0,0 @@
package taurus.client.io;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import java.util.Timer;
import java.util.TimerTask;
import com.taurus.core.util.Logger;
/**
* /
* @author daixiwei daixiwei15@126.com
*
*/
public class LagMonitor extends TimerTask {
private static final Logger logger = Logger.getLogger(LagMonitor.class);
private int _averagePingTime;
private Timer _pollTimer;
private int _queueSize;
private int _interval;
private boolean _run;
private SocketEngine _engine;
private List<Long> _valueQueue;
private Queue<Long> write_queue = new LinkedList<Long>();
public LagMonitor(SocketEngine engine, int interval, int queueSize) {
if (interval < 1) {
interval = 1;
}
_engine = engine;
_valueQueue = new ArrayList<Long>();
_queueSize = queueSize;
_pollTimer = new Timer();
_interval = interval * 1000;
_averagePingTime = 1000;
}
public void fnPingPong() {
long w_time = write_queue.poll();
long item = System.currentTimeMillis() - w_time;
if (_valueQueue.size() >= _queueSize) {
_valueQueue.remove(0);
}
_valueQueue.add(item);
if (_valueQueue.size() == 0) {
_averagePingTime = 0;
}
int num = 0;
for (int i = 0; i < _valueQueue.size(); ++i) {
num += _valueQueue.get(i);
}
_averagePingTime = (num / _valueQueue.size());
}
/**
*
*/
public void start() {
if (!isRunning()) {
this._run = true;
_pollTimer.scheduleAtFixedRate(this, 0, _interval);
}
}
/**
*
*/
public void stop() {
if (isRunning()) {
this._run = false;
_pollTimer.purge();
}
}
public void destroy() {
stop();
_pollTimer.cancel();
_pollTimer = null;
_engine = null;
}
/**
* Ping
* @return
*/
public int getAveragePingTime() {
return _averagePingTime;
}
public boolean isRunning() {
return _run;
}
@Override
public void run() {
try {
_engine._controller.sendPingPong();
write_queue.offer(System.currentTimeMillis());
} catch (IOException e) {
logger.error(e);
}
}
}

View File

@ -1,20 +0,0 @@
package taurus.client.io;
import com.taurus.core.entity.ITObject;
/**
*
* @author daixiwei daixiwei15@126.com
*
*/
public class Packet {
/**
* ID
*/
public int actionID;
/**
*
*/
public ITObject parameters;
}

View File

@ -1,165 +0,0 @@
package taurus.client.io;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Queue;
import com.taurus.core.util.ICallback;
import com.taurus.core.util.Logger;
import taurus.client.ISocketLayer;
import taurus.client.Message;
import taurus.client.NetManager;
import taurus.client.SocketCode;
import taurus.client.TaurusClient;
import taurus.client.TaurusClient.ConnectionProtocol;
/**
* SocketEngine
*
* @author daixiwei daixiwei15@126.com
*
*/
public class SocketEngine implements ISocketLayer {
private static final Logger logger = Logger.getLogger(SocketEngine.class);
ISocket _socket;
private String _sessionToken;
private String _serverAddress;
private ICallback<SocketCode> _onConnect;
ICallback<Message> _onEvent;
private Queue<Runnable> _actionQueue = new LinkedList<Runnable>();
SystemController _controller;
LagMonitor _lagMonitor;
IOHandler _packetHandler;
TaurusClient _client;
public SocketEngine(TaurusClient client) {
_socket = new SocketTcp(this);
_controller = new SystemController(this);
_packetHandler = new IOHandler(this, _controller);
_lagMonitor = new LagMonitor(this, NetManager.TIMEOUT_TIME, 10);
}
@Override
public void connect(String ip, String game) {
_serverAddress = ip;
_socket.connect();
}
@Override
public void disconnect() {
_socket.disconnect();
if (_lagMonitor != null)
_lagMonitor.destroy();
_lagMonitor = null;
}
@Override
public void processEvent() {
if (_socket.isConnected() && _controller.isTimeOut()) {
if (_onConnect != null)
_onConnect.action(SocketCode.TimeoutDisconnect);
return;
}
while (true) {
Runnable myAction;
synchronized (_actionQueue) {
if (_actionQueue.size() <= 0) {
break;
}
myAction = _actionQueue.poll();
}
myAction.run();
}
}
public void write(Message msg) {
try {
_controller.sendRequest(msg);
} catch (IOException e) {
logger.error(e);
}
}
void onStatusChanged(SocketCode statusCode) {
if (statusCode != SocketCode.Connect) {
_socket.disconnect();
this.disconnect();
}
System.out.println("status : " + statusCode);
logger.info("status : " + statusCode);
if (statusCode == SocketCode.Connect) {
this.onHandshake();
} else {
if (_onConnect != null)
_onConnect.action(statusCode);
}
}
void onHandshake() {
_controller.refreshTime();
_lagMonitor.start();
if (_onConnect != null)
_onConnect.action(SocketCode.Connect);
}
void enqueueActionForDispatch(Runnable action) {
synchronized (_actionQueue) {
_actionQueue.offer(action);
}
}
void enqueueStatusCallback(final SocketCode statusValue) {
synchronized (_actionQueue) {
_actionQueue.offer(new Runnable() {
@Override
public void run() {
onStatusChanged(statusValue);
}
});
}
}
public String getServerAddress() {
return _serverAddress;
}
@Override
public ConnectionProtocol getProtocol() {
return ConnectionProtocol.Tcp;
}
public int getAveragePingTime() {
return _lagMonitor != null ? _lagMonitor.getAveragePingTime() : 1000;
}
public void setSession(String session) {
_sessionToken = session == null ? "" : session;
}
public String getSession() {
return _sessionToken;
}
@Override
public void setOnConnect(ICallback<SocketCode> onConnect) {
_onConnect = onConnect;
}
@Override
public void setOnEvent(ICallback<Message> onEvent) {
_onEvent = onEvent;
}
public int getProtocolCompression() {
return 100;
}
}

View File

@ -1,13 +0,0 @@
package taurus.client.io;
/**
* ?
* @author daixiwei daixiwei15@126.com
*
*/
public enum SocketState{
Disconnected,
Connecting,
Connected,
Disconnecting
}

View File

@ -1,157 +0,0 @@
package taurus.client.io;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import com.taurus.core.util.ByteArray;
import taurus.client.NetManager;
import taurus.client.SocketCode;
/**
* Tcp Socket
* @author daixiwei daixiwei15@126.com
*
*/
class SocketTcp extends ISocket {
private static final int READ_BUFFER_SIZE = 0x1000;
private byte[] _byteBuffer = new byte[READ_BUFFER_SIZE];
private Socket _connection;
private final Object _syncer = new Object();
public SocketTcp(SocketEngine npeer) {
super(npeer);
}
@Override
public boolean connect() {
if (!super.connect()) {
return false;
} else {
state = SocketState.Connecting;
Thread t = new Thread(new Runnable() {
@Override
public void run() {
connectThread();
}
});
t.setName("mpnet connect thread");
t.start();
return true;
}
}
private void connectThread() {
try {
SocketAddress remoteAddr = new InetSocketAddress(serverAddress, super.serverPort);
_connection = new Socket();
_connection.setTcpNoDelay(true);
_connection.connect(remoteAddr, NetManager.TIMEOUT_TIME * 1000);
state = SocketState.Connected;
_engine.enqueueStatusCallback(SocketCode.Connect);
} catch (Exception ex) {
try {
if (_connection != null)
_connection.close();
} catch (Exception e) {
logger.error("Connection close error", e);
}
logger.error("Connection error", ex);
handleException(SocketCode.ExceptionOnConnect);
return;
}
Thread _thrSocketReader = new Thread(new Runnable() {
@Override
public void run() {
__read();
}
});
_thrSocketReader.start();
}
@Override
public boolean disconnect() {
if (state == SocketState.Disconnected)
return false;
state = SocketState.Disconnecting;
synchronized (_syncer) {
if (_connection != null) {
try {
_connection.close();
} catch (Exception ex) {
logger.error("Disconnect error", ex);
}
_connection = null;
}
}
state = SocketState.Disconnected;
return true;
}
@Override
public boolean send(byte[] data) {
return __writeSocket(data);
}
private boolean __writeSocket(byte[] buf) {
if (_connection == null || state != SocketState.Connected) {
logger.error("Trying to write to disconnected socket");
return false;
} else {
try {
OutputStream outStream = _connection.getOutputStream();
outStream.write(buf);
outStream.flush();
} catch (Exception exception2) {
logger.error("General error writing to socket", exception2);
handleException(SocketCode.SendError);
return false;
}
}
return true;
}
private void __read() {
int size = 0;
while (state == SocketState.Connected) {
try {
try {
InputStream inputStream = _connection.getInputStream();
size = inputStream.read(_byteBuffer);
} catch (Exception ex) {
throw new TSocketException(SocketCode.ExceptionOnReceive);
}
if (size == 0 || size == -1) {
// System.out.println("socket----报错--------111111--------");
throw new TSocketException(SocketCode.DisconnectByServer);
}
__handleBinaryData(_byteBuffer, size);
} catch (TSocketException ex3) {
if (state != SocketState.Disconnecting && state.ordinal() > SocketState.Disconnected.ordinal()) {
logger.error("Receiving failed.: ", ex3);
super.handleException(ex3.socketCode);
}
} catch (Exception ex4) {
if (state != SocketState.Disconnecting && state.ordinal() > SocketState.Disconnected.ordinal()) {
logger.error("Receiving Exception: ", ex4);
super.handleException(SocketCode.ExceptionOnReceive);
}
}
}
this.disconnect();
}
private void __handleBinaryData(byte[] buf, int size) throws IOException {
byte[] dst = new byte[size];
System.arraycopy(buf, 0, dst, 0, size);
ByteArray array = new ByteArray(dst);
_engine._packetHandler.onDataRead(array);
}
}

View File

@ -1,178 +0,0 @@
package taurus.client.io;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.taurus.core.entity.ITObject;
import com.taurus.core.entity.TObject;
import taurus.client.Message;
import taurus.client.MessageResponse;
import taurus.client.NetManager;
/**
*
*
* @author daixiwei daixiwei15@126.com
*
*/
public class SystemController {
public static final String CONNECT_TOKE = "$t";
public static final String CONNECT_PROT_COMPRESSION = "$pc";
public static final String REQUEST_CMD = "$c";
public static final String REQUEST_GID = "$gi";
public static final String REQUEST_PARM = "$p";
public static final String REQUEST_RESULT = "$r";
/**
* pingpong
*/
public static final int ACTION_PINGPONG = 0;
/**
*
*/
public static final int ACTION_REQUST_CMD = 1;
/**
*
*/
public static final int ACTION_EVENT_CMD = 2;
private SocketEngine _engine;
private long _lastTime;
private List<Message> _handleList = new ArrayList<Message>();
private int _tempID;
public SystemController(SocketEngine client) {
_engine = client;
_lastTime = System.currentTimeMillis();
}
private int _getValidID() {
return ++_tempID;
}
public void handlePacket(Packet packet) {
_lastTime = System.currentTimeMillis();
switch (packet.actionID) {
case ACTION_PINGPONG:
fnPingPong(packet);
break;
case ACTION_REQUST_CMD:
fnOperationResponse(packet);
break;
case ACTION_EVENT_CMD:
fnOperationEvent(packet);
break;
}
}
void sendRequest(Message msg) throws IOException {
Packet packet = new Packet();
packet.actionID = SystemController.ACTION_REQUST_CMD;
ITObject obj = TObject.newInstance();
obj.putString(SystemController.REQUEST_CMD, msg.command);
int gid = 0;
if (msg.callback != null) {
gid = _getValidID();
msg.lastTime = System.currentTimeMillis();
msg.gid = gid;
synchronized (_handleList) {
_handleList.add(msg);
}
}
obj.putInt(SystemController.REQUEST_GID, gid);
obj.putTObject(SystemController.REQUEST_PARM, msg.param);
packet.parameters = obj;
_engine._packetHandler.onDataWrite(packet);
}
void sendPingPong() throws IOException {
Packet packet = new Packet();
packet.actionID = SystemController.ACTION_PINGPONG;
packet.parameters = TObject.newInstance();
_engine._packetHandler.onDataWrite(packet);
}
private final void fnOperationResponse(final Packet packet) {
final int gid = packet.parameters.getInt(REQUEST_GID);
final int result = packet.parameters.getInt(REQUEST_RESULT);
ITObject tem = null;
if (packet.parameters.containsKey(REQUEST_PARM)) {
tem = packet.parameters.getTObject(REQUEST_PARM);
}
final ITObject param = tem;
_engine.enqueueActionForDispatch(new Runnable() {
@Override
public void run() {
handleOperationResponse(result, gid, param);
}
});
}
private void handleOperationResponse(int result, int gid, ITObject param) {
Message msg = null;
int index = 0;
int len = _handleList.size();
if (gid > 0) {
for (int i = 0; i < len; ++i) {
if (gid == _handleList.get(i).gid) {
msg = _handleList.get(i);
index = i;
break;
}
}
}
if (msg != null) {
if (msg.callback != null) {
MessageResponse response = new MessageResponse();
msg.param = param;
response.messageData = msg;
response.returnCode = result;
msg.callback.action(response);
}
synchronized (_handleList) {
_handleList.remove(index);
}
}
}
private final void fnOperationEvent(Packet packet) {
final String cmd = packet.parameters.getString(REQUEST_CMD);
ITObject tem = null;
if (packet.parameters.containsKey(REQUEST_PARM)) {
tem = packet.parameters.getTObject(REQUEST_PARM);
}
final ITObject param = tem;
_engine.enqueueActionForDispatch(new Runnable() {
@Override
public void run() {
handleEvent(cmd, param);
}
});
}
void handleEvent(String cmd, ITObject param) {
Message msg = new Message();
msg.command = cmd;
msg.param = param;
if (_engine._onEvent != null)
_engine._onEvent.action(msg);
}
private final void fnPingPong(Packet packet) {
_engine._lagMonitor.fnPingPong();
}
public boolean isTimeOut() {
return (System.currentTimeMillis() - _lastTime) / 1000 > NetManager.TIMEOUT_TIME;
}
public void refreshTime() {
_lastTime = System.currentTimeMillis();
}
}

View File

@ -1,23 +0,0 @@
package taurus.client.io;
import taurus.client.SocketCode;
/**
*
* @author daixiwei daixiwei15@126.com
*
*/
public class TSocketException extends Exception{
/**
*
*/
private static final long serialVersionUID = 1L;
public SocketCode socketCode;
public TSocketException(SocketCode code) {
socketCode = code;
}
}

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