From ff28574930a01ab7bf7d2b10f17d80a52a5700ac Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 9 Apr 2019 15:04:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=89=8B=E5=BC=95=E5=AF=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/GetPlayerInfoHandler.java | 13 +++++++++ .../handler/SaveNewPlayerPointHandler.java | 25 +++++++++++++++++ .../ljsd/jieling/logic/dao/PlayerManager.java | 15 +++++++++++ .../ljsd/jieling/logic/dao/UserManager.java | 2 ++ .../jieling/logic/player/PlayerLogic.java | 27 +++++++++++++++++++ 5 files changed, 82 insertions(+) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/SaveNewPlayerPointHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index e7dcbc24f..14a26553f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -15,6 +15,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + @Component public class GetPlayerInfoHandler extends BaseHandler{ @@ -49,11 +53,20 @@ public class GetPlayerInfoHandler extends BaseHandler{ + } + Map guidePoints = user.getPlayerInfoManager().getGuidePoints(); + List list = new ArrayList<>(); + for(Map.Entry guideItem : guidePoints.entrySet()){ + list.add(CommonProto.NewPlayerGuidePoint.newBuilder() + .setType(guideItem.getKey()) + . setId(guideItem.getValue()) + .build()); } CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getPlayerInfoManager().getMapId(), user.getMapManager().getCurMapId(),user.getMapManager()); PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse = PlayerInfoProto.GetPlayerInfoResponse.newBuilder() .setPlayer(player) + .addAllNewPlayerGuidePoint(list) .build(); try { MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_PLAYERINFO_RESPONSE_VALUE, getPlayerInfoResponse, true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveNewPlayerPointHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveNewPlayerPointHandler.java new file mode 100644 index 000000000..b352a7166 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveNewPlayerPointHandler.java @@ -0,0 +1,25 @@ +package com.ljsd.jieling.handler; + +import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.protocols.PlayerInfoProto; +import org.springframework.stereotype.Component; + +@Component +public class SaveNewPlayerPointHandler extends BaseHandler{ + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.SAVE_NEW_PLAYER_GUIDE_POINT_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + byte[] bytes = netData.parseClientProtoNetData(); + PlayerInfoProto.SaveNewPlayerPointRequest saveNewPlayerPointRequest = PlayerInfoProto.SaveNewPlayerPointRequest.parseFrom(bytes); + int id = saveNewPlayerPointRequest.getNewPlayerGuidePoint().getId(); + int type = saveNewPlayerPointRequest.getNewPlayerGuidePoint().getType(); + PlayerLogic.getInstance().saveNewPlayerPoint(iSession,type,id); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 15a76f448..673466931 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -8,6 +8,9 @@ import com.ljsd.jieling.db.mongo.MongoKey; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.util.MathUtils; +import java.util.HashMap; +import java.util.Map; + public class PlayerManager extends MongoBase { private String openId; @@ -36,6 +39,8 @@ public class PlayerManager extends MongoBase { private String clientVersion; + private Map guidePoints = new HashMap<>(); + public PlayerManager(){ this.setRootCollection(User._COLLECTION_NAME); } @@ -156,4 +161,14 @@ public class PlayerManager extends MongoBase { this.clientVersion = clientVersion; } + public Map getGuidePoints() { + return guidePoints; + } + + public void updateGuidePoint(int type,int id){ + updateString("guidePoints."+type, id); + guidePoints.put(type,id); + } + + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index 35911268d..130b8092e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -11,6 +11,7 @@ import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.TimeUtils; +import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -76,6 +77,7 @@ public class UserManager { playerManager.setGold(100000l); playerManager.setGem(9999); playerManager.setChargeGem(666); + playerManager.updateGuidePoint(1,1); playerManager.setCreateTime(TimeUtils.now()); SGameSetting gameSetting = SGameSetting.getGameSetting(); ItemUtil.drop(user,gameSetting.getBornItem()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java new file mode 100644 index 000000000..b569cbd4f --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -0,0 +1,27 @@ +package com.ljsd.jieling.logic.player; + +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.util.MessageUtil; + +public class PlayerLogic { + + private PlayerLogic(){} + + public static PlayerLogic getInstance(){ + return InnerClass.instance; + } + + static class InnerClass{ + public final static PlayerLogic instance = new PlayerLogic(); + } + + public void saveNewPlayerPoint(ISession session,int type,int id) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + user.getPlayerInfoManager().updateGuidePoint(type,id); + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.SAVE_NEW_PLAYER_GUIDE_POINT_RESPONSE_VALUE,null,true); + } +}