From ea310891c52bf426259c9ca90dc59d3a71e4f931 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Sun, 31 Dec 2023 15:36:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=95=E5=AE=9D=E4=B8=A2=E5=A4=B1=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E5=8A=A9=E6=88=98=E5=85=8B=E9=9A=86=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E5=85=A5=E5=BA=93=E6=95=B0=E6=8D=AE=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/dao/Baubles.java | 7 +++++ .../ljsd/jieling/logic/dao/PropertyItem.java | 9 +++++++ .../com/ljsd/jieling/util/CBean2Proto.java | 26 ++++++++++--------- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Baubles.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Baubles.java index 343ce2993..82ba3f161 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Baubles.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Baubles.java @@ -15,6 +15,13 @@ public class Baubles extends PropertyItem{ public Baubles() { } + // 克隆 + public Baubles(Baubles baubles) { + super(baubles); + this.masterId = baubles.getMasterId(); + this.blessList = new HashSet<>(baubles.getBlessList()); + } + public Baubles(int uid, int equipId) { super(uid, equipId); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PropertyItem.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PropertyItem.java index 70e3691a8..6fd98b2f8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PropertyItem.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PropertyItem.java @@ -25,6 +25,15 @@ public class PropertyItem extends MongoBase { this.equipId = equipId; } + // 克隆 + public PropertyItem(PropertyItem item) { + this.id = item.getId(); + this.equipId = item.getEquipId(); + this.level = item.getLevel(); + this.buildLevel = item.getBuildLevel(); + this.heroId = item.getHeroId(); + } + public String getId() { return id; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index f1adf8b73..ad1c6b524 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -287,22 +287,23 @@ public class CBean2Proto { HelpTypeEnum type = HelpTypeEnum.getType(hero.getPropertyId()); // 英雄镜像 EquipManager equipManager = user.getEquipManager(); + Hero clone = hero.clone(); // 魂宝灵宝镜像 - List jewels = buildPropertyItemList(equipManager, hero.getJewelInfo()); + List jewels = buildPropertyItemList(equipManager, clone.getJewelInfo()); // 法相 - List faxiangs = buildPropertyItemList(equipManager, hero.getFaxiangList()); + List faxiangs = buildPropertyItemList(equipManager, clone.getFaxiangList()); // 结果返回,援助类型不在这里写 HelpHero helpHero = new HelpHero(); helpHero.setUid(user.getId()); helpHero.setFunctionType(type); helpHero.setCreatTime(TimeUtils.now()); - helpHero.setHero(hero); + helpHero.setHero(clone); helpHero.setState(0); helpHero.setJewels(jewels); helpHero.setFaxiangs(faxiangs); helpHero.setFourTotalTier(user.getPlayerInfoManager().getFourChallengeTotal()); - helpHero.setBaubles(equipManager.getBaubles(hero.getBauBlesId())); - helpHero.setBaublesList(buildBaublesList(equipManager, hero.getBauBlesId())); + helpHero.setBaubles(equipManager.getBaubles(clone.getBauBlesId())); + helpHero.setBaublesList(buildBaublesList(equipManager, clone.getBauBlesId())); return helpHero; } @@ -310,17 +311,18 @@ public class CBean2Proto { * 克隆装备信息 */ public static List buildPropertyItemList(EquipManager equipManager, Set infoList){ - List List = new ArrayList<>(); + List items = new ArrayList<>(); if (infoList == null || infoList.isEmpty()){ - return List; + return items; } for (String id: infoList){ PropertyItem item = equipManager.getEquip(id); if (item != null){ - List.add(item); + PropertyItem clone = new PropertyItem(item); + items.add(clone); } } - return List; + return items; } /** @@ -338,10 +340,10 @@ public class CBean2Proto { if (blessList != null && !blessList.isEmpty()){ for (String id: blessList){ Baubles item = equipManager.getBaubles(id); - if (item == null){ - continue; + if (item != null){ + Baubles clone = new Baubles(item); + list.add(clone); } - list.add(item); } } return list;