From 49453817c2dd0d42abe105f2597e79083fe10183 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 23 Oct 2019 22:12:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=83=8C=E5=8C=85=E5=B7=B2=E6=BB=A1=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/util/ItemUtil.java | 57 +++++++++++++++---- 1 file changed, 47 insertions(+), 10 deletions(-) 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 1b90691b4..311715312 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -37,6 +37,7 @@ import util.TimeUtils; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.stream.Collectors; public class ItemUtil { private static Map dropRewardMap = new ConcurrentHashMap<>(); @@ -918,6 +919,24 @@ public class ItemUtil { StringBuilder reward = new StringBuilder(); List equipList = new CopyOnWriteArrayList<>(); List especialEquip = new CopyOnWriteArrayList<>(); + int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismana_limit); + if(equipMap.entrySet().stream().filter(k ->{ + int itemType = SItem.getsItemMap().get(k.getKey()).getItemType(); + if(itemType==GlobalItemType.ESPECIAL_EQUIP){ + return true; + } + return false; + }).collect(Collectors.toSet()).size()>0){ + if (user.getEquipManager().getEspecialEquipMap().size() >=limit){ + String bagTitle = SErrorCodeEerverConfig.getI18NMessage("EquipTalismana_bag_limit_title"); + String bagContent = SErrorCodeEerverConfig.getI18NMessage("EquipTalismana_bag_limit_txt"); + String bagReward = getLimitReward(equipMap,filter); + int nowTime =(int) (TimeUtils.now()/1000); + MailLogic.getInstance().sendMail(user.getId(),bagTitle,bagContent,bagReward,nowTime,Global.MAIL_EFFECTIVE_TIME); + MessageUtil.nofityBagIsFull(user); + return; + } + } for (Map.Entry entry : equipMap.entrySet()) { int itemType = SItem.getsItemMap().get(entry.getKey()).getItemType(); if(!filter.contains(itemType)){ @@ -955,17 +974,35 @@ public class ItemUtil { List equipList = new CopyOnWriteArrayList<>(); List filter = new ArrayList<>(); filter.add(GlobalItemType.SOUL_MARK); - int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT); - if (user.getEquipManager().getSoulEquipMap().size() >=limit){ - String title = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_title"); - String content = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_txt"); - String reward = getLimitReward(equipMap,filter); - int nowTime =(int) (TimeUtils.now()/1000); - MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME); - MessageUtil.nofityBagIsFull(user); - return; - } +// int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT); +// if (user.getEquipManager().getSoulEquipMap().size() >=limit){ +// String title = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_title"); +// String content = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_txt"); +// String reward = getLimitReward(equipMap,filter); +// int nowTime =(int) (TimeUtils.now()/1000); +// MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME); +// MessageUtil.nofityBagIsFull(user); +// return; +// } + if(equipMap.entrySet().stream().filter(k ->{ + int itemType = SItem.getsItemMap().get(k.getKey()).getItemType(); + if(itemType==GlobalItemType.SOUL_MARK){ + return true; + } + return false; + }).collect(Collectors.toSet()).size()>0){ + int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT); + if (user.getEquipManager().getSoulEquipMap().size() >=limit){ + String title = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_txt"); + String reward = getLimitReward(equipMap,filter); + int nowTime =(int) (TimeUtils.now()/1000); + MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME); + MessageUtil.nofityBagIsFull(user); + return; + } + } for (Map.Entry entry : equipMap.entrySet()) { int itemType = SItem.getsItemMap().get(entry.getKey()).getItemType(); if(itemType!=GlobalItemType.SOUL_MARK){