From 99dc03a323beffb671a5b4bf260c2a3922c9ca33 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 28 Nov 2019 13:37:42 +0800 Subject: [PATCH 1/2] fix check token --- .../java/com/ljsd/jieling/network/server/ProtocolsManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java index 7ceb746e7..c55afb31d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java @@ -330,7 +330,7 @@ public class ProtocolsManager implements ProtocolsAbstract { session.setUserLoginTime(System.currentTimeMillis()/1000); return true; } - return true; + return false; } From 14678739f8b9fe33d1eed4e55981bfc2eada3827 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 28 Nov 2019 14:55:47 +0800 Subject: [PATCH 2/2] fix remove hero --- .../java/com/ljsd/jieling/kefu/Cmd_fixEquip.java | 12 +++++++++++- .../logic/activity/RemoveEventHeroHandler.java | 5 +++++ .../java/com/ljsd/jieling/logic/dao/HeroManager.java | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fixEquip.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fixEquip.java index 2a5be0968..23e3c91ea 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fixEquip.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fixEquip.java @@ -4,8 +4,11 @@ import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.logic.dao.Equip; import com.ljsd.jieling.logic.dao.root.User; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Stream; public class Cmd_fixEquip extends GmAbstract{ @Override @@ -16,7 +19,14 @@ public class Cmd_fixEquip extends GmAbstract{ Map equipMap = user.getEquipManager().getEquipMap(); user.getHeroManager().getHeroMap().values().forEach(hero -> { Map equipByPositionMap = hero.getEquipByPositionMap(); - equipByPositionMap.values().forEach(equipId -> equipMap.get(equipId).setHeroId(hero.getId())); + Set removeHeroEquip = new HashSet<>(); + for(Map.Entry item : equipByPositionMap.entrySet()){ + if(!equipMap.containsKey(item.getValue())){ + removeHeroEquip.add(item.getKey()); + } + } + removeHeroEquip.forEach(hero::removeEquip); + hero.getEquipByPositionMap().values().forEach(equipId -> equipMap.get(equipId).setHeroId(hero.getId())); }); }); MongoUtil.getLjsdMongoTemplate().lastUpdate(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java index 28bd524de..3880debdd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java @@ -3,6 +3,8 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.RemoveHeroEvent; +import com.ljsd.jieling.logic.dao.Equip; +import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -23,6 +25,9 @@ public class RemoveEventHeroHandler implements IEventHandler{ if(userInMem == null){ return; } + Hero hero = userInMem.getHeroManager().getHeroMap().get(heroId); + Map equipMap = userInMem.getEquipManager().getEquipMap(); + hero.getEquipByPositionMap().values().forEach(equip->equipMap.get(equip).setHeroId("")); Map endlessHeroInfo = userInMem.getMapManager().getEndlessMapInfo().getEndlessHeroInfo(); if(endlessHeroInfo!=null && endlessHeroInfo.containsKey(heroId)){ endlessHeroInfo.remove(heroId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index 3b67022d0..a4086ca89 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -63,8 +63,8 @@ public class HeroManager extends MongoBase { public void removeHero(int uid,String heroId) { if (heroMap.containsKey(heroId)){ removeString(getMongoKey()+".heroMap." + heroId); - heroMap.remove(heroId); Poster.getPoster().dispatchEvent(new RemoveHeroEvent(uid,heroId)); + heroMap.remove(heroId); } }