From 4e829913328c12cdca704ed7a3b7c8ed5bd13943 Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Wed, 24 Feb 2021 10:19:59 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E6=96=B0=E5=A4=B4=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hero/DoHeroChangeRequestHandler.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/DoHeroChangeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/DoHeroChangeRequestHandler.java index afefe316f..d4b2043a1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/DoHeroChangeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/DoHeroChangeRequestHandler.java @@ -3,11 +3,14 @@ package com.ljsd.jieling.handler.hero; import com.google.protobuf.GeneratedMessage; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.util.ItemUtil; +import config.SItem; import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; @@ -68,6 +71,24 @@ public class DoHeroChangeRequestHandler extends BaseHandler1){ + int[] drops = sItem.getExtraReward()[1]; + if(user.getItemManager().getItem(drops[0]) == null){ + int[][] extraDrops = new int[1][2]; + extraDrops[0] = new int[2]; + extraDrops[0][0] = drops[0]; + extraDrops[0][1] =1; + if(sItem.getExtraReward()[0][0] == 0){ + ItemUtil.drop(user,extraDrops, BIReason.EXTRA_DROP_REWARD); + }else{ + ItemUtil.drop(user,extraDrops,CommonProto.Drop.newBuilder(),BIReason.EXTRA_DROP_REWARD); + } + } + } + } return HeroInfoProto.DoHeroChangeResponse.newBuilder().setDrop(drop).build(); } } From d8160bdfb077beacd7c8c74d5b79657a15f49363 Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Wed, 24 Feb 2021 10:27:08 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=20=E6=8E=92=E8=A1=8C=E6=A6=9C20=E4=BD=8D?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/handler/RankHandler.java | 3 ++- .../src/main/java/com/ljsd/jieling/logic/rank/RankLogic.java | 4 ++-- .../com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/RankHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/RankHandler.java index dadf0880d..13f70c728 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/RankHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/RankHandler.java @@ -16,6 +16,7 @@ public class RankHandler extends BaseHandler { @Override public void processWithProto(ISession iSession, PlayerInfoProto.RankRequest proto) throws Exception { - RankLogic.getInstance().getRank(iSession,proto.getType(),proto.getActiviteId(),MessageTypeProto.MessageType.GET_ONE_RANK_RESPONSE); + RankLogic.getInstance().getRank(iSession,proto.getType(),proto.getActiviteId(), + proto.getIndex(),MessageTypeProto.MessageType.GET_ONE_RANK_RESPONSE); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankLogic.java index c9f78917d..1c985a2ba 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankLogic.java @@ -47,7 +47,7 @@ public class RankLogic { public static class Instance { public final static RankLogic instance = new RankLogic(); } - public void getRank(ISession session, int type, int activityId,MessageTypeProto.MessageType messageType) throws Exception { + public void getRank(ISession session, int type, int activityId,int index,MessageTypeProto.MessageType messageType) throws Exception { LOGGER.info("获取排行榜信息type={},activityId={}",type,activityId); int page = 1; String rkey = ""; @@ -73,7 +73,7 @@ public class RankLogic { } }else{ - rankResponse = rank.getRank(session.getUid(),rkey,1, -1); + rankResponse = rank.getRank(session.getUid(),rkey,index/20+1, 20); } ReportUtil.onReportEvent(UserManager.getUser(session.getUid()), ReportEventEnum.CHECK_RANKING.getType(),String.valueOf(type)); MessageUtil.sendMessage(session,1,messageType.getNumber(),rankResponse,true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java index 84fb19606..15556b917 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java @@ -47,8 +47,8 @@ public abstract class AbstractRank implements IRank { } int start = (page - 1) * rankEndLine, end = page * rankEndLine - 1; Set> zsetreverseRangeWithScores = getRankByKey(rkey,start,end); - if(start==0){ - start=1; + if(start%rankEndLine == 0){ + start++; } PlayerInfoProto.RankResponse.Builder allUserResponse = getAllUserResponse(zsetreverseRangeWithScores,start); //当前用户信息 From 077bd101436b6ccc6d7cc23719dc93184308e6d6 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 25 Feb 2021 10:53:55 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E9=B8=BF=E8=92=99=E9=98=B5=EF=BC=8C?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=98=9F=E7=BA=A7=E5=8F=96=E7=AD=89=E7=BA=A7?= =?UTF-8?q?=EF=BC=8C=E5=85=88=E5=86=99=E6=AD=BB=EF=BC=8C=E5=90=8E=E9=9D=A2?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/dao/Hero.java | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java index 15851254d..f382f5684 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java @@ -165,18 +165,42 @@ public class Hero extends MongoBase { public int getLevel(HeroManager heroManager) { // 英雄 配置表信息 SCHero scHero = SCHero.getsCHero().get(templateId); - SCHeroRankUpConfig config = STableManager.getConfig(SCHeroRankUpConfig.class).get(scHero.getMaxRank()); + int maxStart = scHero.getMaxRank(); + int maxLevel = 0; + switch (maxStart){ + case 1: + maxLevel = 40; + break; + case 2: + maxLevel = 50; + break; + case 3: + maxLevel = 60; + break; + case 5: + maxLevel = 100; + break; + case 9: + maxLevel = 205; + break; + case 10: + case 11: + maxLevel = 330; + break; + default: + break; + } // 如果鸿蒙碑开启 返回鸿蒙系统中神将返回鸿蒙碑等级 if (heroManager.getHongmengTablet() > 0){ // 存在共鸣或者使者 if (heroManager.getResonances().values().contains(id) || heroManager.getHongmengGuards().values().contains(id)) { // 鸿蒙碑超过等级上限,返回鸿蒙碑等级 - if (heroManager.getHongmengTablet() <= config.getOpenLevel()){ + if (heroManager.getHongmengTablet() <= maxLevel){ return heroManager.getHongmengTablet(); } // 最高品质大于等于10的英雄,返回鸿蒙碑等级,否则返回上限等级 - return scHero.getMaxRank() >= 10?heroManager.getHongmengTablet():config.getOpenLevel(); + return scHero.getMaxRank() >= 10?heroManager.getHongmengTablet():maxLevel; } } if (heroManager.getResonances().values().contains(id)) { @@ -184,7 +208,7 @@ public class Hero extends MongoBase { HongMengAddAttribute hongMengAddAttribute = heroManager.getResonanceAddition().get(HongMengAttributeEnum.LEVEL); if (hongMengAddAttribute != null) { // 是否达到限制等级 - return hongMengAddAttribute.value >= config.getOpenLevel() ? config.getOpenLevel():hongMengAddAttribute.value; + return hongMengAddAttribute.value >= maxLevel ? maxLevel:hongMengAddAttribute.value; } } return level; From 60231a23a55ba3aedde1804eeaf94547815283c3 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 25 Feb 2021 11:11:54 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E9=B8=BF=E8=92=99=E9=98=B5=EF=BC=8C?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=9C=80=E5=A4=A7=E6=98=9F=E7=BA=A7=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=9C=80=E5=A4=A7=E7=AD=89=E7=BA=A7=EF=BC=8C=E8=B5=B0?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/dao/Hero.java | 8 ++++---- tablemanager/src/main/java/config/SCHero.java | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java index 15851254d..868d32929 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java @@ -165,18 +165,18 @@ public class Hero extends MongoBase { public int getLevel(HeroManager heroManager) { // 英雄 配置表信息 SCHero scHero = SCHero.getsCHero().get(templateId); - SCHeroRankUpConfig config = STableManager.getConfig(SCHeroRankUpConfig.class).get(scHero.getMaxRank()); + int maxLevel = scHero.getMaxLevel(); // 如果鸿蒙碑开启 返回鸿蒙系统中神将返回鸿蒙碑等级 if (heroManager.getHongmengTablet() > 0){ // 存在共鸣或者使者 if (heroManager.getResonances().values().contains(id) || heroManager.getHongmengGuards().values().contains(id)) { // 鸿蒙碑超过等级上限,返回鸿蒙碑等级 - if (heroManager.getHongmengTablet() <= config.getOpenLevel()){ + if (heroManager.getHongmengTablet() <= maxLevel){ return heroManager.getHongmengTablet(); } // 最高品质大于等于10的英雄,返回鸿蒙碑等级,否则返回上限等级 - return scHero.getMaxRank() >= 10?heroManager.getHongmengTablet():config.getOpenLevel(); + return scHero.getMaxRank() >= 10?heroManager.getHongmengTablet():maxLevel; } } if (heroManager.getResonances().values().contains(id)) { @@ -184,7 +184,7 @@ public class Hero extends MongoBase { HongMengAddAttribute hongMengAddAttribute = heroManager.getResonanceAddition().get(HongMengAttributeEnum.LEVEL); if (hongMengAddAttribute != null) { // 是否达到限制等级 - return hongMengAddAttribute.value >= config.getOpenLevel() ? config.getOpenLevel():hongMengAddAttribute.value; + return hongMengAddAttribute.value >= maxLevel ? maxLevel:hongMengAddAttribute.value; } } return level; diff --git a/tablemanager/src/main/java/config/SCHero.java b/tablemanager/src/main/java/config/SCHero.java index 97c3ddac0..85a58e83e 100644 --- a/tablemanager/src/main/java/config/SCHero.java +++ b/tablemanager/src/main/java/config/SCHero.java @@ -58,6 +58,8 @@ public class SCHero implements BaseConfig{ private int job; + private int maxLevel; + private Map secondaryFactorMap; private Map> skillListByStar; @@ -342,4 +344,8 @@ public class SCHero implements BaseConfig{ public int getJob() { return job; } + + public int getMaxLevel() { + return maxLevel; + } } From 0c84c3f839fa1108b2fae16ca453168b25a180b4 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 26 Feb 2021 11:31:50 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E9=82=AE=E4=BB=B6=E8=83=8C=E5=8C=85?= =?UTF-8?q?=E5=B7=B2=E6=BB=A1=E6=8F=90=E7=A4=BA=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java index f5322022d..8a849c89f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java @@ -250,7 +250,7 @@ public class MailLogic { int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString()); // 检测卡牌和装备背包 int limit = ItemUtil.checkCardAndEquipLimit(user,itemArr); - int state = 1; + int state = 0; if (limit == 0){ // 领取道具 state = ItemUtil.dropByMail(user, itemArr, dropBuilder, BIReason.TAKE_MAIL_REWARD); From 91e53bdf422bdbc8b56875554f4bf45e6750373f Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Fri, 26 Feb 2021 14:09:29 +0800 Subject: [PATCH 06/10] =?UTF-8?q?zabbix=E7=99=BB=E9=99=86=E9=99=90?= =?UTF-8?q?=E5=88=B6=E7=9B=91=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/LoginConfirmHandler.java | 27 +++++++++++++++++ .../ljsd/jieling/logic/dao/UserManager.java | 30 +++++++++++++++++++ .../network/server/SessionManager.java | 12 ++++++-- 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/LoginConfirmHandler.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginConfirmHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginConfirmHandler.java new file mode 100644 index 000000000..db31e38df --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginConfirmHandler.java @@ -0,0 +1,27 @@ +package com.ljsd.jieling.handler; + +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.MessageUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import rpc.protocols.MessageTypeProto; +import rpc.protocols.PlayerInfoProto; + +public class LoginConfirmHandler extends BaseHandler{ + private static final Logger LOGGER = LoggerFactory.getLogger(LoginRequestHandler.class); + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.LOGIN_CONFIRM_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + UserManager.loginConfirm(); + MessageUtil.sendMessage(iSession,1, + MessageTypeProto.MessageType.LOGIN_CONFIRM_RESPONSE.getNumber(),null,true); + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index e3ef7da2c..d5f417101 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.logic.dao; +import com.ljsd.GameApplication; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.db.mongo.AreaManager; @@ -21,6 +22,7 @@ import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.network.server.SessionManager; import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.SysUtil; import config.SGameSetting; import config.SPlayerLevelConfig; import manager.STableManager; @@ -28,17 +30,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import util.TimeUtils; +import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; public class UserManager { private static final Logger LOGGER = LoggerFactory.getLogger(UserManager.class); private static Map userMap = new ConcurrentHashMap<>(); private static Map userMapPutTime = new ConcurrentHashMap<>(); //离线读入 + private static AtomicInteger login_f_num = new AtomicInteger(0);//登陆计数 + private static final int LOGIN_F_LIMIT = 100;//报警界限 public static void addUser(User user) { userMap.put(user.getId(), user); @@ -198,4 +205,27 @@ public class UserManager { return "33521"; } + + public static void loginIncrease(){ + if(login_f_num.incrementAndGet() >= LOGIN_F_LIMIT){ + String path = SysUtil.getPath("conf/loginerror/loginerror"+ GameApplication.serverId +".txt"); + File file = new File(path); + try{ + if(!file.getParentFile().exists()){ + file.getParentFile().mkdirs(); + } + if(!file.exists()){ + file.createNewFile(); + LOGGER.info("生成登陆限制文件!"+TimeUtils.getTimeStamp(System.currentTimeMillis())); + } + }catch(IOException e){ + e.printStackTrace(); + } + } + } + + public static void loginConfirm(){ + login_f_num.decrementAndGet(); + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java index 1361a974a..04f04c333 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java @@ -98,8 +98,16 @@ public class SessionManager implements INetSession, INetReceived Date: Mon, 1 Mar 2021 11:50:02 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E9=9D=9E=E7=A9=BA=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java b/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java index e81fa10c0..c9336921e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java @@ -238,7 +238,7 @@ public class HandlerLogicThread extends Thread{ } public static boolean checkOpen(User user, SGlobalSystemConfig sGlobalSystemConfig) { - if(!GlobalDataManaager.getInstance().checkIsOpen(sGlobalSystemConfig.getId())){ + if(sGlobalSystemConfig == null || !GlobalDataManaager.getInstance().checkIsOpen(sGlobalSystemConfig.getId())){ return false; } int level = user.getPlayerInfoManager().getLevel(); From 3dbc87013dccb030c14c226e59e6ba6c02dbb80d Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 2 Mar 2021 10:01:53 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E9=82=AE=E4=BB=B6=EF=BC=8C=E9=9D=9E?= =?UTF-8?q?=E9=81=93=E5=85=B7=E9=82=AE=E4=BB=B6=E5=8F=AF=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E9=A2=86=E5=8F=96=E9=97=AE=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index c0ab832b6..8bef9d6e6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -783,7 +783,7 @@ public class ItemUtil { */ public static int addItemByMail(User user, Map itemMap,CommonProto.Drop.Builder dropBuilder,int reason) throws Exception { if (itemMap.isEmpty()) { - return 0; + return 1; } List itemProtoList = new CopyOnWriteArrayList<>(); ItemManager itemManager = user.getItemManager(); From f87beb7368d2674dd3fb83c0cf6862c38b9b386e Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 6 Mar 2021 04:44:59 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java | 1 - .../src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java | 1 - 2 files changed, 2 deletions(-) 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 a791eb5e6..0ade0d2f5 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 @@ -143,7 +143,6 @@ public class GuildLogic { for(Set members : guildInfo.getMembers().values()){ for(int uidOfMember : members){ - LOGGER.info("errorMember:{}",uidOfMember); User userMember = UserManager.getUser(uidOfMember); builder.addFamilyWalkIndicaiton(CBean2Proto.getFamilyWalkIndicaiton(userMember)); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java index ecdd9f356..78b53e909 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java @@ -698,7 +698,6 @@ public class FriendLogic { friendManager.setHaveRewardMap(new HashMap<>()); for (Map.Entry entry: giveMap.entrySet()){ Integer friendId = entry.getKey(); - LOGGER.info("FriendId:{}",friendId); User friendUser = UserManager.getUser(friendId); FriendManager friendManager1 = friendUser.getFriendManager(); Map haveRewardMap = friendManager1.getHaveRewardMap(); From 63aa8f13f33ec7b48f98704b2e2ddeab9aa48e2a Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 2 Mar 2021 12:11:25 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E6=96=AD=E7=BA=BF=E9=87=8D=E8=BF=9E=20?= =?UTF-8?q?=E5=BF=83=E8=B7=B3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/OnlineUserManager.java | 27 +++++++------------ .../network/server/SessionManager.java | 4 +-- .../jieling/network/session/ISession.java | 2 +- 3 files changed, 13 insertions(+), 20 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/OnlineUserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/OnlineUserManager.java index b578f0c4f..67daf71db 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/OnlineUserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/OnlineUserManager.java @@ -11,17 +11,23 @@ import java.util.concurrent.ConcurrentHashMap; public class OnlineUserManager { public static void userOnline(int uid, ISession session) { + tokenMap.put(session.getToken(),uid); sessionMap.put(uid, session); } public static Map sessionMap = new ConcurrentHashMap<>(); + public static Map tokenMap = new ConcurrentHashMap<>(); + public static void checkOnline(){ UserManager.checkOffline(); } public static void userOffline(int uid) { + if(sessionMap.containsKey(uid)){ + tokenMap.remove(sessionMap.get(uid).getToken()); + } sessionMap.remove(uid); } @@ -50,23 +56,10 @@ public class OnlineUserManager { } return sessionMap.containsKey(uid); } - - static class DefinaMap extends HashMap{ - - @Override - public boolean remove(Object key, Object value) { - return super.remove(key, value); - } - - @Override - public v put(k key, v value) { - return super.put(key, value); - } - - @Override - public void clear() { - super.clear(); + public static boolean checkOnlineByToken(int token) { + if (tokenMap == null) { + return true; } + return tokenMap.containsKey(token); } - } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java index 1361a974a..4025d668d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java @@ -131,7 +131,7 @@ public class SessionManager implements INetSession, INetReceived, INetReceived