From deec982cb9400ab7ca7c898782ffa2807c526d47 Mon Sep 17 00:00:00 2001 From: gaojie Date: Tue, 22 Jan 2019 16:30:21 +0800 Subject: [PATCH] =?UTF-8?q?GM=E6=B7=BB=E5=8A=A0=E5=8D=A1=E7=89=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/globals/GlobalGm.java | 1 + .../ljsd/jieling/handler/DrawHeroHandler.java | 15 --------------- .../handler/GameGM/GMRequestHandler.java | 19 ++++++++++++++++++- .../java/com/ljsd/jieling/util/ItemUtil.java | 4 ++++ .../main/java/network/client/NettyClient.java | 7 ++++--- 5 files changed, 27 insertions(+), 19 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java index c843ceb1f..2c5a3621b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java @@ -2,4 +2,5 @@ package com.ljsd.jieling.globals; public interface GlobalGm { int ADD_ITEM = 0;//添加道具 + int ADD_CARD = 1; //添加卡牌 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/DrawHeroHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/DrawHeroHandler.java index ef16e0f22..f1bace7ba 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/DrawHeroHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/DrawHeroHandler.java @@ -39,37 +39,22 @@ public class DrawHeroHandler extends BaseHandler { CommonProto.Hero hero1 = CommonProto.Hero.newBuilder() .setId("aaa") .setHeroId(1) - .setAttack(2) .setStar(2) .setLevel(1) - .setHp(1000) - .setMDefence(2000) - .setPDefence(3000) - .setSpeed(4000) .build(); CommonProto.Hero hero2 = CommonProto.Hero.newBuilder() .setId("bbb") .setHeroId(2) - .setAttack(2) .setStar(2) .setLevel(1) - .setHp(1000) - .setMDefence(2000) - .setPDefence(3000) - .setSpeed(4000) .build(); CommonProto.Hero hero3 = CommonProto.Hero.newBuilder() .setId("ccc") .setHeroId(3) - .setAttack(2) .setStar(2) .setLevel(1) - .setHp(1000) - .setMDefence(2000) - .setPDefence(3000) - .setSpeed(4000) .build(); heroList.add(hero1); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index c804af6c1..89043b173 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -9,6 +9,7 @@ import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -34,14 +35,30 @@ public class GMRequestHandler extends BaseHandler{ } String[] commandArray = command.split("#"); int uid = Integer.parseInt(commandArray[0]); - int gmCommandType = Integer.parseInt(commandArray[1]);// type 0:添加道具 + int gmCommandType = Integer.parseInt(commandArray[1]);// type 0:添加道具 1:卡牌 int prarm1 = 0, prarm2 = 0; User cUser = UserManager.getUser(uid); switch (gmCommandType){ case GlobalGm.ADD_ITEM: giveItem(cUser,prarm1,prarm2); break; + case GlobalGm.ADD_CARD: + giveHero(cUser,prarm1,prarm2); + break; } + try { + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, null, true); + LOGGER.info("back to client!"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void giveHero(User cUser, int cardId, int cardNum) throws Exception { + CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); + Map cardMap = new ConcurrentHashMap<>(); + cardMap.put(cardId,cardNum); + ItemUtil.addCard(cUser,cardMap,dropBuilder); } private void giveItem(User cUser,int itemId,int itemNum) throws Exception { 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 244ab067b..2de29b2fe 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -133,6 +133,9 @@ public class ItemUtil { ItemManager itemManager = user.getItemManager(); for (Map.Entry entry : itemMap.entrySet()) { SItem sItem = SItem.getsItemMap().get(entry.getKey()); + if (sItem == null){ + continue; + } Item item = itemManager.getItem(entry.getKey()); if (item == null){ item = itemManager.newItem(entry.getKey(), entry.getValue()); @@ -191,6 +194,7 @@ public class ItemUtil { addCard(user, entry.getKey(),heroList); } } + dropBuilder.addAllHero(heroList); } public static void addCard(User user,int cardId,List heroList) throws Exception { diff --git a/test/src/main/java/network/client/NettyClient.java b/test/src/main/java/network/client/NettyClient.java index d406bb0ca..160c355dd 100644 --- a/test/src/main/java/network/client/NettyClient.java +++ b/test/src/main/java/network/client/NettyClient.java @@ -2,7 +2,7 @@ package network.client; import com.google.protobuf.*; import com.ljsd.jieling.netty.cocdex.Tea; -import com.ljsd.jieling.protocols.GMCommandProto; +import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.HeroInfoProto; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.PlayerInfoProto; @@ -44,6 +44,7 @@ public class NettyClient { handler.sendRequest_jieling(makeFinalMessage(gameMessage, MessageTypeProto.MessageType.LOGIN_REQUEST_VALUE)); handler.sendRequest_jieling(makeFinalMessage(getHero(), MessageTypeProto.MessageType.GET_HEROINFO_REQUEST_VALUE)); handler.sendRequest_jieling(makeFinalMessage(getRandomHero(), MessageTypeProto.MessageType.HERO_RAND_REQQUEST_VALUE)); + handler.sendRequest_jieling(makeFinalMessage(gmRequest(), MessageTypeProto.MessageType.GM_REQUEST_VALUE)); } @@ -69,8 +70,8 @@ public class NettyClient { return finalData; } - public static GMCommandProto.GMCommand gmRequest(){ - return GMCommandProto.GMCommand.newBuilder().setCommand("10000001#0#1#100").build(); + public static CommonProto.GMCommand gmRequest(){ + return CommonProto.GMCommand.newBuilder().setCommand("10000001#0#1#100").build(); }