diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyDefendDetailInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyDefendDetailInfoHandler.java new file mode 100644 index 000000000..13d8168fd --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyDefendDetailInfoHandler.java @@ -0,0 +1,25 @@ +package com.ljsd.jieling.handler.family; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.family.GuildLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.Family; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +@Component +public class FamilyDefendDetailInfoHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.FAMILY_VIEW_DEFEND_DETAIL_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + byte[] bytes = netData.parseClientProtoNetData(); + Family.FamilyDefendDetailViewRequest request = Family.FamilyDefendDetailViewRequest.parseFrom(bytes); + + GuildLogic.viewDefendDetailInfo(iSession,request.getPlayerId(), MessageTypeProto.MessageType.FAMILY_VIEW_DEFEND_DETAIL_RESPONSE); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyDefendInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyDefendInfoHandler.java new file mode 100644 index 000000000..076e52332 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyDefendInfoHandler.java @@ -0,0 +1,23 @@ +package com.ljsd.jieling.handler.family; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.family.GuildLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.Family; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +@Component +public class FamilyDefendInfoHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.FAMILY_VIEW_DEFEND_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + byte[] bytes = netData.parseClientProtoNetData(); + GuildLogic.viewDefendInfo(iSession,MessageTypeProto.MessageType.FAMILY_VIEW_DEFEND_RESPONSE); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyQuickSetDefendHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyQuickSetDefendHandler.java new file mode 100644 index 000000000..81f62d212 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyQuickSetDefendHandler.java @@ -0,0 +1,25 @@ +package com.ljsd.jieling.handler.family; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.family.GuildLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.Family; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +@Component +public class FamilyQuickSetDefendHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.FAMILY_QUICK_SET_DEFEND_REQEUST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + byte[] bytes = netData.parseClientProtoNetData(); + Family.FamilyQuickDefendRequest request = Family.FamilyQuickDefendRequest.parseFrom(bytes); + + GuildLogic.quickSetDefend(iSession,request.getBuildId(),request.getUid(), MessageTypeProto.MessageType.FAMILY_QUICK_SET_DEFEND_RESPONSE); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 1cb71f413..f64f87903 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -41,7 +41,7 @@ public class ActivityLogic { public void flushEveryDay(User user, PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception { //跟新签到天数 - if (!TimeUtils.isSameMonthWithNow(user.getPlayerInfoManager().getOffLineTime())) { + if (!TimeUtils.isSameMonthFiveWithNow(user.getPlayerInfoManager().getOffLineTime())) { user.getPlayerInfoManager().setSign(0); user.getPlayerInfoManager().setSignTotay(0); } else if (user.getPlayerInfoManager().getSignTotay() == 1) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index ed0c72516..c087140b4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -7,6 +7,7 @@ import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.handler.map.MapManager; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.GuildApply; @@ -760,9 +761,9 @@ public class GuildLogic { Family.FamilyDefendViewResponse.Builder response = Family.FamilyDefendViewResponse.newBuilder(); for(Map.Entry entry:defendInfo.entrySet()){ Family.FamilyDefendInfo.Builder defend = Family.FamilyDefendInfo.newBuilder(); - defend.setStarCount(entry.getValue()%1000); + defend.setStarCount(5); defend.setUid(entry.getKey()); - defend.setBuildId(entry.getValue()/1000); + defend.setBuildId(entry.getValue()); defend.setCurForce(HeroLogic.getInstance().calTeamTotalForce(UserManager.getUser(entry.getKey()),501,false)); response.addInfo(defend); } @@ -805,13 +806,14 @@ public class GuildLogic { public static void quickSetDefend(ISession session,int buildId,int uid, MessageTypeProto.MessageType messageType) throws Exception { User user = UserManager.getUser(uid); TeamPosManager teamPosManager = user.getTeamPosManager(); - teamPosManager.updateTeamPosByTeamId(501,teamPosManager.getTeamPosForHero().get(1)); + if(teamPosManager.getTeamPosForHero().get(501)==null||teamPosManager.getTeamPosForHero().get(501).size()<1){ + teamPosManager.updateTeamPosByTeamId(501,teamPosManager.getTeamPosForHero().get(1)); + } if(buildId==0){ buildId = 1; } GuildInfo guildInfo = GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId()); - //设置建筑要*1000,把星数带进去 - guildInfo.updateDefendInfo(uid,buildId*1000+5);//星数未定 + guildInfo.updateDefendInfo(uid,buildId); Family.FamilyDefendInfo.Builder defend = Family.FamilyDefendInfo.newBuilder(); defend.setBuildId(buildId); defend.setUid(uid); @@ -846,21 +848,25 @@ public class GuildLogic { for(Integer gid:guildIds){ GuildInfo guildInfo = GuilidManager.guildInfoMap.get(gid); Map defendInfo = guildInfo.getDefendInfo(); + if(defendInfo==null||defendInfo.size()<1){ + continue; + } for(Map.Entry entry:defendInfo.entrySet()){ User user = UserManager.getUser(entry.getKey()); HeroManager heroManager = user.getHeroManager(); - List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(501); + TeamPosManager teamPosManager = user.getTeamPosManager(); + List teamPosHeroInfos = teamPosManager.getTeamPosForHero().get(501); Iterator it = teamPosHeroInfos.iterator(); - FamilyFightInfo fightInfo = new FamilyFightInfo(); + FamilyFightInfo fightInfo = new FamilyFightInfo(); Map> heroAllAttribute = new HashMap<>(); while (it.hasNext()){ TeamPosHeroInfo heroInfo = it.next(); heroManager.getHero(heroInfo.getHeroId()); + teamPosManager.setCurTeamPosId(501); Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, heroManager.getHero(heroInfo.getHeroId()), false); heroAllAttribute.put(heroInfo.getHeroId(),heroAttributeMap); } fightInfo.setHeroAttribute(heroAllAttribute); - fightInfo.setStarCount(entry.getValue()%1000); RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_FIGHT,String.valueOf(guildInfo.getId()),String.valueOf(entry.getKey()),fightInfo); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/TimeUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/util/TimeUtils.java index b707c6cd3..61d14700c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/TimeUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/TimeUtils.java @@ -828,6 +828,23 @@ public class TimeUtils { return (y1 == y2) && (m1 == m2); } + // 是否5点月刷新 + public static boolean isSameMonthFiveWithNow(long r1) { + Calendar c1 = Calendar.getInstance(); + c1.setTimeInMillis(r1-5*ONE_HOUR); + int y1 = c1.get(Calendar.YEAR); + int m1 = c1.get(Calendar.MONTH) + 1; + + Calendar c2 = Calendar.getInstance(); + c2.setTimeInMillis(now()-5*ONE_HOUR); + int y2 = c2.get(Calendar.YEAR); + int m2 = c2.get(Calendar.MONTH) + 1; +// int d2 = c2.get(Calendar.DAY_OF_MONTH); + + return (y1 == y2) && (m1 == m2); + } + + /** * 获得当天指定时间