From 77a50f4e5ec041ae1698717a2e26de8cb397d2b3 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Mon, 11 May 2020 19:31:26 +0800 Subject: [PATCH] =?UTF-8?q?Task=E3=80=90ID1006177=E3=80=91=E3=80=90?= =?UTF-8?q?=E6=96=B0=E6=88=98=E6=96=97=E7=89=88=E6=9C=AC=E3=80=91=E5=AE=9D?= =?UTF-8?q?=E7=89=A9=E5=90=88=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...a => ComplexJewelEquipRequestHandler.java} | 33 +++++++++---------- .../ljsd/jieling/logic/item/ItemLogic.java | 12 +++++++ 2 files changed, 28 insertions(+), 17 deletions(-) rename serverlogic/src/main/java/com/ljsd/jieling/handler/equip/{ComplexJewelEquipHandler.java => ComplexJewelEquipRequestHandler.java} (84%) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexJewelEquipHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexJewelEquipRequestHandler.java similarity index 84% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexJewelEquipHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexJewelEquipRequestHandler.java index 2c062f63b..1a26bd6bf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexJewelEquipHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexJewelEquipRequestHandler.java @@ -11,6 +11,8 @@ 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.logic.item.ItemLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.HeroInfoProto; import com.ljsd.jieling.protocols.MessageTypeProto; @@ -27,16 +29,16 @@ import java.util.*; * Author: zsx * CreateDate: 2020/5/8 11:51 */ -public class ComplexJewelEquipHandler extends BaseHandler { +public class ComplexJewelEquipRequestHandler extends BaseHandler { @Override public MessageTypeProto.MessageType getMessageCode() { return null; } @Override - public GeneratedMessage processWithProto(int uid, HeroInfoProto.ComplexJewelEquipRequest proto) throws Exception { + public void processWithProto(ISession iSession, HeroInfoProto.ComplexJewelEquipRequest proto) throws Exception { - User user = UserManager.getUser(uid); + User user = UserManager.getUser(iSession.getUid()); if (user == null) { throw new ErrorCodeException(ErrorCode.UNKNOWN); } @@ -72,7 +74,8 @@ public class ComplexJewelEquipHandler extends BaseHandler equipByIDs = ItemLogic.getJewelEquip(user, sEquipStarsConfig.getLocation(),sEquipStarsConfig.getRace()); + // Set equipByIDs = ItemLogic.getJewelEquip(user, sEquipStarsConfig.getLocation(),sEquipStarsConfig.getRace()); + TreeSet equipByIDs = ItemLogic.getJewelEquipWithLeve(user, sEquipStarsConfig.getLocation(),sEquipStarsConfig.getRace(),needLeve); int needcount = sEquipStarsConfig.getRankupCount(); if (equipByIDs.size() / needcount < proto.getNum()) { @@ -97,7 +100,7 @@ public class ComplexJewelEquipHandler extends BaseHandler> race2quality2soulid = STableManager.getFigureConfig(ItemStaticConfig.class).getRace2quality2soulid(); Map> race2quality2id = STableManager.getFigureConfig(ItemStaticConfig.class).getRace2quality2id(); - Map soulInnerMap = new TreeMap<>(race2quality2soulid.getOrDefault(1, new HashMap<>())); - Map innerMap = new TreeMap<>(race2quality2id.getOrDefault(2, new HashMap<>())); + Map soulInnerMap = new TreeMap<>(race2quality2soulid.getOrDefault(proto.getRance(), new HashMap<>())); + Map innerMap = new TreeMap<>(race2quality2id.getOrDefault(proto.getRance(), new HashMap<>())); Set equipadds =new HashSet<>(); List< CommonProto.Equip> equips = new LinkedList<>(); combineEquip(user,soulInnerMap,equips,equipadds); combineEquip(user,innerMap,equips,equipadds); - CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder().addAllEquipId(equips); - HeroInfoProto.ComplexEquipResponse.Builder response = HeroInfoProto.ComplexEquipResponse.newBuilder(); + CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder().addAllSoulEquip(equips); + HeroInfoProto.ComplexJewelEquipResponse.Builder response = HeroInfoProto.ComplexJewelEquipResponse.newBuilder(); response.addAllEquipIds(equipadds); response.setDrop(drop); - System.out.print(response.build().toString()); - MessageUtil.sendIndicationMessage(uid, response.build()); + MessageUtil.sendIndicationMessage(user.getId(), response.build()); } - return HeroInfoProto.ComplexEquipResponse.newBuilder().build(); } - private void combineEquip(User user, Map integerIntegerMap ,List equips,Set equipadds) throws Exception { Map consumeMap = new HashMap<>(); @@ -151,7 +151,7 @@ public class ComplexJewelEquipHandler extends BaseHandler equipByIDs = ItemLogic.getJewelEquip(user, sEquipStarsConfig.getLocation(),sEquipStarsConfig.getRace()); + TreeSet equipByIDs = ItemLogic.getJewelEquipWithLeve(user, sEquipStarsConfig.getLocation(),sEquipStarsConfig.getRace(),entry.getKey()); int canConNum =equipByIDs.size()/sEquipStarsConfig.getRankupCount(); if(canConNum<=0){ continue; @@ -204,7 +204,6 @@ public class ComplexJewelEquipHandler extends BaseHandler getJewelEquipWithLeve(User user, int type, int rance,int leve) { + return user.getEquipManager().getEquipMap().entrySet().stream().filter(stringEquipEntry -> + StringUtil.isEmpty(stringEquipEntry.getValue().getHeroId()) + ).filter(stringPropertyItemEntry -> stringPropertyItemEntry.getValue() instanceof Jewel).filter(stringPropertyItemEntry -> { + SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(stringPropertyItemEntry.getValue().getEquipId()); + if (config == null) { + return false; + } + return config.getLocation() == type && config.getRace() == rance&&config.getLevel()==leve; + }).map(Map.Entry::getKey).collect(Collectors.toCollection(TreeSet::new)); + } + /** * 宝器强化 精炼 * @param iSession