From 74d0d4c98981f839e09bfb4a9fb6e978d08225d3 Mon Sep 17 00:00:00 2001 From: zhouwei <849588297@qq.com> Date: Wed, 4 Feb 2026 22:09:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=8B=E7=89=8C=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/robot/mj/EXGameController.java | 23 +++- .../src/main/java/robot/mj/EXMainServer.java | 10 +- .../java/robot/mj/handler/HuNanChangSha.java | 29 +++-- .../robot/mj/network/TaurusTcpListener.java | 113 ++++++++++++++++++ .../classes/robot/mj/EXGameController.class | Bin 12663 -> 13302 bytes .../classes/robot/mj/EXMainServer.class | Bin 7027 -> 4871 bytes .../robot/mj/RobotConnectionManager$3.class | Bin 1084 -> 1084 bytes .../robot/mj/RobotConnectionManager.class | Bin 27689 -> 27302 bytes .../robot/mj/business/AccountBusiness.class | Bin 0 -> 14200 bytes .../robot/mj/handler/HuNanChangSha.class | Bin 26175 -> 26467 bytes .../classes/robot/mj/info/RobotUser.class | Bin 0 -> 4665 bytes .../robot/mj/network/TaurusTcpListener.class | Bin 0 -> 3887 bytes .../classes/taurus/util/ROBOTEventType.class | Bin 0 -> 436 bytes 13 files changed, 153 insertions(+), 22 deletions(-) create mode 100644 robots/majiang/robot_mj_cs/src/main/java/robot/mj/network/TaurusTcpListener.java create mode 100644 robots/majiang/robot_mj_cs/target/classes/robot/mj/business/AccountBusiness.class create mode 100644 robots/majiang/robot_mj_cs/target/classes/robot/mj/info/RobotUser.class create mode 100644 robots/majiang/robot_mj_cs/target/classes/robot/mj/network/TaurusTcpListener.class create mode 100644 robots/majiang/robot_mj_cs/target/classes/taurus/util/ROBOTEventType.class diff --git a/robots/majiang/robot_mj_cs/src/main/java/robot/mj/EXGameController.java b/robots/majiang/robot_mj_cs/src/main/java/robot/mj/EXGameController.java index 70eee00..e8b2e16 100644 --- a/robots/majiang/robot_mj_cs/src/main/java/robot/mj/EXGameController.java +++ b/robots/majiang/robot_mj_cs/src/main/java/robot/mj/EXGameController.java @@ -239,8 +239,14 @@ public class EXGameController extends GameController { //机器人房间映射关系 RobotUser robotUser = getRobotRoomInfo(String.valueOf(robotId)); - - Thread.sleep(5000); + if (robotUser.getRoomId() == null) { + robotUser.setCurrentRoomId(Integer.parseInt(roomId)); + robotUser.setClient(client); + } + System.out.println(roomId); + System.out.println(Integer.parseInt(roomId)); + System.out.println(robotUser.getCurrentRoomId()); + Thread.sleep(2000); params.putString("session","{user}:"+robotId+ "," + robotSession); //发送加入房间请求到game_mj_cs client.send(Config.JOIN_ROOM_CS, params, response -> { @@ -265,6 +271,17 @@ public class EXGameController extends GameController { * 根据机器人ID获取其所在的房间信息 */ public static RobotUser getRobotRoomInfo(String robotId) { + RobotUser robotUser = robotRoomMapping.get(robotId); + if (robotUser ==null && robotUser.getRoomId() == null) { + RobotUser robotUserCopy = new RobotUser(); + robotUserCopy.setRobotId(robotId); + robotUserCopy.setPassword("123456"); + robotUserCopy.setGameHost("8.138.242.190"); + robotUserCopy.setGamePort("6311"); + robotUserCopy.setRobotGroupid("330800"); + robotUserCopy.setRobotPid("10"); + return robotUserCopy; + } return robotRoomMapping.get(robotId); } @@ -282,7 +299,7 @@ public class EXGameController extends GameController { public static TaurusClient getCsMjGameServerConnection(String connecId) { TaurusClient taurusClient = robotConnectionManager.getGameClient(connecId); System.out.println("根据机器人ID和连接ID获取长沙麻将游戏服务器连接 client: = "+taurusClient); - if (taurusClient != null) { + if (taurusClient != null && taurusClient.isConnected()) { log.debug("成功获取游戏服务器连接,connecId: {}", connecId); return taurusClient; } diff --git a/robots/majiang/robot_mj_cs/src/main/java/robot/mj/EXMainServer.java b/robots/majiang/robot_mj_cs/src/main/java/robot/mj/EXMainServer.java index 84713f4..1c832e1 100644 --- a/robots/majiang/robot_mj_cs/src/main/java/robot/mj/EXMainServer.java +++ b/robots/majiang/robot_mj_cs/src/main/java/robot/mj/EXMainServer.java @@ -40,10 +40,9 @@ public class EXMainServer extends MainServer{ startNetEventThread(); // 2. 启动连接检查定时任务 - startConnectionCheckScheduler(); - + //startConnectionCheckScheduler(); //测试 - Jedis jedis2 = Redis.use("group1_db2").getJedis(); + /*Jedis jedis2 = Redis.use("group1_db2").getJedis(); String robotskey = "g{"+330800+"}:play:"+10; Map maprobot = jedis2.hgetAll(robotskey); for(Map.Entry entry : maprobot.entrySet()) { @@ -100,8 +99,7 @@ public class EXMainServer extends MainServer{ } } - }, 0, 5 ,TimeUnit.SECONDS); - + }, 0, 5 ,TimeUnit.SECONDS);*/ //5、干活 log.info("长沙麻将机器人服务器已启动"); log.info("服务器将监听端口 {} 用于接收robot_mgr管理协议", gameSetting.port); @@ -120,7 +118,7 @@ public class EXMainServer extends MainServer{ robotConnectionManager.checkIsConnect(robotUser); } - Thread.sleep(2000); + Thread.sleep(8000); } catch (InterruptedException e) { break; } catch (Exception e) { diff --git a/robots/majiang/robot_mj_cs/src/main/java/robot/mj/handler/HuNanChangSha.java b/robots/majiang/robot_mj_cs/src/main/java/robot/mj/handler/HuNanChangSha.java index 3b24de9..07d2b71 100644 --- a/robots/majiang/robot_mj_cs/src/main/java/robot/mj/handler/HuNanChangSha.java +++ b/robots/majiang/robot_mj_cs/src/main/java/robot/mj/handler/HuNanChangSha.java @@ -1834,6 +1834,7 @@ public class HuNanChangSha { * @return */ public String shanchuchuguopai(ITObject param) { + System.out.println("对面吃碰删除出过的牌组"); if (param == null) { return null; } @@ -1846,23 +1847,25 @@ public class HuNanChangSha { Integer playerid = param.getInt("playerid"); - String sql2 = String.format("SELECT id FROM `account` WHERE jiqiren=9998"); - try { - ITArray robotId2 = DataBase.use().executeQueryByTArray(sql2); - List robotIdsList = new ArrayList<>(); + //Redis中获取机器人ID列表 + List robotIdsList = new ArrayList<>(); - for (int j = 0; j < robotId2.size(); j++) { - robotIdsList.add(robotId2.getTObject(j).getInt("id")); + //Redis中获取当前活跃的机器人连接信息 + try (Jedis jedis = Redis.use("group1_db2").getJedis()) { + //从Redis中获取所有在线的机器人ID + java.util.Set allKeys = jedis.keys("{robot}:*"); + for (String key : allKeys) { + robotIdsList.add(Integer.valueOf(key.replace("{robot}:",""))); } + } - if (!robotIdsList.contains(playerid)) { - if (type == 2 || type == 3 || type == 5 || type == 1) { // 碰,杠 - getChuGuoCardInhand().remove(Integer.valueOf(card)); - } + if (!robotIdsList.contains(playerid)) { + System.out.println("playerid "+playerid); + System.out.println("type "+type); + if (type == 2 || type == 3 || type == 5 || type == 1) { // 碰,杠 + System.out.println("进入对面吃牌 机器人出的牌需要删除这张牌"); + getChuGuoCardInhand().remove(Integer.valueOf(card)); } - - } catch (SQLException e) { - e.printStackTrace(); } return null; diff --git a/robots/majiang/robot_mj_cs/src/main/java/robot/mj/network/TaurusTcpListener.java b/robots/majiang/robot_mj_cs/src/main/java/robot/mj/network/TaurusTcpListener.java new file mode 100644 index 0000000..b1aaa18 --- /dev/null +++ b/robots/majiang/robot_mj_cs/src/main/java/robot/mj/network/TaurusTcpListener.java @@ -0,0 +1,113 @@ +package robot.mj.network; + +import com.robot.MainServer; +import com.taurus.core.entity.ITObject; +import com.taurus.core.entity.TObject; +import com.taurus.core.util.Logger; +import com.taurus.permanent.data.Session; + +import java.util.concurrent.atomic.AtomicInteger; + +/** + * TCP监听器 + */ +public class TaurusTcpListener { + private static final Logger log = Logger.getLogger(TaurusTcpListener.class); + + private AtomicInteger connectionCount = new AtomicInteger(0); + private volatile boolean running = false; + + /** + * 启动TCP监听 + */ + public void start() { + if (running) { + log.warn("TCP监听已在运行中"); + return; + } + + try { + running = true; + log.info("基于Taurus框架的TCP监听已启动"); + + + } catch (Exception e) { + log.error("启动Taurus TCP监听失败", e); + } + } + + /** + * 停止TCP监听 + */ + public void stop() { + if (!running) { + return; + } + + try { + running = false; + log.info("Taurus TCP监听已停止"); + } catch (Exception e) { + log.error("停止Taurus TCP监听时发生错误", e); + } + } + + /** + * 处理新连接的欢迎消息 + */ + public void sendWelcomeMessage(Session session) { + try { + ITObject welcomeMsg = TObject.newInstance(); + welcomeMsg.putString("type", "welcome"); + welcomeMsg.putString("message", "连接到长沙麻将机器人服务器"); + welcomeMsg.putInt("server_id", 7701); + welcomeMsg.putLong("timestamp", System.currentTimeMillis()); + + MainServer.instance.sendResponse(0, 0, welcomeMsg, session); + + log.debug("已发送欢迎消息 - SessionId: {}", session.getId()); + + } catch (Exception e) { + log.error("发送欢迎消息失败", e); + } + } + + /** + * 处理客户端消息的通用方法 + */ + public void processAndRespond(Session session, ITObject requestData, int gid) { + try { + + ITObject response = TObject.newInstance(); + response.putString("type", "response"); + response.putTObject("original_data", requestData); + response.putBoolean("processed", true); + response.putLong("timestamp", System.currentTimeMillis()); + + //发送响应 + MainServer.instance.sendResponse(gid, 0, response, session); + + log.info("已发送响应 - SessionId: {}", session.getId()); + + } catch (Exception e) { + log.error("处理客户端消息时发生错误", e); + + //发送错误响应 + ITObject errorResponse = TObject.newInstance(); + errorResponse.putString("type", "error"); + errorResponse.putString("message", "处理请求时发生错误: " + e.getMessage()); + errorResponse.putLong("timestamp", System.currentTimeMillis()); + + MainServer.instance.sendResponse(gid, 1, errorResponse, session); + } + } + + + public boolean isRunning() { + return running; + } + + public int getConnectionCount() { + return connectionCount.get(); + } +} \ No newline at end of file diff --git a/robots/majiang/robot_mj_cs/target/classes/robot/mj/EXGameController.class b/robots/majiang/robot_mj_cs/target/classes/robot/mj/EXGameController.class index 28e0b72f2d4ba67082939f0933ae82d8a99a5758..c3d2168885729b0c04c1e6c125b674337559f392 100644 GIT binary patch delta 4670 zcma)A33OD|8UDUIle{}`ZnjBSCJ+(=7)XYM5Y`}QKuQo$77>st4H6NA1e2iRHnvqn zYpwdKR;^2|lqzVI;DDf@Ed{lrsHiROwOWzdx&g9D|NCZ=a5$cx=8$*)yZ-<8{mZ@K zz})@w<1c=-@2;^W%mVh%cuup>4i#zk zbg_`dn!Q~1W*^OyG)wHNzMB0sOEt?vjIqBfpK{F#yK8`ErRG3~RXWZ=c4V;T5Qjru z6f;+Im~Dr<=)r0$jnLR*PdwRLGE!rg#v3k2@f6KdUA)B_`x$LljIq*bnqzJI1I=-^ zt<@ZFb)2p_!L}1MCuw}_3eqz|ah}P^np0d({JkGJ&f8?-Eb8ZCSg)SFxq2@)Ji!>K&Hl&sZKGkfDfV^0< zNwYbw*`m2r^AeYr@-mmpc)8{k){HAPuX1@c<6&OIABXu9{?vZ1b$Fc}UheXGuF$+e z^G3~|Y2Kvyb8G9(7TGUc+$h8dVYgW6R{Oclg7mEP%ak?F&UgfhcUWuhj3B^^9o}UZ z+-;%WW2IkPUH3Y?&&9R8-{Au;mh(53jt9g1Egy2Y(k{!jpWkV&vhD9RAGYlynyYQQ zM)OhIKBoBx+dgi0K4Dd?out{Sxz76KNjs3xT(7yoice{7w5vDS&(rqvjNP}{;TD(A z@;Qfpw99fG{>jC|w%yv=qNb?ebrM+K3&F?uXYaDKQSKIp+Z=9pr2A~z`+VMeAboen z3xdeuiw^%H0KDs+37Hv9jdL4YrZ?9&jcHu6taYaoQF4jS+{eA%?dGJw4(|6hn?a&=m$%Q9WigHE4i6Z9%Y(#F@8XP@H#;LE{gB~d;h`a; zI`9#Xc&jr?OOEn8!($2tkKqqSk#9Rn8GN7ujtUx;rqYdaWY3X|^6pA!t58Z+pRRipA%H*u{|-Bp26Jyao)y|C_*x{5`04f89ewKOegm~T{( z>glLrqk5?V@7=7^s$NmO4J9>=>Z49FszmiQs-G$qxK=9TUa>l6?doq-xhjxeg*PI* zFfzbSR|@B9pp~ldq_-%$YhaKX>|LK-7+#Se#y#S1GIG+fYF zF|{r5j2h0M0ID2VHE6IbuC~35Vda%o!^#H^8dzRAe1K6S>|k(6Rb{17C;Q8*ss;=j zATuLvPgROEio*ISYM4={lIh;=?B%+K`;8hcoeOh%P8p+46GnV1rq}Q-sQme)j(RO3U&Ky^_xPDAyLrYWRqDA#hjym0_32Guy=&ezOtp{`NNiUkD z&LBGVo!CM5nR6G`pWiZ~-`P@^)S2G8uI~g^s>$A{yw2Xs-EvwtMz?Yjp_kM(HP?@C zXgOhb(pe+=i6z<1^(|wTHZ|2Zv{-}3&l4W{j_-H2AK@)y7A=qov8Au~K(~UZjAqY2 zVZAkAinl`#_nz)nnYB_)P41l5QrEJy*$Z^PWx6XWe0SKxB~4l;*EKg^+SrupS^Tw) z&7#H5+1_MHAtI}7+qkC2rArp1R{IA{UNEoq*6u%I{xqY`QZo!QnPr$EvClA#p=QVn z_ZZAsUQLhP!E=Z{-iJN9c;^*5-pInTs+CwRmrMZpwhW2n+6l~V?kOy)STEz5vJdEmAbN}32OFekWCf6gr?634ViTU0{fXAk3X90~UbyG{xLtOE zD4K~fJcG?h$6e@|l1kuV3!arDD{%v!6DbWlF~pxulbLb&BmN|_pp#NzrLFk0RV&gq zIZyf0c04cUy&$?eA$Sza9lR+24x*}Lw1dAKMlD{Fxop|DLw3B}j90L8JYJRlYe|#6 zuEl%AV%2L#yTvEtBHt2?3?b)r(GV2k9>Ok>(oljs@rFq07>JwjCU(OSTTPqAf+I-^ zL`qpKQp#eHIxMb0@E9I}cJQ`?cbpo$OZjo|9&ik~2&Tqm7_ewEPQ>zl8*bF%VK=&J0geO#1Wqez$*mwKV>W( zS4)(9Dv~2~G-3}vlO5YpkG=jWuVS_k@vNND8J+Pj(GlioaiZ0h7H8#gUR>733755T zB2t?dmmSARnf2nuz860~ikhT5kBLpkvmqRPpKJf!M#q2fbkGmS=_Q>lAB*~SgkuLE zF79i?E-p=Czb%C%T`;7ONWQd(Blfic5vk3&``UoWSch|q5oiZ;48u?Te*k>Z2H?x2 zKY`#i;*c!K&8e-oN$skRngm+5BQI*AX&bOKflEXRCvfRnjEbfuaH`+>GnZLWmM=@- zvOHYwy;nMD#+5(<(`Mvh<_4T$_g!@txYSyAQfgdOElc=)| z)1!KuEOZk1=_=G#hoU+fO5nOxIN2Zb7L;|LCo_4~nKF~<&uD)pnz3aSvZ|d;SUxN2 ztjG0Ro7%zAt;V8%AOW>EW z$n6Q-5qtdjQy!ON1AfGmBP^Fh1R2alSLUIJozO?BRT;ZT>~+OZMlq847$dcBEDQWN zD3ZNJvPy}2<%+>nzs5nXg0a5K8Tb95!6O(e)FLE77EGZUE?exy7*5)Ar^1XUq^o>u zTzejSOT9e)4h^Ty57~Ee>X>`Q2CI9FB%#3n)kI0-etW<#B-*H&-U2+sraYC`&nD)V8y=UJlHaYE2FTbu^ z^LqJ8lqiu$)BiC2ft2Y&v*ou#o$o%$%&3sj@dWCyT^?kqV^@n2_Ald_;~24M`nRJ= z1$T8Y8Wfs-6AcQo2cyA20>72WiA94?A^cFFJ$SsU2lVnU^g+pU{aRt+)%cFG@M`=p zvO!bh0}Tizh4MPtC)Gtu>GGd+GCR_DFi;R#xdFdxh1!Hw5?8-(MeQa$EYc&bSYbia zkJ%*0-Ng4Z3J|gMGDjwrB-P)fmB0Gse?~^(uL!B>YNk3{JbS*3mmS; zR5Slgv6sSDN0=7HhWU5)Ry@sNAO1t}bYrhrv9H2P#WM`GGtF?8@ykCQ+{3dKwmU3g zzZmhF{ItE<;W_MYtPimHFU50{0AAqmLSCdeSaFErP{oU*+kLwgFG&J9Oz|?s;bFxQ zilvGp9ggDV4$F9j;%EcoO2sh_$MUKm$8mg+6IgDBi8ik`%M}hQS*18hakAnyiq|Sm zF<7rN%%&g*zMiP7+W^<;4S-jp*m}R6JjE)=aFlRfM#yK``axjB88=kiWc`I+T zdAphKFemO*yi0Me@!s9$xmwXxyvK<5D$WyqXf#UiGsFF6m~YNLVDmwT5Ak7}kH}s$ z+FamZo|zvdeB;VTvv!Mhj^)2vQo&7&S;5ELH)HxZ587O4bCE5N$$`(f*xeV{5%;*w z**2fBxkQk;AKU$FPf>}MdJGFS=HmhPT&E!Lq~=oWb!R$5+dieajLYSjPm3ze6@13s z<8Hm6Jw|Dyx*e zb*y(U36=y`Yp&s1&2@aKwGx>&{9T<#X_R(*wV?R-N%(q7~TDXD=W&cDIGbkOk0i> zBvM;m4V*NgYRveuv#uRgHnD0<`2>x}tf0ojc*M4}w&JXKBE{X(A;r;Ff)%f=MEvS5 zYBNW*;Z|)W$wOgMR$f~xnMm|fXkc0CVqaEmgvbsY9;tDPBA46fs?kUK3YJ&>xc z_Ev}5N0ZhEd}&s?J0g_otF|)S>7h?#&aAyO^#`fDsJ61)!q{G}FRid$wUzCqMb)5a zPWn6d>vEBMM%vuky!6YMnxn0bR<6cj9ML!=fxtI``G60p<_d}Am~@c2gK+?e1tME`6!9XSXogi7cQ3LY0+7TTd+c;7`%g1ytgrEz}a{PHS!j;qc)7R603||k!nSs znia)*7w5(d2SHQ0@-~g z=Q}|>zvJL$#JzEqheRPxY`!2C{NmKbcu}MnHiObolOKjjl>i1 zcawl5$h~b}+aFm(w^ief`56kCVsOVB&I)>GDEi)6K-D9#+nYJDKN zC|(Z4*I|g9P~M49T*DG16xr)AV`#{(N4Q}n0^A^-aucSZP(A0D4$3FW z4t^~i3Fv4At$3u%{W6ti4zk?(uKmNm@jUF~Bpl#PIKn${l=tEo7ZLISV2MVb=-kO& z^hx=Tk(%za66v>68SrY;ol>PLk?f_q#`zqD&+xe<{RJH1C9{0miZv7NAp6Np{{mmi z?d`^$*oCiPTZv)0C#L+^#_dh<7AYEUk)nw!QY7BeSiF+pM~db5Zbu9{3ejy|nfO|$ znSvRC@{K?-+`eCMV9_du7!u#U+GHg?$fp;4-N?0+AT z6Q(Tg4xTMTiTs)R5&zfw#CG#`sXrF%KkW-gs!j0E)n-p5J7Z1j7CNSRoGQmn^N3r8 znR#n)y(QIhR*fuJUO)rpC3UNo5$9D5h!1|o-l&pZQ6<5Mk{iMn2Dh{yN8W;MrOG6? z(i3dfBVS2TJ@cdy$X@i8jL)mXjRRJp&pKoetw&DM>^gMHuS4HDUns%?mJ)mQ=kOZY`{JxJRJeTZ@u)m?zSGwU}v0)61ENk0oa?I1NcK z?mZ?iEs5bKndSdD`5!h9uOQayWOcSqKuAg*kOx2iE&th_&w(5il`d_TrZr1p4*CzJ CEqh7; diff --git a/robots/majiang/robot_mj_cs/target/classes/robot/mj/EXMainServer.class b/robots/majiang/robot_mj_cs/target/classes/robot/mj/EXMainServer.class index e78cfd8ab70cd3815245b01977b60eb9ea59f651..d3cc1b7075630ea871114ab371c07babae8dcf3d 100644 GIT binary patch delta 2249 zcmZuzX>e0j6#m{znwPx1wrP?sDLc|qo5tG3T19Q4f|Rzb6^#ltZA0loQj?S&0s^8S zvRn~R6cw~A3Z*SwvEZ)YzN3f&qPWcX!ynE#4)xrZ2W1#L^X_`i`Ofm4oBoxzHZ^?W zQcoX%T>K#;4?z>M5aO#QnO5`pc7YKK%~*uRMl9j`r6w%Hav5Q);KwT^JZvQkYmInR zMl>Gd!#X~!w?e=MBc713QARvAN!TnS5nCiM84d&qCyXbJ*ec^GY>Ofz{7>Y%+a>If z@U)4@wqdyugPSCG0jM4SOWK#C>{MMh==a3&RSH*vnnpCt<&g19(Nk zt6V^h?x2K20(1@j8UfbQw*7)ZU^e|RmZOW0jR|efp(^&4QZ16@rWMu{?YZ3D;O0m!94HPwafkfP=+~jwl5cC?t=Zv3Os>3GU)ad>~*bOEU~* zyJZUELrjzKk%Eu$iG)uTe1^{{LIq#oO9fxyYXP=8&wNj2Q>eBfld?5xye|}3q~IHV zmB{+UL|MTtxK+U^e9QXe!Fqg$)9j4wknp{NGx&jBl1Gv!V{jWAZg#k=1LlfD-he0M z4+yaM12vh!hB>))nWg@k8ZRB`YkhP4Y*%zL8)i9a$B#J6Nqml~9cc0iaHW;9vvNGM z#Z~CCaGo{A?H^$Y_$&RP=~QrXw6WGlq=+6sqcb*JS!FWTctbNi4NYD)#M&N*pA=lc zMFn$sb{?d3owMeO_>CpmPDSB&0V%A)mdILc24=HogtMrd06mgRYX2k@9fb?Q41=j?!W0K!VbKmZo3qSs+HwfY*>d_u&8 zX5K>KPDC+9A@YvV0&{CX4i3}<8(_8nKTMch=Q!&Ti*2xDJCd;DDjbJ~6H7QHDvp3s zlo1*)0}n_?v)qe#w=<&?2`#kKsbw&zncbz@8Xl3-Z1ECJ#uW8FEMqFBk-6!lc)3zj zF@sLZ=|sfcBsLTGXo1b3ymNQWy-0Kq%5Zfei6ce|A3@xsBBn>gt{|FmFWf4knY_NA zG&rRmKzItdrpGMI))2DkiZjdD3x~TC$=90Sr<#v=YShdN{8iBOCu#b2qSK&s9Wj$L zX|T$vYm0jj`Y@5oL}as}?JC3eh+&J&`$sdpOfwwcg&}qf?ZWWp{=Z9_A(b@u|9O}$ zb!12(&hy!Vku;B^I7Sjbfep0VNau_sHqj5rW|G)~IIu9)eCrkDXcF_Fk`$`wQz$Vd z5~_9mQOZ$7fIfS!zn^jIvW`!H!Np%!0C8q267mJ@-(RQr``jJZUgY|^a3T#6u#5)iIM z13^vD0vAZdOevVBa=@+C_cAxRLM?nG&(jkR1OA0wg8v_+PSo-gL+Nh3oF{s^L=pss zShKp2-G-=MPy}=57AzvSD>EeWYy=Ls59{Y gG4gPP-h`j=D}JGQ72WffVKvFD!6WoVR*z%NfBmG5h5!Hn literal 7027 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 diff --git a/robots/majiang/robot_mj_cs/target/classes/robot/mj/RobotConnectionManager$3.class b/robots/majiang/robot_mj_cs/target/classes/robot/mj/RobotConnectionManager$3.class index d1f440812a68a1c18a151c8d2e0cbc9c42d98134..d201d23a0c1d599b8343b7462da3451830c3d470 100644 GIT binary patch delta 25 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 diff --git a/robots/majiang/robot_mj_cs/target/classes/robot/mj/business/AccountBusiness.class b/robots/majiang/robot_mj_cs/target/classes/robot/mj/business/AccountBusiness.class new file mode 100644 index 0000000000000000000000000000000000000000..6b467ac2548d2046e227b523082d4c8fa6b764ec GIT binary patch literal 14200 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 literal 0 HcmV?d00001 diff --git a/robots/majiang/robot_mj_cs/target/classes/robot/mj/handler/HuNanChangSha.class b/robots/majiang/robot_mj_cs/target/classes/robot/mj/handler/HuNanChangSha.class index 2be52017199bec449f85484a507a7a5d62a5dbef..9aac05f290f8fce82b9b4eb457e92a12d4201a86 100644 GIT binary patch delta 9791 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 delta 9454 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 diff --git a/robots/majiang/robot_mj_cs/target/classes/robot/mj/info/RobotUser.class b/robots/majiang/robot_mj_cs/target/classes/robot/mj/info/RobotUser.class new file mode 100644 index 0000000000000000000000000000000000000000..0580c9091a8ca506322241d34f4bbc845eb97cf5 GIT binary patch literal 4665 zcmaKv+jA5}6voeNveyhrSV9oFMMbkLmqi6dA&3MB!3AOxu7Wbz49kSwoj5ZKD4?jI zsGwM-RX%8y4_f5|R$&zZ%UhMN{!y0a>%C<=XL$KeU(fvd^y%K-fB*aaZz9@4U!`a@ zc}ZGDJ|uutAr~MQA(tTUK;DI1hFpPMg}euOA94-y0pvr-N094~8<3CV^ht{P$xF~p z*iRGmS%N-C@m8E}$LR}$VxH@kN2d)+=Vz=7R<2}Kin)ovb1KE{1|qmFs+SiY+u>B4V5dPHnRQ2b zMZ@killJ7DihZbBp0d43YpTR8>AYL8N=GfvLA~DC8Ju%?*~{|^G*_OmRlHJL|^1#2%{x38KP!JF0#H|-srnNdvX;VCMP&A9b3 zlaLQR?4o_((#*nfaG7G4qm9ks@AI~&cyhC;GjkHdqH4Ra+jcNn+rb16s~5Ytb)=aQ zUEDFRR`08&NTaV-!+KP-n>hpU_7?b7Eh>>Pe_oCI#+pfqzE%ysN89ojzS~<&jA`Y( zi2tK35jz@t%Q7-XdD-`Hp<-I$X%pCqYV1t=Gg>cs|H_4GvqtwG|Jc#6%ce_ zGg=kyIo3GG=xJ5BN5!Qvr&&n^Zta?2UlVTCE71oI_G+@v&Jz;lO zozk@J8PuwFf?e=mvo2kh`|j5jeBlr(4ffRRg+vAVUHe;?7{=gXQ}nA z!&5VMfp3(UH9KopIJ6t3BeCF=)Zw=CdRFo80Z|`Cus|+FutsHhnac7?mF2}M%j;E^ zL&MfUbd=>VE6Z_HmV>A)2UuB-v9cUyWjWHy^3Jf0U^kTItzm0mpOocIW1Hm`-c8n* zxORZY8*KZs56Q@O%uxi=ku~P1^H*+<(95i8>SRr@rYT9wshd~3omT-rfHTr+4V zy;Ap^V++60?0xFI$Ay}sm}(rDH#ypzyo+9~Pu|I+BRnUTUEhY0Qmtz#%K3uN_t!?% zJ@9zsrTXx08m{}A4-&nrfn-FGJ+yZL$cj0Nw&GC(*}xzhLqHI7L|`9{2p};%BAZ2! z{WQ7&gd-BuLAEf+)({XR0YDDWYXV4z9+7P#NS+QZ0O5#q=pZ{7WGDpWkjgxR4vP_q z>k-){f{e)#iR&PH7-Vk<2#yCL^129;&_VW#AmcJfLI=q+$iWa0oM(Vch#*NFWK0B^ zltGd@$RvXt2?4={0+1sjNJC!=_ z8N?0&!IcV-6C#MIgPapVPRbyr4pL%}atH|Set^6oUTBN-<2x&YoRTlJMLI~pAk`2M z{1^e`w0Mt1bdXCT$eZ##6461fFv!&q5d1m<dAUX1eunTwO0rEnnAt^0l~uuAhrmy zSO@u51UV~%EY?B3W03DdK=AScNKxFHw7xYzh#=?Wtx4-3KQhQqAs~4A0mKm_vP6%_ z&mzc-9FZkD$Xy2cB?JU-Pk@{kLHcx%dm>0l2Is5jeoh)}Gk;M3iHEc-{n!Iq&hOV=HtEM}<;5tkV0l0* Sb=H68v1Xdj+FAAHeEWYP(29rv literal 0 HcmV?d00001 diff --git a/robots/majiang/robot_mj_cs/target/classes/robot/mj/network/TaurusTcpListener.class b/robots/majiang/robot_mj_cs/target/classes/robot/mj/network/TaurusTcpListener.class new file mode 100644 index 0000000000000000000000000000000000000000..00f50a5b7d1a33cea5b7dfe44e625ef6120a766b GIT binary patch literal 3887 zcma)9`&Sg_8GeS{WruZC+^B&hDi<#Z=o&R?sy3~VSl56Tpu`KQ8I}=8mzmA%ti+~i zVrs3iUa--o7^>BpY8wq=3^$w5pZjmrUGOjH4?U-+&o?tHBSM?A=gfSU_wu~Y`+n~? z`;Y&OehXkD{vN?nw1x3j1O@nM5jNnUc)Tqhs*Lss66lbjiT9x}I%OOdLtVxZ8Al^X zqDzJ$!<>T@-jQL+NXxLrEFzY@ZyWc*sZPs{jN?4FVF8yRQAI2S=J+GLy;?+X#kL5~<+6ySdw#wSAfl7v9g z?3A#iAz^mKY&BzL(y@eTX|as0Cu0p}XQyUumM}kI8itmzbLPWto=i zM9k+{+B+F7ZNJ8tnZ{0?o~5{iB0b$SnQ11MxsG;fcK!6?;TDDEEs3O82$5zpV>YeEC z592chefR@Q);^vhd10^U!nms78ve+YuF1+>H8FNIcmDJ2>3feakLB+7J|2CTy>}|t zH=6Ce{b+PF*LN;^<~qmBV_LJ0Y1To#L&0?rO_8nBjIDO1!uXSdn_vik#;q_&!e8)L z1z+Hfz)buXEZT9?J8rN%j08)tqH6VQ4Q8s>Et|#W zWIGhe%-AlyJdu95?&4-2TyI6hS4b`1JM1Des5tcbim&-NFN!WUQt$d|VUaiL$)vbo z*rRsv@X%a?DK4&=?ClU97m7&S95$-D(d?WYb~imw$YO_%=^||Sinw2C9-oc5 zNnSSl1!lP!1gdf$zcY)mp4pq@?A!~c>e;)p8Tc_ZnbCF~5`o88`?#LE)I%Lwdxp$Z z`I+`g?SN0iSA7xEnXj6c{d$v0^}(L;W)iUpD|M!s)KnJwOnKSwRDzmHkzNUFX7J;W z$aU?VVP+*lTJpF3LKgEBJswJC*EZd;xcxMiTM?h`=aPhVeuwo*HJ#r4^oj6)V4<9! zkW2ZI8NhSmmg1;D+*^FtiK~lm8IrjF`1}E9+Y#glSX?~>srn%b_63Fz_!_}#K0*WB zDZs0I&Z9-~3}OL_5ycNVQ(R5_2wORm=wZ_8Wl9%tt)}_`LcLJ#qc9pCggj6kq*XC1 z8bst4<~E42QZtCT12j;KB`D+fWx#Q{5=Asof-p)kpWzfUutiu#ndOwKV5pU-#tH|@ zV!A7*d_7)sK-GAlUZ({af#O|ZY%AiUi?r)^TdV<|Ra4+RymHJ>+J_$>ngtZ-Uf)n}pCkh>=+lEoxSQ}js zjgH`%0BWNPql>)J;sr}Nd{!)$45M@e&joqOJs$|v66^~if+fLkuykL5(`CabYaT>7 zscsZI6}2AKz)tMR$Fr6rkeVPd%p>_FL@%(eWlmoqr8`+Cd$0{nB=7*SitJZYI*1+o zy+QJuyeLK1+q@{nr~!?POr)U*1^>bxFAqDh%MDmcFyKON-)6v@f~7%*TS`Z&9VPKVI#ET<3&+f71)T(6_%8(eASThw(>u#~6vwnwd4 zYjRQ`M$PmTaOj>R=x!n1|K_$tIIS+>i195#2#LbK!-0Fi3!TNI4ifiZhdf^r-ee?h zd9L@AWh#@e_0#oDpT6wr%h;Dcb>)s17DIHyFgAXLLeXI)=eWB7=5w~+0d?TNob@RP literal 0 HcmV?d00001 diff --git a/robots/majiang/robot_mj_cs/target/classes/taurus/util/ROBOTEventType.class b/robots/majiang/robot_mj_cs/target/classes/taurus/util/ROBOTEventType.class new file mode 100644 index 0000000000000000000000000000000000000000..182bde5e055c0bcf4238e37595366e37f014ab72 GIT binary patch literal 436 zcmZ{g%Sr=55Jhk0VKfgDV~h{nxKkI-#+@Q)j1r8~FquSLg-&d=!#E?8o`9d_N^s!^ z_)%i@=pqU(`qJlC)orRjKHuH}9Acx0EY=EW7O+lec;Za>!;b3