From 50110c87236d20a2b2e70d75caf50bd91c0482e3 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 13 Mar 2020 11:11:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E5=8D=A1=E6=8E=92=E8=A1=8C=E6=A6=9C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/src/main/java/util/MathUtils.java | 6 +- .../ljsd/jieling/handler/map/MapLogic.java | 2 +- .../eventhandler/UserForceUpEventHandler.java | 26 +++++++++ .../jieling/logic/player/PlayerLogic.java | 6 +- .../logic/rank/rankImpl/MainLevelRank.java | 57 ++++++++++--------- 5 files changed, 65 insertions(+), 32 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/UserForceUpEventHandler.java diff --git a/gamecommon/src/main/java/util/MathUtils.java b/gamecommon/src/main/java/util/MathUtils.java index 8fd9af401..1963c91df 100644 --- a/gamecommon/src/main/java/util/MathUtils.java +++ b/gamecommon/src/main/java/util/MathUtils.java @@ -19,8 +19,7 @@ public class MathUtils { public static void main(String[] args){ - String i = "0|00|111"; - String[] split = i.split("|", 1); + System.out.println(forceToDouble(1231321)); } public static int randomForStrArray(String [] rateArray) { return randomStrArray(rateArray, -1); @@ -326,6 +325,9 @@ public class MathUtils { } return result; } + public static double forceToDouble(double force){ + return force/Math.pow(10,8); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 0086621c5..a853b1ec9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -2122,7 +2122,7 @@ public class MapLogic { MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); // String rankKey = RedisKey.getKey(RedisKey.MAINLEVEL_RANK, "", false); // RedisUtil.getInstence().zsetAddOne(rankKey, String.valueOf(user.getId()), sMainLevelConfig.getVirtureId()); - RankContext.getRankEnum(RankEnum.MAIN_LEVEL_RANK.getType()).addRank(uid,"",sMainLevelConfig.getVirtureId()); + RankContext.getRankEnum(RankEnum.MAIN_LEVEL_RANK.getType()).addRank(uid,"",sMainLevelConfig.getVirtureId(),user.getPlayerInfoManager().getMaxForce()); } // public void getMainLevelRankInfo(ISession session) throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/UserForceUpEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/UserForceUpEventHandler.java new file mode 100644 index 000000000..a2b826c98 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/UserForceUpEventHandler.java @@ -0,0 +1,26 @@ +package com.ljsd.jieling.logic.activity.eventhandler; + +import com.ljsd.jieling.logic.activity.IEventHandler; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.UserForceChangeEvent; +import com.ljsd.jieling.logic.rank.RankContext; +import com.ljsd.jieling.logic.rank.RankEnum; + +/** + * @author lvxinran + * @date 2020/3/14 + * @discribe + */ +public class UserForceUpEventHandler implements IEventHandler { + @Override + public void onEvent(IEvent event) throws Exception { + if(!(event instanceof UserForceChangeEvent)) + return; + UserForceChangeEvent forceChangeEvent = (UserForceChangeEvent)event; + double scoreById = RankContext.getRankEnum(RankEnum.MAIN_LEVEL_RANK.getType()).getScoreById(forceChangeEvent.getUid(), ""); + if(scoreById<=0){ + return; + } + RankContext.getRankEnum(RankEnum.MAIN_LEVEL_RANK.getType()).addRank(forceChangeEvent.getUid(),"",Double.valueOf(scoreById).intValue(),forceChangeEvent.getForce()); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 5f166ce39..059ee5039 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -17,6 +17,7 @@ import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityType; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.UserForceChangeEvent; +import com.ljsd.jieling.logic.activity.eventhandler.UserForceUpEventHandler; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.family.GuildLogic; @@ -50,7 +51,10 @@ import java.util.*; public class PlayerLogic { private static final Logger LOGGER = LoggerFactory.getLogger(MailLogic.class); - private PlayerLogic(){} + private PlayerLogic(){ + Poster.getPoster().listenEvent(new UserForceUpEventHandler(), UserForceChangeEvent.class); + + } public static PlayerLogic getInstance(){ return InnerClass.instance; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/MainLevelRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/MainLevelRank.java index 33d2ed1e4..7c1299198 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/MainLevelRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/MainLevelRank.java @@ -4,6 +4,7 @@ import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.PlayerInfoProto; import org.springframework.data.redis.core.ZSetOperations; +import util.MathUtils; import util.TimeUtils; import java.util.*; @@ -26,33 +27,33 @@ public class MainLevelRank extends AbstractRank { return new int[]{i%10_000_000}; } - @Override - protected PlayerInfoProto.RankResponse.Builder getAllUserResponse(Set> zsetreverseRangeWithScores, int start) throws Exception { - PlayerInfoProto.RankResponse.Builder allUserResponse = super.getAllUserResponse(zsetreverseRangeWithScores, start); - List ranksBuilderList = allUserResponse.getRanksList(); - if(ranksBuilderList.size()<2){ - return allUserResponse; - } - List builders = new ArrayList<>(ranksBuilderList); - Collections.sort(builders,(o1, o2) -> { - if(o1.getRankInfo().getParam1()==o2.getRankInfo().getParam1()){ - if(o1.getForce()>o2.getForce() &&o1.getRankInfo().getRank()>o2.getRankInfo().getRank()){ - CommonProto.UserRank rankInfo1 = o1 ; - o1 = o2; - o2 = rankInfo1; - } - } - return o1.getRankInfo().getRank()-o2.getRankInfo().getRank(); - }); - List buildersCopy = new ArrayList<>(ranksBuilderList.size()); - for(CommonProto.UserRank userRank : builders){ - buildersCopy.add(userRank.toBuilder().setRankInfo(userRank.toBuilder().getRankInfo().toBuilder().setRank(start).build()).build()); - start++; - } - PlayerInfoProto.RankResponse.Builder response = PlayerInfoProto.RankResponse.newBuilder(); - response.setMyRankInfo(allUserResponse.getMyRankInfo()).addAllRanks(buildersCopy); - return response; - } +// @Override +// protected PlayerInfoProto.RankResponse.Builder getAllUserResponse(Set> zsetreverseRangeWithScores, int start) throws Exception { +// PlayerInfoProto.RankResponse.Builder allUserResponse = super.getAllUserResponse(zsetreverseRangeWithScores, start); +// List ranksBuilderList = allUserResponse.getRanksList(); +// if(ranksBuilderList.size()<2){ +// return allUserResponse; +// } +// List builders = new ArrayList<>(ranksBuilderList); +// Collections.sort(builders,(o1, o2) -> { +// if(o1.getRankInfo().getParam1()==o2.getRankInfo().getParam1()){ +// if(o1.getForce()>o2.getForce() &&o1.getRankInfo().getRank()>o2.getRankInfo().getRank()){ +// CommonProto.UserRank rankInfo1 = o1 ; +// o1 = o2; +// o2 = rankInfo1; +// } +// } +// return o1.getRankInfo().getRank()-o2.getRankInfo().getRank(); +// }); +// List buildersCopy = new ArrayList<>(ranksBuilderList.size()); +// for(CommonProto.UserRank userRank : builders){ +// buildersCopy.add(userRank.toBuilder().setRankInfo(userRank.toBuilder().getRankInfo().toBuilder().setRank(start).build()).build()); +// start++; +// } +// PlayerInfoProto.RankResponse.Builder response = PlayerInfoProto.RankResponse.newBuilder(); +// response.setMyRankInfo(allUserResponse.getMyRankInfo()).addAllRanks(buildersCopy); +// return response; +// } @Override public Set> getRankByKey(String rkey,int start, int end) { @@ -63,6 +64,6 @@ public class MainLevelRank extends AbstractRank { @Override public double getScore(double... data) { - return data[0]+ TimeUtils.getDoubleTime(); + return data[0]+ MathUtils.forceToDouble(data[1]); } }