鸿蒙信息单独获取 推送
parent
5776065109
commit
58cb744e2e
|
|
@ -30,6 +30,7 @@ import com.ljsd.jieling.logic.store.StoreLogic;
|
|||
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 com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||
import com.ljsd.jieling.thread.task.RPCServerTask;
|
||||
|
|
@ -190,44 +191,6 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
user.getPlayerInfoManager().getMonthCard().put(Global.LMONTHCARDID, (int) (System.currentTimeMillis() / 1000));
|
||||
Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),Global.LMONTHCARDID));
|
||||
}
|
||||
// 刷新鸿蒙阵
|
||||
HeroLogic.getInstance().addOrUpdateHongmeng(user);
|
||||
// 组装鸿蒙阵信息
|
||||
List<PlayerInfoProto.HongmengHeroInfo> hongmengHeroInfos = new ArrayList<>();
|
||||
Map<Integer, String> resonances = heroManager.getResonances();
|
||||
Map<Integer, Long> resonancesTime = heroManager.getResonancesTime();
|
||||
for (Map.Entry<Integer, String> entry : resonances.entrySet()) {
|
||||
PlayerInfoProto.HongmengHeroInfo hongmengHeroInfo = PlayerInfoProto.HongmengHeroInfo.newBuilder()
|
||||
.setGridId(entry.getKey())
|
||||
.setHeroId(entry.getValue())
|
||||
.setTime(resonancesTime.containsKey(entry.getKey()) ? (resonancesTime.get(entry.getKey()) - now < 0 ? 0 : (resonancesTime.get(entry.getKey()) - now) / 1000) : 0)
|
||||
.build();
|
||||
hongmengHeroInfos.add(hongmengHeroInfo);
|
||||
}
|
||||
// 组装鸿蒙守卫或者鸿蒙使者信息
|
||||
List<PlayerInfoProto.HongmengHeroInfo> hongmengGuardsProto = new ArrayList<>();
|
||||
Map<Integer, String> hongmengGuards = heroManager.getHongmengGuards();
|
||||
Map<Integer, Long> hongmengGuardTime = heroManager.getHongmengGuardTime();
|
||||
for (Map.Entry<Integer, String> entry : hongmengGuards.entrySet()) {
|
||||
PlayerInfoProto.HongmengHeroInfo hongmengHeroInfo = PlayerInfoProto.HongmengHeroInfo.newBuilder()
|
||||
.setGridId(entry.getKey())
|
||||
.setHeroId(entry.getValue())
|
||||
.setTime(hongmengGuardTime.containsKey(entry.getKey()) ? (hongmengGuardTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengGuardTime.get(entry.getKey()) - now) / 1000) : 0)
|
||||
.build();
|
||||
hongmengGuardsProto.add(hongmengHeroInfo);
|
||||
}
|
||||
|
||||
List<PlayerInfoProto.HongmengAddition> hongmengAdditions = new ArrayList<>();
|
||||
Map<HongMengAttributeEnum, HongMengAddAttribute> resonanceAddition = heroManager.getResonanceAddition();
|
||||
for (Map.Entry<HongMengAttributeEnum, HongMengAddAttribute> entry : resonanceAddition.entrySet()) {
|
||||
PlayerInfoProto.HongmengAddition hongmengAddition = PlayerInfoProto.HongmengAddition
|
||||
.newBuilder()
|
||||
.setAdditionType(entry.getKey().getPropertyId())
|
||||
.setValue(entry.getValue().value)
|
||||
.setHeroTid(entry.getValue().heroTid)
|
||||
.build();
|
||||
hongmengAdditions.add(hongmengAddition);
|
||||
}
|
||||
StoreLogic.reloadStoreInfo(user,7);//重载功能商店
|
||||
PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse
|
||||
= PlayerInfoProto.GetPlayerInfoResponse.newBuilder()
|
||||
|
|
@ -262,10 +225,6 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
.setExpeditionLeve(user.getExpeditionManager().getExpeditionLeve())
|
||||
.setHadLuckTime( user.getPlayerInfoManager().getLuckWheelLimitTime())
|
||||
.setHadAdvanceLuckTime(user.getPlayerInfoManager().getLuckAdvanceWheelLimitTime())
|
||||
.addAllHongmengGuards(hongmengGuardsProto)
|
||||
.setHongmengTablet(heroManager.getHongmengTablet())
|
||||
.addAllHongmengHeroInfos(hongmengHeroInfos)
|
||||
.addAllHongmengAdditions(hongmengAdditions)
|
||||
.build();
|
||||
ReportUtil.onReportEvent(user, ReportEventEnum.APP_LOGIN.getType());
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
package com.ljsd.jieling.handler.hero;
|
||||
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.HeroInfoProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class HongmengGetInfoRequestHandler extends BaseHandler<HeroInfoProto.ResonanceRequest> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.HONGMENG_GET_INFO_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processWithProto(ISession session, HeroInfoProto.ResonanceRequest proto) throws Exception {
|
||||
HeroLogic.getInstance().getHongmengInfo(session, MessageTypeProto.MessageType.HONGMENG_GET_INFO_RESPONSE);
|
||||
}
|
||||
}
|
||||
|
|
@ -43,6 +43,7 @@ import util.StringUtil;
|
|||
import util.TimeUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.Time;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
|
@ -3410,6 +3411,64 @@ public class HeroLogic{
|
|||
}
|
||||
|
||||
// ================共鸣、鸿蒙碑=========
|
||||
|
||||
/**
|
||||
* 获取鸿蒙阵信息
|
||||
* @param session
|
||||
* @param messageType
|
||||
* @throws Exception
|
||||
*/
|
||||
public void getHongmengInfo(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
HeroManager heroManager = user.getHeroManager();
|
||||
// 组装鸿蒙守卫或者鸿蒙使者信息
|
||||
// 刷新鸿蒙阵
|
||||
addOrUpdateHongmeng(user);
|
||||
// 组装鸿蒙阵信息
|
||||
List<HeroInfoProto.HongmengHeroInfo> hongmengHeroInfos = new ArrayList<>();
|
||||
Map<Integer, String> resonances = heroManager.getResonances();
|
||||
Map<Integer, Long> resonancesTime = heroManager.getResonancesTime();
|
||||
long now = TimeUtils.now();
|
||||
for (Map.Entry<Integer, String> entry : resonances.entrySet()) {
|
||||
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
|
||||
.setGridId(entry.getKey())
|
||||
.setHeroId(entry.getValue())
|
||||
.setTime(resonancesTime.containsKey(entry.getKey()) ? (resonancesTime.get(entry.getKey()) - now < 0 ? 0 : (resonancesTime.get(entry.getKey()) - now) / 1000) : 0)
|
||||
.build();
|
||||
hongmengHeroInfos.add(hongmengHeroInfo);
|
||||
}
|
||||
List<HeroInfoProto.HongmengHeroInfo> hongmengGuardsProto = new ArrayList<>();
|
||||
Map<Integer, String> hongmengGuards = heroManager.getHongmengGuards();
|
||||
Map<Integer, Long> hongmengGuardTime = heroManager.getHongmengGuardTime();
|
||||
for (Map.Entry<Integer, String> entry : hongmengGuards.entrySet()) {
|
||||
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
|
||||
.setGridId(entry.getKey())
|
||||
.setHeroId(entry.getValue())
|
||||
.setTime(hongmengGuardTime.containsKey(entry.getKey()) ? (hongmengGuardTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengGuardTime.get(entry.getKey()) - now) / 1000) : 0)
|
||||
.build();
|
||||
hongmengGuardsProto.add(hongmengHeroInfo);
|
||||
}
|
||||
|
||||
List<HeroInfoProto.HongmengAddition> hongmengAdditions = new ArrayList<>();
|
||||
Map<HongMengAttributeEnum, HongMengAddAttribute> resonanceAddition = heroManager.getResonanceAddition();
|
||||
for (Map.Entry<HongMengAttributeEnum, HongMengAddAttribute> entry : resonanceAddition.entrySet()) {
|
||||
HeroInfoProto.HongmengAddition hongmengAddition = HeroInfoProto.HongmengAddition
|
||||
.newBuilder()
|
||||
.setAdditionType(entry.getKey().getPropertyId())
|
||||
.setValue(entry.getValue().value)
|
||||
.setHeroTid(entry.getValue().heroTid)
|
||||
.build();
|
||||
hongmengAdditions.add(hongmengAddition);
|
||||
}
|
||||
HeroInfoProto.GetHongmengInfoResponse getHongmengInfoResponse = HeroInfoProto.GetHongmengInfoResponse.newBuilder()
|
||||
.addAllHongmengGuards(hongmengGuardsProto)
|
||||
.setHongmengTablet(heroManager.getHongmengTablet())
|
||||
.addAllHongmengHeroInfos(hongmengHeroInfos)
|
||||
.addAllHongmengAdditions(hongmengAdditions)
|
||||
.build();
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), getHongmengInfoResponse);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加或更新鸿蒙守卫
|
||||
* @param user
|
||||
|
|
@ -3523,8 +3582,34 @@ public class HeroLogic{
|
|||
}
|
||||
hero.setLevel(user, 1);
|
||||
}
|
||||
|
||||
}
|
||||
long now = TimeUtils.now();
|
||||
List<HeroInfoProto.HongmengHeroInfo> hongmengGuardsProto = new ArrayList<>();
|
||||
Map<Integer, String> hongmengGuards = heroManager.getHongmengGuards();
|
||||
Map<Integer, Long> hongmengGuardTime = heroManager.getHongmengGuardTime();
|
||||
for (Map.Entry<Integer, String> entry : hongmengGuards.entrySet()) {
|
||||
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
|
||||
.setGridId(entry.getKey())
|
||||
.setHeroId(entry.getValue())
|
||||
.setTime(hongmengGuardTime.containsKey(entry.getKey()) ? (hongmengGuardTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengGuardTime.get(entry.getKey()) - now) / 1000) : 0)
|
||||
.build();
|
||||
hongmengGuardsProto.add(hongmengHeroInfo);
|
||||
}
|
||||
List<HeroInfoProto.HongmengAddition> hongmengAdditions = new ArrayList<>();
|
||||
for (Map.Entry<HongMengAttributeEnum, HongMengAddAttribute> entry : resonanceAddition.entrySet()) {
|
||||
HeroInfoProto.HongmengAddition hongmengAddition = HeroInfoProto.HongmengAddition
|
||||
.newBuilder()
|
||||
.setAdditionType(entry.getKey().getPropertyId())
|
||||
.setValue(entry.getValue().value)
|
||||
.setHeroTid(entry.getValue().heroTid)
|
||||
.build();
|
||||
hongmengAdditions.add(hongmengAddition);
|
||||
}
|
||||
HeroInfoProto.HongmengInfoIndication hongmengInfoIndication = HeroInfoProto.HongmengInfoIndication.newBuilder()
|
||||
.addAllHongmengGuards(hongmengGuardsProto)
|
||||
.addAllHongmengAdditions(hongmengAdditions)
|
||||
.build();
|
||||
MessageUtil.sendIndicationMessage(user.getId(), hongmengInfoIndication);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue