优化机器人

master
zhouwei 2026-07-10 02:59:47 +08:00
parent 652d2963e7
commit 838ea4b82a
2 changed files with 33 additions and 5 deletions

View File

@ -39,8 +39,10 @@ public class Config {
/** 游戏服务器主机地址 */ /** 游戏服务器主机地址 */
/*public static final String GAME_SERVER_HOST = "8.134.76.43"; /*public static final String GAME_SERVER_HOST = "8.134.76.43";
public static final String DEFAULT_GROUP_ID = "762479";*/ public static final String DEFAULT_GROUP_ID = "762479";*/
/*public static final String DEFAULT_GROUP_ID = "383709";
public static final String GAME_SERVER_HOST = "8.163.97.101";*/
public static final String DEFAULT_GROUP_ID = "383709"; public static final String DEFAULT_GROUP_ID = "383709";
public static final String GAME_SERVER_HOST = "8.163.97.101"; public static final String GAME_SERVER_HOST = "8.138.6.129";
/** 游戏服务器端口 */ /** 游戏服务器端口 */
public static final String GAME_SERVER_PORT = "26421"; public static final String GAME_SERVER_PORT = "26421";

View File

@ -406,10 +406,14 @@ public class RobotConnectionManager {
HuNanHongZhong huNanHongZhong = getHuNanHongZhongInstance(connecId); HuNanHongZhong huNanHongZhong = getHuNanHongZhongInstance(connecId);
Jedis jedis0 = Redis.use().getJedis(); Jedis jedis0 = Redis.use().getJedis();
Jedis jedis2 = Redis.use("group1_db2").getJedis(); Jedis jedis2 = Redis.use("group1_db2").getJedis();
Jedis jedis3 = Redis.use("group1_db3").getJedis();
try { try {
//红中麻将 机器人处理事件 //红中麻将 机器人处理事件
//初始化手牌 //初始化手牌
if ("811".equalsIgnoreCase(command)) { if ("811".equalsIgnoreCase(command)) {
//设置机器人占用标记
jedis3.set("wokelock" + robotUser.getRobotId(), String.valueOf(1));
jedis3.expire("wokelock" + robotUser.getRobotId(), 900);
robotUser.setStatus(ROBOTEventType.ROBOT_INTOROOM_WORKING); robotUser.setStatus(ROBOTEventType.ROBOT_INTOROOM_WORKING);
huNanHongZhong.cardInHead(command, message, client); huNanHongZhong.cardInHead(command, message, client);
//处理完协议后保存到Redis //处理完协议后保存到Redis
@ -454,6 +458,7 @@ public class RobotConnectionManager {
if (type == 1) { if (type == 1) {
markPlayerRobot(robotUser); markPlayerRobot(robotUser);
} }
jedis3.expire("wokelock" + robotUser.getRobotId(), 2);
} }
ITObject params = TObject.newInstance(); ITObject params = TObject.newInstance();
params.putString("session", client.getSession()); params.putString("session", client.getSession());
@ -564,18 +569,38 @@ public class RobotConnectionManager {
} }
}, 6, TimeUnit.SECONDS); }, 6, TimeUnit.SECONDS);
} }
//解散房间投票事件
else if ("2006".equalsIgnoreCase(command)) {
ITObject params = TObject.newInstance();
params.putBoolean("result", false);
int delaySeconds = ThreadLocalRandom.current().nextInt(3, 8);
log.debug("执行延迟{}秒", delaySeconds);
Thread.sleep(delaySeconds * 1000);
client.send("1008", params, response -> {
log.info("机器人解决解散robotId: {" + robotId + "}");
});
}
//玩家解散房间 //玩家解散房间
else if ("2005".equalsIgnoreCase(command)) { else if ("2005".equalsIgnoreCase(command)) {
EXGameController.removeRobotRoomInfo(String.valueOf(robotId)); /*EXGameController.removeRobotRoomInfo(String.valueOf(robotId));
//更新机器人剩余数量 //更新机器人剩余数量
updateLeftoverRobot(robotId); updateLeftoverRobot(robotId);
disconnectFromGameServer(connecId); disconnectFromGameServer(connecId);*/
ITObject params = TObject.newInstance();
params.putBoolean("result", false);
int delaySeconds = ThreadLocalRandom.current().nextInt(3, 8);
log.debug("执行延迟{}秒", delaySeconds);
Thread.sleep(delaySeconds * 1000);
client.send("1008", params, response -> {
log.info("机器人解决解散robotId: {" + robotId + "}");
});
log.info("2005玩家发送解散房间协议robotId: {" + robotId + "}"); log.info("2005玩家发送解散房间协议robotId: {" + robotId + "}");
} }
//解散房间时候恢复机器人账号可以使用 //解散房间时候恢复机器人账号可以使用
else if ("2008".equalsIgnoreCase(command)) { else if ("2008".equalsIgnoreCase(command)) {
updateLeftoverRobot(Integer.parseInt(robotUser.getRobotId())); /*updateLeftoverRobot(Integer.parseInt(robotUser.getRobotId()));
disconnectFromGameServer(connecId); disconnectFromGameServer(connecId);*/
log.info("2008拒绝玩家解散房间协议robotId: {" + robotId + "}");
} else if ("2009".equalsIgnoreCase(command)) { } else if ("2009".equalsIgnoreCase(command)) {
scheduleDelay(() -> { scheduleDelay(() -> {
Jedis jedis = null; Jedis jedis = null;
@ -627,6 +652,7 @@ public class RobotConnectionManager {
} finally { } finally {
jedis0.close(); jedis0.close();
jedis2.close(); jedis2.close();
jedis3.close();
} }
} }