From 5cbba695bf31e3fcd8cd3de43f37a5cc66d4063e Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 24 Sep 2021 00:38:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=83=E7=95=8C=E5=90=88=E5=B9=B63--bug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/core/FunctionIdEnum.java | 2 +- .../core/function/SevenWorldFunction.java | 10 ++- .../jieling/logic/GlobalDataManaager.java | 12 +-- .../logic/activity/SevenWorldActivity.java | 81 ++++++++++++++++--- .../event/SevenWorldIntegralEvent.java | 33 ++++++++ .../ljsd/jieling/logic/item/ItemLogic.java | 7 +- .../logic/sevenworld/SevenWorldLogic.java | 73 +++++++++++++++-- .../ljsd/jieling/logic/store/StoreLogic.java | 3 + .../ljsd/jieling/thread/task/MinuteTask.java | 7 ++ .../java/com/ljsd/jieling/util/ItemUtil.java | 4 + 10 files changed, 195 insertions(+), 37 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SevenWorldIntegralEvent.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java index 542f4a98f..50abba999 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java @@ -69,7 +69,7 @@ public enum FunctionIdEnum { GodTree(84,null), HongMeng(86,null), CrossYuxulundao(87,null),//跨服-玉虚论道 - CrossSevenWorld(112,null),//七界试炼 + CrossSevenWorld(112,new SevenWorldFunction()),//七界试炼 WeekGood(9091,null), ; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/function/SevenWorldFunction.java b/serverlogic/src/main/java/com/ljsd/jieling/core/function/SevenWorldFunction.java index a198ec1b2..fbcba2ed9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/function/SevenWorldFunction.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/function/SevenWorldFunction.java @@ -4,6 +4,8 @@ import com.ljsd.jieling.core.FunctionManager; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.logic.dao.TimeControllerOfFunction; +import com.ljsd.jieling.logic.rank.RankContext; +import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.logic.sevenworld.SevenWorldLogic; /** @@ -15,13 +17,15 @@ public class SevenWorldFunction implements FunctionManager { @Override public void closeAction(){ - // 发奖 - SevenWorldLogic.getInstance().sendRankReward(); } @Override public void startAction(TimeControllerOfFunction timeControllerOfFunction) { // 清除排行榜信息 - RedisUtil.getInstence().del(RedisKey.SEVEN_WORLD_INTEGRAL_RANK); + String crossRedisKey = RankContext.getRankEnum(RankEnum.CROSS_SEVEN_WORLD_RANK.getType()).getCrossRedisKey(); + String key = RedisUtil.getInstence().getKey(crossRedisKey, "",false); + RedisUtil.getInstence().del(key); + SevenWorldLogic.setEnd(false); + System.out.printf("七界试炼活动开始,清理排行榜...{%s}\n",key); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index 9f98105aa..f5b5bee32 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -38,6 +38,7 @@ import com.ljsd.jieling.logic.mission.data.DataManagerDistributor; import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.redpacket.WelfareRedPackSendHandler; +import com.ljsd.jieling.logic.sevenworld.SevenWorldLogic; import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; @@ -211,12 +212,6 @@ public class GlobalDataManaager implements IManager { } for(Integer id: closeList){ - /* TimeControllerOfFunction timeControllerOfFunction = timeControllerOfFunctionMap.get(id); - if(timeControllerOfFunction != null && timeControllerOfFunction.getStartTime()!=openTimeOfFuntionCache.get(id).getStartTime()){ - needUpdate = true; - globalSystemControl.updateTimeControllerOfFunction(openTimeOfFuntionCache.get(id)); - reallyCloseList.add(id);' - }*/ openTimeOfFuntionCache.remove(id); } @@ -426,13 +421,12 @@ public class GlobalDataManaager implements IManager { // 距离上次登陆相隔几天 int num = TimeUtils.differentDays(user.getPlayerInfoManager().getLoginTime(), TimeUtils.now()); - // 四灵试炼,计算每天次数 FourChallengeLogic.getInstance().addFourChallengeNum(user,num); // 助战清理 HelpHeroLogic.getInstance().clearHelpInfo(user); - // 公会援助刷新 -// GuildLogic.getInstance().everyDayFlushHelpLog(user); + // 七界推送 + SevenWorldLogic.getInstance().sevenWorldInfoIndication(session); // GuildChallengeLogic.getInstance().resetBossDamage(user); if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,0)){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenWorldActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenWorldActivity.java index 7e52dcf0a..efacd3286 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenWorldActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenWorldActivity.java @@ -5,6 +5,10 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.SevenWorldIntegralEvent; +import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -21,6 +25,7 @@ import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; import java.util.ArrayList; +import java.util.Optional; import java.util.Set; /** @@ -36,6 +41,49 @@ public class SevenWorldActivity extends AbstractActivity { SevenWorldActivity(int id) { super(id); + Poster.getPoster().listenEvent(this, SuperBoxEvent.class); + Poster.getPoster().listenEvent(this, SevenWorldIntegralEvent.class); + } + + @Override + public void onEvent(IEvent event) throws Exception { + int uid = 0; + int param1 = 0; + int param2 = 0; + // 购买礼包 + if (event instanceof SuperBoxEvent) { + SuperBoxEvent event1 = (SuperBoxEvent) event; + uid = event1.getUserId(); + param1 = event1.getGiftId(); + } + if (event instanceof SevenWorldIntegralEvent) { + SevenWorldIntegralEvent event1 = (SevenWorldIntegralEvent) event; + uid = event1.getUid(); + param2 = event1.getIntegral(); + } + if (uid == 0) { + return; + } + // 验证玩家信息和活动信息 + User user = UserManager.getUser(uid); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null) { + return; + } + // 已购买礼包 + if (param1 == GIFT) { + ActivityProgressInfo info = Optional.ofNullable(mission.getActivityMissionMap()).map(v -> v.get(-1)).orElse(null); + if (info != null) { + info.setState(1); + mission.getActivityMissionMap().put(-1, info); + } + } + // 七界秘宝积分 + if (param2 > 0){ + mission.setV(mission.getV()+param2); + } + // 状态推送 + sendActivityProgress(user, mission, null); } @Override @@ -51,13 +99,18 @@ public class SevenWorldActivity extends AbstractActivity { if (bag != null){ bag.setOpen(true); } + ActivityProgressInfo info = new ActivityProgressInfo(); + // 礼包是否购买的状态 + info.setState(0); + user.getActivityManager().getActivityMissionMap().get(id).getActivityMissionMap().put(-1,info); + LOGGER.info("七界秘宝初始化...{}",id); } @Override public void onActivityEndOnMySelf(User user) throws Exception { // 删除活动积分 - int removeItemId = STableManager.getConfig(SQijieStage.class).get(0).getTreasureIntegral()[0]; + int removeItemId = STableManager.getConfig(SQijieStage.class).get(1001).getTreasureIntegral()[0]; Item item = user.getItemManager().getItem(removeItemId); if(item!=null){ int[][] cost = {{item.getItemId(), (int) item.getItemNum()}}; @@ -81,19 +134,28 @@ public class SevenWorldActivity extends AbstractActivity { throw new ErrorCodeException(ErrorCode.HAD_TAKE_REWARD); } SQijieTreasure treasure = STableManager.getConfig(SQijieTreasure.class).get(missionId); - CommonProto.Drop.Builder drop = null; + CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder(); // 未领取 if (progressInfo.getState() == ActivityType.WILL_TAKE && checkValue(user,missionId)){ - drop = ItemUtil.drop(user, treasure.getReward(), BIReason.SEVEN_WORLD_TREASURE); + // 满足挑战,普通领取 + ItemUtil.drop(user, treasure.getReward(), drop, BIReason.SEVEN_WORLD_TREASURE); progressInfo.setState(ActivityType.HAD_TAKED); + // 购买礼包,完美领取 + if (checkGift(user)){ + ItemUtil.drop(user, treasure.getReward(), drop, BIReason.SEVEN_WORLD_TREASURE); + progressInfo.setState(ActivityType.FINISH_TAKED); + } reportTakeActivityReward(user,treasure.getReward(),missionId); } // 完美领取 if (progressInfo.getState() == ActivityType.HAD_TAKED && checkGift(user)){ - drop = ItemUtil.drop(user, treasure.getTreasureReward(), BIReason.SEVEN_WORLD_TREASURE); + ItemUtil.drop(user, treasure.getTreasureReward(), drop, BIReason.SEVEN_WORLD_TREASURE); progressInfo.setState(ActivityType.FINISH_TAKED); reportTakeActivityReward(user,treasure.getTreasureReward(),missionId); } + if (drop.getItemlistCount() <= 0){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } // 更新数据库 mission.getActivityMissionMap().put(missionId, progressInfo); // 发送奖励 @@ -110,8 +172,7 @@ public class SevenWorldActivity extends AbstractActivity { * @return */ private boolean checkGift(User user){ - ReceiveWelfareBag bag = (ReceiveWelfareBag)user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(GIFT); - return bag != null && bag.isOpen() && bag.isBought(); + return user.getActivityManager().getActivityMissionMap().get(id).getActivityMissionMap().get(-1).getState() == 1; } /** @@ -127,12 +188,8 @@ public class SevenWorldActivity extends AbstractActivity { return false; } int[][] integral = treasure.getIntegral(); - Item item = user.getItemManager().getItem(integral[0][0]); - if (item == null){ - LOGGER.error("七界秘宝道具不存,uid:{},itemId:{}",user.getId(),integral[0][0]); - return false; - } - return item.getItemNum() >= integral[0][1]; + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + return mission.getV() >= integral[0][1]; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SevenWorldIntegralEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SevenWorldIntegralEvent.java new file mode 100644 index 000000000..7c54aff9b --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SevenWorldIntegralEvent.java @@ -0,0 +1,33 @@ +package com.ljsd.jieling.logic.activity.event; + +/** + * @Author hj + * @Date 2021/9/17 15:00:01 + * @Description: + * @Version 1.0 + */ +public class SevenWorldIntegralEvent implements IEvent { + private int uid; + private int integral; + + public SevenWorldIntegralEvent(int uid, int integral) { + this.uid = uid; + this.integral = integral; + } + + public int getUid() { + return uid; + } + + public void setUid(int uid) { + this.uid = uid; + } + + public int getIntegral() { + return integral; + } + + public void setIntegral(int integral) { + this.integral = integral; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index 705fb8de4..60c64935a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -1028,10 +1028,9 @@ public class ItemLogic { user.getItemManager().removeItem(item.getId()); continue; } - LOGGER.info("清理玩家道具,uid:{},type:{},reason:{},item:{}",uid,type,reason,item.getId()); - int[][] cost= new int[1][]; - cost[0] = new int[]{item1.getItemId(),(int)item1.getItemNum()}; - ItemUtil.itemCost(user,cost,reason,0); + LOGGER.info("清理玩家道具,uid:{},type:{},reason:{},item:{}:{}",uid,type,reason,item1.getItemId(),item1.getItemNum()); + int[][] cost= new int[][]{{item1.getItemId(),(int)item1.getItemNum()}}; + ItemUtil.itemCost(user,cost,reason,-999); } } }catch (Exception e){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java index a93927031..9cfcab8ce 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java @@ -11,6 +11,8 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.GlobleSystemLogic; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.SevenWorldIntegralEvent; import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.TeamEnum; import com.ljsd.jieling.logic.dao.TeamPosHeroInfo; @@ -26,8 +28,10 @@ import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.rank.RankContext; import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; +import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.CBean2Proto; import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; import config.*; import manager.STableManager; import org.slf4j.Logger; @@ -35,6 +39,7 @@ import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.ZSetOperations; import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; +import rpc.protocols.MessageTypeProto; import rpc.protocols.PlayerInfoProto; import util.MathUtils; import util.StringUtil; @@ -62,6 +67,16 @@ public class SevenWorldLogic { return instance; } + private static boolean end = false; + + public static boolean isEnd() { + return end; + } + + public static void setEnd(boolean end) { + SevenWorldLogic.end = end; + } + /** * 活动开启状态 * @param user @@ -99,12 +114,24 @@ public class SevenWorldLogic { } // 开关 boolean open = SevenWorldLogic.open(user); - if (!true){ + if (!open){ throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN,"功能未开启"); } return user; } + /** + * 七界推送 + * @param session + * @throws Exception + */ + public void sevenWorldInfoIndication(ISession session) throws Exception { + PlayerInfoProto.SevenWorldInfoRequest.Builder builder = PlayerInfoProto.SevenWorldInfoRequest.newBuilder(); + builder.setTierId(0); + PlayerInfoProto.SevenWorldInfoResponse sevenWorldInfo = getSevenWorldInfo(session.getUid(), builder.build()); + MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.SevenWorldInfoIndication_VALUE,sevenWorldInfo,true); + } + /** * 操作七界试炼界面信息 * @param uid @@ -159,7 +186,7 @@ public class SevenWorldLogic { Integer relic = user.getPlayerInfoManager().getSevenWorldRelic().get(relicId); // null表示遗物未解锁 if (relic == null){ - SQijieHolyConfig config = STableManager.getConfig(SQijieHolyConfig.class).get(relic); + SQijieHolyConfig config = STableManager.getConfig(SQijieHolyConfig.class).get(relicId); if (config == null){ throw new ErrorCodeException(ErrorCode.CFG_NULL,"遗物信息未找到"); } @@ -307,15 +334,30 @@ public class SevenWorldLogic { ItemUtil.drop(user,stage.getReward(),drop,BIReason.SEVEN_WORLD_CHALLENGE); // 星界奖励,有加成 int[][] jieLingReward = stage.getJielingReward(); + // 奖励的拼接字符串 + StringBuilder rewardStr = new StringBuilder(); for (int[] reward : jieLingReward) { + // 向上取整积分 int ceil = (int) Math.ceil(reward[1] * (buff / 10000)); - reward[1] = reward[1]+ceil; + // 排行榜积分 + if (reward[0] == 1241) { + if (isEnd()) { + // 规定时间不获得积分 + continue; + } + // 排行榜添加积分 + addRank(user.getId(),reward[1] + ceil); + } + rewardStr.append(reward[0]).append("#").append(reward[1] + ceil).append("|"); } - ItemUtil.drop(user,jieLingReward,drop,BIReason.SEVEN_WORLD_CHALLENGE); - // 排行榜添加积分 - addRank(user.getId(),jieLingReward[1][1]); + // string转int二维数组 + int[][] rewardMap = StringUtil.parseFiledInt2(rewardStr.substring(0, rewardStr.length() - 1)); + ItemUtil.drop(user,rewardMap,drop,BIReason.SEVEN_WORLD_CHALLENGE); // 七界秘宝积分,没有加成 ItemUtil.drop(user,new int[][]{stage.getTreasureIntegral()},drop,BIReason.SEVEN_WORLD_CHALLENGE); + // 事件监听 + Poster.getPoster().dispatchEvent(new SevenWorldIntegralEvent(user.getId(),stage.getTreasureIntegral()[1])); + response.setDrop(drop); } @@ -385,8 +427,12 @@ public class SevenWorldLogic { * 结束发送奖励 */ public void sendRankReward(){ + if (!isTime()){ + return; + } // 排行榜 - Set> range = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.SEVEN_WORLD_INTEGRAL_RANK,"",0,-1); + String crossRedisKey = RankContext.getRankEnum(RankEnum.CROSS_SEVEN_WORLD_RANK.getType()).getCrossRedisKey(); + Set> range = RedisUtil.getInstence().getZsetreverseRangeWithScores(crossRedisKey,"",0,-1,false); // 排名 int rank = 1; for (ZSetOperations.TypedTuple tuple : range) { @@ -412,8 +458,19 @@ public class SevenWorldLogic { } rank++; } + SevenWorldLogic.setEnd(true); + System.out.print("七界试炼活动结束,发奖完成...\n"); } - + /** + * 每周末的23:30分发奖 + * @return + */ + private boolean isTime(){ + int week = TimeUtils.getDayOfWeek(); + int hour = TimeUtils.getHourOfDay(); + int minute = TimeUtils.getMiunte(); + return week == 7 && hour == 23 && minute == 30; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index 4d68c9efa..c19e611d5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -373,6 +373,9 @@ public class StoreLogic implements IEventHandler { } } } + if(storeManager.getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){ + continue; + } if(sStoreTypeConfig.getStoreOpenRule() == 7){ long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_SERVER,0, 1); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java index 8ba3cb017..95abd3e28 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -32,6 +32,7 @@ import com.ljsd.jieling.logic.help.HelpHeroLogic; import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.question.QuestionLogic; import com.ljsd.jieling.logic.rank.CrossRankManager; +import com.ljsd.jieling.logic.sevenworld.SevenWorldLogic; import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.network.server.ProtocolsManager; @@ -109,6 +110,12 @@ public class MinuteTask extends Thread { e.printStackTrace(); LOGGER.error("Exception::=>{}",e.toString()); } + try { + SevenWorldLogic.getInstance().sendRankReward(); + }catch (Exception e){ + e.printStackTrace(); + LOGGER.error("七界Exception::=>{}",e.toString()); + } try { // 跨服分组 everyMondayZeroClockTask(); 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 ce352f22c..8e37f21f2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -1033,6 +1033,10 @@ public class ItemUtil { if(!sendTemToFront.isEmpty()){ MessageUtil.sendBagIndication(user.getId(),1,sendTemToFront,false); } + if (subReason == -999){ + // -999不算任务 + return; + } user.getUserMissionManager().onGameEvent(user,GameEvent.CONSUMER_MATERIAL,useItemMap); Poster.getPoster().dispatchEvent(new UseItemEvent(user.getId(),useItemMap)); }