sore flush
parent
29d1439c50
commit
8462e03b43
|
@ -724,6 +724,12 @@ public class MapManager extends MongoBase {
|
||||||
endlessMapInfo.setCurMapId(mapId);
|
endlessMapInfo.setCurMapId(mapId);
|
||||||
updateString("endlessMapInfo.curMapId",mapId);
|
updateString("endlessMapInfo.curMapId",mapId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateEndlessHero(Map<String, Integer> endlessHeroInfo){
|
||||||
|
endlessMapInfo.setEndlessHeroInfo(endlessHeroInfo);
|
||||||
|
updateString("endlessMapInfo.endlessHeroInfo",endlessHeroInfo);
|
||||||
|
}
|
||||||
|
|
||||||
public void addEndlessSign(int mapId,int cellId,String info){
|
public void addEndlessSign(int mapId,int cellId,String info){
|
||||||
if(endlessMapInfo.getMapSign()==null){
|
if(endlessMapInfo.getMapSign()==null){
|
||||||
endlessMapInfo.setMapSign(new HashMap<>());
|
endlessMapInfo.setMapSign(new HashMap<>());
|
||||||
|
|
|
@ -10,6 +10,7 @@ import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||||
import com.ljsd.jieling.handler.map.MapLogic;
|
import com.ljsd.jieling.handler.map.MapLogic;
|
||||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||||
import com.ljsd.jieling.logic.activity.FightMainEventHandler;
|
import com.ljsd.jieling.logic.activity.FightMainEventHandler;
|
||||||
|
import com.ljsd.jieling.logic.activity.RemoveEventHeroHandler;
|
||||||
import com.ljsd.jieling.logic.activity.UserLevelEventHandler;
|
import com.ljsd.jieling.logic.activity.UserLevelEventHandler;
|
||||||
import com.ljsd.jieling.logic.arena.ArenaLogic;
|
import com.ljsd.jieling.logic.arena.ArenaLogic;
|
||||||
import com.ljsd.jieling.logic.blood.BloodLogic;
|
import com.ljsd.jieling.logic.blood.BloodLogic;
|
||||||
|
@ -241,6 +242,7 @@ public class GlobalDataManaager {
|
||||||
new RPCServerTask(configurableApplicationContext).start();
|
new RPCServerTask(configurableApplicationContext).start();
|
||||||
new RPCGmServerTask(configurableApplicationContext).start();
|
new RPCGmServerTask(configurableApplicationContext).start();
|
||||||
new UserLevelEventHandler();
|
new UserLevelEventHandler();
|
||||||
|
new RemoveEventHeroHandler();
|
||||||
new FightMainEventHandler();
|
new FightMainEventHandler();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.error("e",e);
|
LOGGER.error("e",e);
|
||||||
|
@ -305,12 +307,7 @@ public class GlobalDataManaager {
|
||||||
FriendLogic.getInstance().refreshState(session);
|
FriendLogic.getInstance().refreshState(session);
|
||||||
|
|
||||||
PlayerLogic.getInstance().sendTimingMail(user);
|
PlayerLogic.getInstance().sendTimingMail(user);
|
||||||
// int sendDays = user.getPlayerInfoManager().getSendDays();
|
|
||||||
// int differentDays = TimeUtils.differentDaysByHour( user.getPlayerInfoManager().getLoginTime(),System.currentTimeMillis(), 5);
|
|
||||||
// int days = sendDays + differentDays;
|
|
||||||
// PlayerLogic.getInstance().sendTestWelfareMail(user,sendDays+1,sendDays+differentDays);
|
|
||||||
// user.getPlayerInfoManager().setSendDays(days);
|
|
||||||
// MapLogic.getInstance().towerAutoReset(session,fBuilder);
|
|
||||||
if(fBuilder!=null){
|
if(fBuilder!=null){
|
||||||
fBuilder.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(user.getPlayerInfoManager().getSign()+1).setState(user.getPlayerInfoManager().getSignTotay()).build());
|
fBuilder.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(user.getPlayerInfoManager().getSign()+1).setState(user.getPlayerInfoManager().getSignTotay()).build());
|
||||||
user.getPlayerInfoManager().setLoginTime(TimeUtils.now());
|
user.getPlayerInfoManager().setLoginTime(TimeUtils.now());
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
package com.ljsd.jieling.logic.activity;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||||
|
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||||
|
import com.ljsd.jieling.logic.activity.event.RemoveHeroEvent;
|
||||||
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class RemoveEventHeroHandler implements IEventHandler{
|
||||||
|
|
||||||
|
public RemoveEventHeroHandler() {
|
||||||
|
Poster.getPoster().listenEvent(this, RemoveHeroEvent.class);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void onEvent(IEvent event) throws Exception {
|
||||||
|
if(event instanceof RemoveHeroEvent){
|
||||||
|
RemoveHeroEvent removeHeroEvent = (RemoveHeroEvent)event;
|
||||||
|
int uid = removeHeroEvent.getUid();
|
||||||
|
String heroId = removeHeroEvent.getHeroId();
|
||||||
|
User userInMem = UserManager.getUserInMem(uid);
|
||||||
|
if(userInMem == null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map<String, Integer> endlessHeroInfo = userInMem.getMapManager().getEndlessMapInfo().getEndlessHeroInfo();
|
||||||
|
if(endlessHeroInfo!=null && endlessHeroInfo.containsKey(heroId)){
|
||||||
|
endlessHeroInfo.remove(heroId);
|
||||||
|
userInMem.getMapManager().updateEndlessHero(endlessHeroInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.ljsd.jieling.logic.activity.event;
|
||||||
|
|
||||||
|
public class RemoveHeroEvent implements IEvent {
|
||||||
|
private int uid;
|
||||||
|
private String heroId;
|
||||||
|
|
||||||
|
public RemoveHeroEvent(int uid, String heroId) {
|
||||||
|
this.uid = uid;
|
||||||
|
this.heroId = heroId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUid() {
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHeroId() {
|
||||||
|
return heroId;
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.dao;
|
||||||
|
|
||||||
import com.ljsd.common.mogodb.MongoBase;
|
import com.ljsd.common.mogodb.MongoBase;
|
||||||
import com.ljsd.jieling.db.mongo.MongoKey;
|
import com.ljsd.jieling.db.mongo.MongoKey;
|
||||||
|
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||||
|
import com.ljsd.jieling.logic.activity.event.RemoveHeroEvent;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -50,10 +52,11 @@ public class HeroManager extends MongoBase {
|
||||||
return heroMap.get(heroId);
|
return heroMap.get(heroId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeHero(String heroId) {
|
public void removeHero(int uid,String heroId) {
|
||||||
if (heroMap.containsKey(heroId)){
|
if (heroMap.containsKey(heroId)){
|
||||||
removeString(getMongoKey()+".heroMap." + heroId);
|
removeString(getMongoKey()+".heroMap." + heroId);
|
||||||
heroMap.remove(heroId);
|
heroMap.remove(heroId);
|
||||||
|
Poster.getPoster().dispatchEvent(new RemoveHeroEvent(uid,heroId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -705,14 +705,6 @@ public class HeroLogic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void recyleHeroBySystem(User user,Set<String> removeHeroIds) throws Exception {
|
|
||||||
HeroManager heroManager = user.getHeroManager();
|
|
||||||
for(String useHeroId : removeHeroIds){
|
|
||||||
heroManager.removeHero(useHeroId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//初始属性*(1+化境增长)*等级系数 + 初始属性*突破系数
|
//初始属性*(1+化境增长)*等级系数 + 初始属性*突破系数
|
||||||
private Map<Integer,Integer> calHeroAllAttribute(Hero hero,boolean isForce){
|
private Map<Integer,Integer> calHeroAllAttribute(Hero hero,boolean isForce){
|
||||||
Map<Integer,Integer> result = new HashMap<>();
|
Map<Integer,Integer> result = new HashMap<>();
|
||||||
|
@ -2071,7 +2063,7 @@ public class HeroLogic {
|
||||||
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
|
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
|
||||||
}
|
}
|
||||||
|
|
||||||
heroManager.removeHero(heroId);
|
heroManager.removeHero(uid,heroId);
|
||||||
int[][] returnMaterials = sHeroReturn.getReturnMaterials();
|
int[][] returnMaterials = sHeroReturn.getReturnMaterials();
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, returnMaterials, BIReason.HERO_BACK_REWARD);
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, returnMaterials, BIReason.HERO_BACK_REWARD);
|
||||||
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel());
|
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel());
|
||||||
|
|
|
@ -303,7 +303,7 @@ public class ItemLogic {
|
||||||
Map<Integer,Integer> baseRandomMap = new HashMap<>();
|
Map<Integer,Integer> baseRandomMap = new HashMap<>();
|
||||||
for (String heroId : heroIdsList) {
|
for (String heroId : heroIdsList) {
|
||||||
Hero hero = heroManager.getHeroMap().get(heroId);
|
Hero hero = heroManager.getHeroMap().get(heroId);
|
||||||
heroManager.removeHero(heroId);
|
heroManager.removeHero(uid,heroId);
|
||||||
int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume();
|
int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume();
|
||||||
ItemUtil.combineReward(sumConsume,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
ItemUtil.combineReward(sumConsume,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||||
int breakId = hero.getBreakId();
|
int breakId = hero.getBreakId();
|
||||||
|
|
|
@ -115,7 +115,6 @@ public class StoreLogic {
|
||||||
User user = UserManager.getUser(session.getUid());
|
User user = UserManager.getUser(session.getUid());
|
||||||
if(user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
|
if(user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
|
||||||
updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> {
|
updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> {
|
||||||
getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
|
|
||||||
StoreInfo storeInfo = user.getStoreManager().getStoreInfoMap().get(sStoreTypeConfig.getId());
|
StoreInfo storeInfo = user.getStoreManager().getStoreInfoMap().get(sStoreTypeConfig.getId());
|
||||||
|
|
||||||
Map<Integer, Integer> storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user);
|
Map<Integer, Integer> storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user);
|
||||||
|
@ -200,6 +199,13 @@ public class StoreLogic {
|
||||||
removeStoreIds.add(storeInfo.getId());
|
removeStoreIds.add(storeInfo.getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
boolean overTime = TimeUtils.isOverTime((int)(nowTime/1000), storeInfo.getLastRefreshTime());
|
||||||
|
if (overTime){
|
||||||
|
Map<Integer, Integer> storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user);
|
||||||
|
storeInfo.setLastRefreshTime(nowTime);
|
||||||
|
storeInfo.setItemNumMap(storeItem);
|
||||||
|
sendStoreUpdateIndication(user.getId(),storeInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for(Integer removeStoreId : removeStoreIds){
|
for(Integer removeStoreId : removeStoreIds){
|
||||||
storeManager.removeStoreInfo(removeStoreId);
|
storeManager.removeStoreInfo(removeStoreId);
|
||||||
|
@ -209,6 +215,8 @@ public class StoreLogic {
|
||||||
initOneStore(user,openId);
|
initOneStore(user,openId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendStoreUpdateIndication(int uid,StoreInfo storeInfo){
|
public static void sendStoreUpdateIndication(int uid,StoreInfo storeInfo){
|
||||||
|
|
|
@ -413,6 +413,7 @@ public class ProtocolsManager implements ProtocolsAbstract {
|
||||||
//更新在线时长
|
//更新在线时长
|
||||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.OnlineReward,(int)(onlineTime/TimeUtils.ONE_SECOND));
|
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.OnlineReward,(int)(onlineTime/TimeUtils.ONE_SECOND));
|
||||||
MongoUtil.getInstence().lastUpdate();
|
MongoUtil.getInstence().lastUpdate();
|
||||||
|
session.setFiveReady(0);
|
||||||
}
|
}
|
||||||
backUpMsgToRedis(session);
|
backUpMsgToRedis(session);
|
||||||
// 下线处理的逻辑需要添加在这里
|
// 下线处理的逻辑需要添加在这里
|
||||||
|
|
Loading…
Reference in New Issue