From cb95002a8f778b7c247956f5521e70b39cb49c68 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 7 Sep 2019 19:26:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=80=E6=88=98=E6=97=B6=E9=97=B4=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/config/SBloodyBattleSetting.java | 6 ++++ .../handler/room/RoomMatchRequestHandler.java | 28 +++++++++++++++++++ .../java/com/ljsd/jieling/util/MathUtils.java | 17 +++-------- 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyBattleSetting.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyBattleSetting.java index 7b91f8adf..0680cb383 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyBattleSetting.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyBattleSetting.java @@ -81,6 +81,8 @@ public class SBloodyBattleSetting implements BaseConfig { private Map debuffMap; private Map monsterIndexMap; + private int[][] openPeriod; + @Override public void init() throws Exception { @@ -280,4 +282,8 @@ public class SBloodyBattleSetting implements BaseConfig { public void setMonsterIndexMap(Map monsterIndexMap) { this.monsterIndexMap = monsterIndexMap; } + + public int[][] getOpenPeriod() { + return openPeriod; + } } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/room/RoomMatchRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/room/RoomMatchRequestHandler.java index b71403e5b..7e61e9b66 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/room/RoomMatchRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/room/RoomMatchRequestHandler.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.handler.room; import com.google.gson.Gson; import com.ljsd.jieling.bloody.UserBloodySnpInfo; +import com.ljsd.jieling.config.SBloodyBattleSetting; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; @@ -23,10 +24,12 @@ import com.ljsd.jieling.protocols.RoomProto; import com.ljsd.jieling.thrift.pool.ServiceKey; import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.StringUtil; +import com.ljsd.jieling.util.TimeUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import java.util.Calendar; import java.util.List; import java.util.Map; @@ -41,6 +44,7 @@ public class RoomMatchRequestHandler extends BaseHandler{ @Override public void process(ISession iSession, PacketNetData netData) throws Exception { + byte[] message = netData.parseClientProtoNetData(); RoomProto.RoomMatchRequest request = RoomProto.RoomMatchRequest.parseFrom(message); int type = request.getType(); @@ -48,7 +52,12 @@ public class RoomMatchRequestHandler extends BaseHandler{ } public void match(ISession iSession,int type) throws Exception { + int responseMsgId = MessageTypeProto.MessageType.ROOM_MATCH_RESPONSE_VALUE; + if(!isEnter()){ + MessageUtil.sendErrorResponse(iSession,0,responseMsgId,"不在开启时间范围内"); + return; + } int uid = iSession.getUid(); String status = RedisUtil.getInstence().getObject(RedisKey.MATCH_UID_KEY + ":" + uid,String.class); if(!StringUtil.isEmpty(status)){ @@ -113,4 +122,23 @@ public class RoomMatchRequestHandler extends BaseHandler{ String key = RedisUtil.getInstence().getKey(RedisKey.BLOODY_TEAM, Integer.toString(mine.getId())); RedisUtil.getInstence().set(key,gson.toJson(userBloodySnpInfo)); } + + private boolean isEnter(){ + SBloodyBattleSetting setting = SBloodyBattleSetting.sBloodyBattleSetting; + int[][] openPeriod = setting.getOpenPeriod(); + Calendar calendar = Calendar.getInstance(); + int minute = calendar.get(Calendar.MINUTE); + boolean enter = true; + for(int i = 0;i=openPeriod[i][0]/10000&&minute>=openPeriod[i][0]%10000/1000){ + enter = false; + continue; + } + } + return enter; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java index b16d6d710..df837b841 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java @@ -19,19 +19,10 @@ public class MathUtils { private static final Random random = new Random(); -// public static void main(String[] args){ -// int[][] result = new int[10][]; -// for (int i = 0; i < result.length; i++) { -// int[] j = new int[2]; -// j[0] = 10+i; -// j[1] = 100; -// result[i] = j; -// } -// int[] re = randomFromWeightWithTaking(result,10); -// for(int i = 0 ; i