验证是否打过

master
zhouwei 2026-07-10 00:42:03 +08:00
parent 9fd6ce91f6
commit 652d2963e7
1 changed files with 43 additions and 0 deletions

View File

@ -22,6 +22,7 @@ import redis.clients.jedis.Jedis;
import taurus.util.ROBOTEventType;
import com.taurus.core.util.Logger;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
@ -448,6 +449,11 @@ public class RobotConnectionManager {
//游戏结束后主动断开连接
disconnectFromGameServer(connecId);
//大结算时 标记真人玩家已对打过
if (type == 1) {
markPlayerRobot(robotUser);
}
}
ITObject params = TObject.newInstance();
params.putString("session", client.getSession());
@ -641,6 +647,43 @@ public class RobotConnectionManager {
}
}
/**
*
*/
private void markPlayerRobot(RobotUser robotUser) {
Jedis jedis = Redis.use().getJedis();
Jedis jedis3 = Redis.use("group1_db3").getJedis();
try {
String roomId = String.valueOf(robotUser.getCurrentRoomId());
int robotId = Integer.parseInt(robotUser.getRobotId());
//获取房间玩家列表
String playersStr = jedis.hget("room:" + roomId, "players");
String[] playerIds = playersStr.substring(1, playersStr.length() - 1).split(",");
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
Calendar endOfDay = Calendar.getInstance();
endOfDay.set(Calendar.HOUR_OF_DAY, 23);
endOfDay.set(Calendar.MINUTE, 59);
endOfDay.set(Calendar.SECOND, 59);
int expireSec = (int)((endOfDay.getTimeInMillis() - System.currentTimeMillis()) / 1000);
for (String id : playerIds) {
int playerId = Integer.parseInt(id.trim());
if (playerId != robotId) {
String key = "player_user:" + playerId;
jedis3.set(key, today);
jedis3.expire(key, expireSec);
}
}
} catch (Exception e) {
log.error("标记玩家对打记录异常", e);
} finally {
jedis.close();
jedis3.close();
}
}
/**
*
*/