鸿蒙信息单独获取 推送

back_recharge
jiahuiwen 2020-12-21 16:05:19 +08:00
parent 5776065109
commit 58cb744e2e
3 changed files with 108 additions and 43 deletions

View File

@ -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 {

View File

@ -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);
}
}

View File

@ -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);
}
/**