Merge branch 'master_test_gn' into master_test_gn_xxp
commit
8db77db94c
|
@ -336,6 +336,8 @@ public class RedisKey {
|
|||
|
||||
// 跨服 排行
|
||||
public static final String CROSS_SERVICE_ARENA = "CROSS_SERVICE_ARENA";
|
||||
// 跨服 挑战状态
|
||||
public static final String CROSS_SERVICE_ARENA_STATE = "CROSS_SERVICE_ARENA_STATE";
|
||||
//跨服机器人信息
|
||||
public static final String CROSS_ARENA_ROBOT_INFO = "CROSS_ARENA_ROBOT_INFO";
|
||||
|
||||
|
|
|
@ -121,7 +121,6 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler<WorldProto
|
|||
CommonProto.ArenaEnemy arenaEnemys ;
|
||||
CommonProto.ArenaEnemy arenaAttack ;
|
||||
|
||||
int force;
|
||||
//当前分组
|
||||
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
|
||||
AbstractRank rank = RankContext.getRankEnum(RankEnum.CROSS_SERVICE_ARENA.getType());
|
||||
|
|
|
@ -79,7 +79,7 @@ public class GetWorldArenaInfoRequestHandler extends BaseHandler<WorldProto.GetW
|
|||
if(rankByKey.size()<1){
|
||||
builder.setStage(1);
|
||||
}else{
|
||||
builder.setStage(ArenaLogic.getState());
|
||||
builder.setStage(ArenaLogic.getInstance().getState());
|
||||
}
|
||||
|
||||
if (diff > setting.getRestTime()[0] && diff < setting.getRestTime()[1]) {
|
||||
|
@ -109,7 +109,7 @@ public class GetWorldArenaInfoRequestHandler extends BaseHandler<WorldProto.GetW
|
|||
builder1.setScore(score==-1?9999:(int)score);
|
||||
|
||||
//如果是攻击阶段
|
||||
if(ArenaLogic.getState()==ArenaLogic.BATTLE_STATE){
|
||||
if(ArenaLogic.getInstance().getState()==ArenaLogic.BATTLE_STATE){
|
||||
List<CommonProto.ArenaEnemy> arenaEnemyList = ArenaLogic.randomRank(iSession.getUid(), score == -1 ? 9999 : (int) score,crossGroup);
|
||||
builder1.addAllArenaEnemys(arenaEnemyList);
|
||||
}else{
|
||||
|
|
|
@ -71,8 +71,6 @@ public class ArenaLogic {
|
|||
private int curSeason;
|
||||
private int viewSeason;
|
||||
|
||||
|
||||
private static int state = 0;
|
||||
public final static int NORMAL_STATE = 1;
|
||||
public final static int BATTLE_STATE = 2;
|
||||
public final static int RELAX_STATE = 3;
|
||||
|
@ -718,22 +716,24 @@ public class ArenaLogic {
|
|||
}
|
||||
|
||||
public void worldSendReward(){
|
||||
|
||||
checkState();
|
||||
|
||||
}
|
||||
|
||||
public static int getState() {
|
||||
return state;
|
||||
public int getState() {
|
||||
String key = RedisUtil.getInstence().getKey(RedisKey.CROSS_SERVICE_ARENA_STATE, "");
|
||||
return Optional.ofNullable(RedisUtil.getInstence().get(key))
|
||||
.map(v->Integer.valueOf(v.toString()))
|
||||
.orElse(0);
|
||||
}
|
||||
|
||||
public static void setState(int state) {
|
||||
ArenaLogic.state = state;
|
||||
public void setState(int state) {
|
||||
String key = RedisUtil.getInstence().getKey(RedisKey.CROSS_SERVICE_ARENA_STATE, "");
|
||||
RedisUtil.getInstence().set(key,String.valueOf(state));
|
||||
}
|
||||
|
||||
private void b2r(){
|
||||
if(state != RELAX_STATE){
|
||||
if(state==BATTLE_STATE){
|
||||
if(getState() != RELAX_STATE){
|
||||
if(getState()==BATTLE_STATE){
|
||||
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
||||
for(Map.Entry<Integer,ISession> entry:sessionMap.entrySet()){
|
||||
MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.GetWorldArenaInfoIndication_VALUE,null,true);
|
||||
|
@ -748,7 +748,7 @@ public class ArenaLogic {
|
|||
TreeMap<Integer, SMServerArenaReward> rewardMapByRank = SMServerArenaReward.rewardMapByRank;
|
||||
|
||||
Set<ZSetOperations.TypedTuple<String>> rankInfo= rank.getRankByKey(String.valueOf(crossGroup), 0, -1);
|
||||
int index = 0;
|
||||
int index = 0;
|
||||
Iterator<ZSetOperations.TypedTuple<String>> iterator = rankInfo.iterator();
|
||||
while (iterator.hasNext()){
|
||||
index++;
|
||||
|
@ -758,7 +758,7 @@ public class ArenaLogic {
|
|||
continue;
|
||||
}
|
||||
try {
|
||||
User user = UserManager.getUser(uid, true);
|
||||
User user = UserManager.getUserNotCache(uid);
|
||||
if(user==null){
|
||||
continue;
|
||||
}
|
||||
|
@ -780,34 +780,31 @@ public class ArenaLogic {
|
|||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
MongoUtil.getLjsdMongoTemplate().lastUpdate();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
LOGGER.info("罗浮争霸:转到休息状态,nowstate:{} to RELAX_STATE",state);
|
||||
setState(RELAX_STATE);
|
||||
|
||||
LOGGER.info("罗浮争霸:转到休息状态,nowstate:{} to RELAX_STATE",getState());
|
||||
getInstance().setState(RELAX_STATE);
|
||||
}
|
||||
}
|
||||
|
||||
public void r2e(){
|
||||
|
||||
if(state != NORMAL_STATE){
|
||||
LOGGER.info("罗浮争霸:转到未开始状态,nowstate:{} to NORMAL_STATE",state);
|
||||
setState(NORMAL_STATE);
|
||||
if(getState() != NORMAL_STATE){
|
||||
LOGGER.info("罗浮争霸:转到未开始状态,nowstate:{} to NORMAL_STATE",getState());
|
||||
getInstance().setState(NORMAL_STATE);
|
||||
}
|
||||
}
|
||||
|
||||
public void e2b(){
|
||||
if(state != BATTLE_STATE){
|
||||
LOGGER.info("罗浮争霸:转到战斗状态,nowstate:{} to BATTLE_STATE",state);
|
||||
if(state!=0){
|
||||
initRank();
|
||||
}
|
||||
setState(BATTLE_STATE);
|
||||
if(getState() != BATTLE_STATE){
|
||||
LOGGER.info("罗浮争霸:转到战斗状态,nowstate:{} to BATTLE_STATE",getState());
|
||||
// if(getState()!=0){
|
||||
// initRank();
|
||||
// }
|
||||
getInstance().setState(BATTLE_STATE);
|
||||
initRank();
|
||||
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
||||
for(Map.Entry<Integer,ISession> entry:sessionMap.entrySet()){
|
||||
|
@ -817,7 +814,6 @@ public class ArenaLogic {
|
|||
}
|
||||
|
||||
private void checkState(){
|
||||
long now = System.currentTimeMillis();
|
||||
TimeControllerOfFunction timeControllerOfFunction = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.World_Arena);
|
||||
if(null ==timeControllerOfFunction){
|
||||
return;
|
||||
|
@ -831,8 +827,8 @@ public class ArenaLogic {
|
|||
} else if (diff > setting.getRestTime()[1]) {
|
||||
r2e();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static List<Integer> randomCrossRobot(int start, int end, int nums) {
|
||||
List<Integer> robotIds = new LinkedList<>();
|
||||
int index = 0;
|
||||
|
@ -850,11 +846,9 @@ public class ArenaLogic {
|
|||
//初始化机器人信息
|
||||
private void initRank(){
|
||||
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
|
||||
|
||||
if(crossGroup==-1){
|
||||
return;
|
||||
}
|
||||
|
||||
//分布式锁,保证一个组只有一个服进行初始化
|
||||
boolean lock = RedisUtil.getInstence().lock("WORLD_ARENA_INIT_RANK:" + crossGroup, TimeUtils.ONE_MINUTE * 5);
|
||||
if(!lock){
|
||||
|
@ -875,7 +869,7 @@ public class ArenaLogic {
|
|||
List<Integer> groupList = new ArrayList<>(8);
|
||||
|
||||
groupValues.forEach((k,v)->{
|
||||
if(v==crossGroup) groupList.add(k);
|
||||
if(v==crossGroup){ groupList.add(k);}
|
||||
});
|
||||
|
||||
int[] fightArea = STableManager.getConfig(SMServerArenaSetting.class).get(1).getFightArea();
|
||||
|
|
|
@ -126,7 +126,7 @@ public class MessageUtil {
|
|||
if(redType == GlobalsDef.MAIL_RED_TYPE){
|
||||
return;
|
||||
}
|
||||
User user = UserManager.getUserInMem(sendUid);
|
||||
User user = UserManager.getUserNotCache(sendUid);
|
||||
if (user == null){
|
||||
LOGGER.error("发送红点报错,uid:{},type:{}",sendUid,redType);
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue