diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addholy.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addholy.java new file mode 100644 index 000000000..2d1444124 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addholy.java @@ -0,0 +1,66 @@ +package com.ljsd.jieling.kefu; + +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.dao.ExpeditionItem; +import com.ljsd.jieling.logic.dao.ExpeditionManager; +import com.ljsd.jieling.logic.dao.PlayerManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.expedition.ExpeditionLogic; +import com.ljsd.jieling.logic.mission.GameEvent; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.CommonProto; +import com.ljsd.jieling.protocols.Expedition; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.util.MessageUtil; +import config.SExpeditionHolyConfig; +import manager.STableManager; + +import java.util.Map; + +public class Cmd_addholy extends GmRoleAbstract{ + @Override + public boolean exec(String[] args) throws Exception { + + + if(args.length!=1){ + return true; + } + int itemId = Integer.valueOf(args[0]); + ISession iSession = OnlineUserManager.getSessionByUid(getUser().getId()); + + SExpeditionHolyConfig sExpeditionHolyConfig = STableManager.getConfig(SExpeditionHolyConfig.class).get(itemId); + if(sExpeditionHolyConfig==null){ + throw new ErrorCodeException(ErrorCode.CFG_NULL); + } + + //更新背包 + ExpeditionItem expeditionItem = new ExpeditionItem(iSession.getUid(), itemId); + ExpeditionManager expeditionManager = getUser().getExpeditionManager(); + expeditionManager.addPropertyItems(expeditionItem); + + //更新effectitem 参与计算 + if(expeditionManager.getEffectItems().size()==0){ + ExpeditionLogic.getFirstRankHoly(expeditionManager); + } + Map effectItems = expeditionManager.getEffectItems(); + SExpeditionHolyConfig orDefault = effectItems.getOrDefault(sExpeditionHolyConfig.geteffect(), null); + + if(orDefault==null){ + effectItems.put(sExpeditionHolyConfig.geteffect(),sExpeditionHolyConfig); + }else { + if(sExpeditionHolyConfig.gettype()>orDefault.gettype()){ + effectItems.put(sExpeditionHolyConfig.geteffect(),sExpeditionHolyConfig); + } + } + + //notify client + Expedition.ExpeditionEquipIndication.Builder indication = Expedition.ExpeditionEquipIndication.newBuilder(); + indication.addEquipIds(CommonProto.ExpeditionEquip.newBuilder().setId(expeditionItem.getId()).setEquiptId(expeditionItem.getEquipId()).build()); + MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_HOLY_BAG_INDICATION_VALUE, indication.build(), true); + + getUser().getUserMissionManager().onGameEvent(getUser(), GameEvent.EXPEDITION_TIMES); + return true; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_test_lock.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_test_lock.java new file mode 100644 index 000000000..9871cda0d --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_test_lock.java @@ -0,0 +1,28 @@ +package com.ljsd.jieling.kefu; + +import com.ljsd.jieling.core.Lockeys; + +import java.util.HashSet; +import java.util.Set; + +/** + * 锁操作 + * //test_lock 1 + * CreateDate: 2020/6/11 11:48 + */ +public class Cmd_test_lock extends GmAbstract { + @Override + public boolean exec(String[] args) throws Exception { + Set sendUids = new HashSet<>(); + sendUids.add(Integer.valueOf( args[0])); + Lockeys.getLockeys().lock("guild",sendUids); + int i=1; + while (i++<10){ + String name = Thread.currentThread().getName(); + Thread.currentThread().sleep(1000); + System.out.println("name"+name+" = [" + i + "]"); + } + return true; + } + +}