获取编队
parent
53361a76b7
commit
ad8bef2b7e
|
@ -0,0 +1,21 @@
|
|||
package com.ljsd.jieling.handler;
|
||||
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class GetAllTeamPosHandler extends BaseHandler{
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.GET_TEAMPOS_INFO_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
HeroLogic.getInstance().getAllTeamPosInfo(iSession);
|
||||
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@ package com.ljsd.jieling.handler;
|
|||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.HeroInfoProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
@ -19,9 +20,10 @@ public class SaveTeamPosHandler extends BaseHandler{
|
|||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
HeroInfoProto.TeamposSaveRequest teamposSaveRequest = HeroInfoProto.TeamposSaveRequest.parseFrom(netData.parseClientProtoNetData());
|
||||
int teamId = teamposSaveRequest.getTeamId();
|
||||
List<String> heroIdsList = teamposSaveRequest.getHeroIdsList();
|
||||
List<Integer> pokemonIdsList = teamposSaveRequest.getPokemonIdsList();
|
||||
CommonProto.TeamPosInfo teamPosInfo = teamposSaveRequest.getTeamPosInfo();
|
||||
int teamId = teamPosInfo.getTeamId();
|
||||
List<String> heroIdsList = teamPosInfo.getHeroIdsList();
|
||||
List<Integer> pokemonIdsList = teamPosInfo.getPokemonIdsList();
|
||||
HeroLogic.getInstance().saveTeamPos(iSession,teamId,heroIdsList,pokemonIdsList);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,8 @@ public class HeroLogic {
|
|||
|
||||
private HeroLogic(){}
|
||||
|
||||
|
||||
|
||||
public static class Instance {
|
||||
public final static HeroLogic instance = new HeroLogic();
|
||||
}
|
||||
|
@ -174,20 +176,51 @@ public class HeroLogic {
|
|||
return sb.toString();
|
||||
}
|
||||
|
||||
public void getAllTeamPosInfo(ISession session) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
List<CommonProto.TeamPosInfo> teamPosInfoList = new ArrayList<>();
|
||||
TeamPosManager teamPosManager = user.getTeamPosManager();
|
||||
Map<Integer, List<String>> teamPosForHero = teamPosManager.getTeamPosForHero();
|
||||
Map<Integer, String> teamNames = teamPosManager.getTeamNames();
|
||||
Map<Integer, List<Integer>> teamPosForPoken = teamPosManager.getTeamPosForPoken();
|
||||
for(Integer teamId:teamPosForHero.keySet()){
|
||||
List<String> heroIds = teamPosForHero.get(teamId);
|
||||
List<Integer> pokenIds = teamPosForPoken.get(teamId);
|
||||
if(null == pokenIds){
|
||||
pokenIds = new ArrayList<>(1);
|
||||
}
|
||||
String teamName = teamNames.get(teamId);
|
||||
if(StringUtil.isEmpty(teamName)){
|
||||
teamName="";
|
||||
}
|
||||
teamPosInfoList.add(
|
||||
CommonProto.TeamPosInfo.newBuilder()
|
||||
.addAllHeroIds(heroIds)
|
||||
.addAllPokemonIds(pokenIds)
|
||||
.setTeamName(teamName)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
HeroInfoProto.GetAllTeamPosResponse build = HeroInfoProto.GetAllTeamPosResponse.newBuilder().addAllTeamPosInfo(teamPosInfoList).build();
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.GET_TEAMPOS_INFO_RESPONSE_VALUE,build,true);
|
||||
}
|
||||
|
||||
public void saveTeamPos(ISession iSession,int teamId,List<String> heroIds ,List<Integer> pokemonoIds) throws Exception {
|
||||
User user = UserManager.getUser(iSession.getUid());
|
||||
String err = checkTeamPos(user, teamId, heroIds);
|
||||
String err = checkTeamPos(user, heroIds);
|
||||
if(!"".equals(err)){
|
||||
MessageUtil.sendMessage(iSession,0,MessageTypeProto.MessageType.TEAM_POS_SAVE_RESPONSE_VALUE,null,true);
|
||||
MessageUtil.sendErrorResponse(iSession,0,MessageTypeProto.MessageType.TEAM_POS_SAVE_RESPONSE_VALUE,err);
|
||||
return;
|
||||
}
|
||||
user.getTeamPosManager().changeTeamInfo(teamId,heroIds,pokemonoIds);
|
||||
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.TEAM_POS_SAVE_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
|
||||
public String checkTeamPos(User user,int teamId,List<String> heroIds){
|
||||
public String checkTeamPos(User user,List<String> heroIds){
|
||||
if(heroIds ==null || heroIds.isEmpty()){
|
||||
return "";
|
||||
return "队伍信息错误";
|
||||
}
|
||||
|
||||
Set<String> cacheHeroIds = new HashSet<>();
|
||||
Collection<List<String>> values = user.getTeamPosManager().getTeamPosForHero().values();
|
||||
for(String heroId : heroIds){
|
||||
|
|
Loading…
Reference in New Issue