跨服服务器

zhangshanxue 2021-01-18 01:40:05 +08:00
parent c160bca82e
commit 040711b793
1 changed files with 38 additions and 16 deletions

View File

@ -34,6 +34,7 @@ import rpc.protocols.PlayerInfoProto;
import rpc.world.WorldProto;
import util.MathUtils;
import util.StringUtil;
import util.TimeUtils;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@ -92,18 +93,20 @@ public class ArenaLogic {
public void minCheck() {
RedisUtil redisUtil = RedisUtil.getInstence();
String matched = redisUtil.getObject(RedisKey.MATCHED_VERSION, String.class);//global 分组日期
String myVersion = redisUtil.getObject(RedisKey.MATCHED_MY_VERSION, String.class);
if (null == matched || Integer.valueOf(matched) == 0) {
return;
}
// String matched = redisUtil.getObject(RedisKey.MATCHED_VERSION, String.class);//global 分组日期
// String myVersion = redisUtil.getObject(RedisKey.MATCHED_MY_VERSION, String.class);
// if (null == matched || Integer.valueOf(matched) == 0) {
// return;
// }
if (null != myVersion && !myVersion.equals("")) {
if (!myVersion.equals(matched) ) {
long time = TimeUtils.now() + TimeUtils.ONE_MINUTE * 2;
//刷新
if(TimeUtils.getDayOfWeek(time)==6&&TimeUtils.getHourOfDay(time)==0&&TimeUtils.getMiunte(time)==0){
{
onfinish();
//TODO start
//重新获取分组信息
redisUtil.set(RedisKey.MATCHED_MY_VERSION, matched);
// redisUtil.set(RedisKey.MATCHED_MY_VERSION, matched);
Map<String, Integer> serverSplit = RedisUtil.getInstence().getMapValues(RedisKey.SERVER_SPLIT_INFO, String.class, Integer.class);
serverSplit.forEach((s, integer) -> {
HashSet<String> strings = map.getOrDefault(integer, new HashSet<>());
@ -127,6 +130,9 @@ public class ArenaLogic {
});
}
}
// if (null != myVersion && !myVersion.equals("")) {
// if (!myVersion.equals(matched) )
// }
//定时入库
lastSaved();
}
@ -140,10 +146,18 @@ public class ArenaLogic {
delKeys.add(RedisUtil.getInstence().getKey(RedisKey.WORLD_ARENA_RRECORD, ""));
delKeys.add(RedisUtil.getInstence().getKey(RedisKey.WORLD_ARENA_MY_PRON, ""));
// Cursor<String> cursor = RedisUtil.getInstence().scan("WORLD_ARENA_MY_PRON:*", -1);
// while (cursor.hasNext()) {
// delKeys.add(cursor.next());
// }
Cursor<String> cursor = RedisUtil.getInstence().scan("WORLD_ARENA_RANK_MY_MATH:*", -1);
while (cursor.hasNext()) {
String next = cursor.next();
System.out.println("清除:"+next);
delKeys.add(next);
}
Cursor<String> curso1 = RedisUtil.getInstence().scan("WORLD_ARENA_RRECORD:*", -1);
while (curso1.hasNext()) {
String next = curso1.next();
System.out.println("清除:"+next);
delKeys.add(next);
}
RedisUtil.getInstence().del(delKeys.toArray(new String[0]));
}
@ -155,7 +169,14 @@ public class ArenaLogic {
int enemyId = arenaEnemy.getEnemyId();
int enemyType = arenaEnemy.getEnemyType();
int rank = arenaEnemy.getRank();//only robot
arenaEnemyList.add(getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank,arenaEnemy.getWorshipTime(),myPro.contains(arenaEnemy.getEnemyId_UUid())));
if(enemyType==0){
Object hget = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT_ROBOT, String.valueOf(arenaEnemy.getEnemyId_UUid()));
arenaEnemyList.add(getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank,hget==null?0:Integer.parseInt((String)hget),myPro.contains(arenaEnemy.getEnemyId_UUid())));
}else{
Object hget = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT, String.valueOf(enemyId));
arenaEnemyList.add(getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank,hget==null?0:Integer.parseInt((String)hget),myPro.contains(arenaEnemy.getEnemyId_UUid())));
}
}
return arenaEnemyList;
}
@ -359,7 +380,8 @@ public class ArenaLogic {
int enemyType = arenaEnemy.getEnemyType();
int rank = arenaEnemy.getRank();//only robot
List<String> strings = RedisUtil.getInstence().lGet(RedisKey.WORLD_ARENA_MY_PRON,String.valueOf(uid), 0, -1);
CommonProto.ArenaEnemy arenaEnemy1 = getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank, arenaEnemy.getWorshipTime(), strings.contains(arenaEnemy.getEnemyId_UUid()));
Object proudGet = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT, String.valueOf(enemyId));
CommonProto.ArenaEnemy arenaEnemy1 = getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank, proudGet==null?0:Integer.parseInt((String)proudGet), strings.contains(arenaEnemy.getEnemyId_UUid()));
CommonProto.RankInfo everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(i).setParam1(arenaEnemy1.getPersonInfo().getTotalForce()).build();
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
@ -383,8 +405,8 @@ public class ArenaLogic {
}
}
if(uid!=0){
CommonProto.ArenaEnemy arenaEnemy1 = getArenaEnemy(uid, serverID, 1, myIndex,0, true);
CommonProto.ArenaEnemy arenaEnemy1 = getArenaEnemy(uid, serverID, 1, myIndex,0, true);
if(arenaEnemy1!=null&&uid!=0){
CommonProto.RankInfo everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(myIndex)
.setParam1(arenaEnemy1.getPersonInfo().getTotalForce())