云梦祈福刷新

lvxinran 2020-09-10 11:19:40 +08:00
parent 6b036a1b54
commit d4ee477baa
4 changed files with 94 additions and 29 deletions

View File

@ -16,6 +16,6 @@ public class BlessRefreshHandler extends BaseHandler {
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
// ActivityLogic.getInstance().blessRefreshReward(iSession,MessageTypeProto.MessageType.BLESS_REFRESH_RESPONSE);
ActivityLogic.getInstance().blessRefreshReward(iSession,MessageTypeProto.MessageType.BLESS_REFRESH_RESPONSE);
}
}

View File

@ -968,7 +968,7 @@ public class ActivityLogic implements IEventHandler{
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response.build(), true);
}
private PlayerInfoProto.blessResponse.Builder getBlessInfoResponse(ActivityMission activityMission) {
public PlayerInfoProto.blessResponse.Builder getBlessInfoResponse(ActivityMission activityMission) {
PlayerInfoProto.blessResponse.Builder response = PlayerInfoProto.blessResponse.newBuilder();
Map<Integer, ActivityProgressInfo> blessInfoMap = activityMission.getActivityMissionMap();
//保存之前
@ -1104,36 +1104,26 @@ public class ActivityLogic implements IEventHandler{
MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true);
}
// /**
// * 云梦手动刷新
// *
// * @param session
// * @param messageType
// * @throws Exception
// */
// public void blessRefreshReward(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
// User user = UserManager.getUser(session.getUid());
// if (SBlessingConfig.sBlessingConfig.getIsRefresh() == 0) {
// MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "活动不可刷新");
// return;
// }
/**
*
*
* @param session
* @param messageType
* @throws Exception
*/
public void blessRefreshReward(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
User user = UserManager.getUser(session.getUid());
// ActivityMission activityMission = blessRefresh(user);
// activityMission.getActivityMissionMap().put(BlessInfoConfig.LAST_REFRESH_TIME, new ActivityProgressInfo((int) (TimeUtils.now() / 1000), 0));
//
// Poster.getPoster().dispatchEvent(new BlessInfoRefreshEvent(session.getUid()));
// ActivityProgressInfo newInfo = new ActivityProgressInfo();
//// newInfo.setState();
//// activityMission.getActivityMissionMap().put(BlessInfoConfig.LAST_REFRESH_TIME, new ActivityProgressInfo((int) (TimeUtils.now() / 1000), 0));
// PlayerInfoProto.blessRefresh res = PlayerInfoProto.blessRefresh.newBuilder().setReward(getBlessInfoResponse(activityMission).build()).build();
// MessageUtil.sendMessage(session, 1, messageType.getNumber(), res, true);
// }
Poster.getPoster().dispatchEvent(new BlessInfoRefreshEvent(session.getUid()));
}
// private ActivityMission blessRefresh(User user) {
// ActivityManager activityManager = user.getActivityManager();
// ActivityMission activityMission = activityManager.getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId());
// ActivityProgressInfo tempProgress = new ActivityProgressInfo();
// //数据清空
// for (Map.Entry<Integer, ActivityProgressInfo> entry : activityMission.getActivityMissionMap().entrySet()) {
// activityMission.getActivityMissionMap().put(entry.getKey(), tempProgress);
// }
// activityMission = blessInfoInit(activityManager, 7);
// return activityMission;
// }
// /**

View File

@ -1,12 +1,23 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.handler.activity.BlessInfoConfig;
import com.ljsd.jieling.jbean.ActivityManager;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.event.BlessInfoRefreshEvent;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
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.CommonProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.MessageUtil;
import config.SBlessingConfig;
import config.SBlessingRewardPool;
import manager.STableManager;
@ -21,6 +32,8 @@ public class BlessActivity extends AbstractActivity {
public BlessActivity(int id) {
super(id);
Poster.getPoster().listenEvent(this, BlessInfoRefreshEvent.class);
}
@Override
@ -30,7 +43,16 @@ public class BlessActivity extends AbstractActivity {
@Override
public void initActivity(User user){
blessInfoInit(user.getActivityManager(), id);
blessInfoInit(user.getActivityManager(), id);
}
@Override
public void onEvent(IEvent event) throws Exception {
if(event instanceof BlessInfoRefreshEvent){
blessRefreshReward(((BlessInfoRefreshEvent) event).getUid());
}else{
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
}
/**
@ -144,4 +166,35 @@ public class BlessActivity extends AbstractActivity {
return activityMission;
}
/**
*
* @throws Exception
*/
public void blessRefreshReward(int uid ) throws Exception {
User user = UserManager.getUser(uid);
if(user.getActivityManager().getActivityMissionMap().get(id)==null){
return;
}
ActivityMission activityMission = blessRefresh(user ,id);
PlayerInfoProto.blessRefresh res = PlayerInfoProto.blessRefresh.newBuilder().setReward(ActivityLogic.getInstance().getBlessInfoResponse(activityMission).build()).build();
MessageUtil.sendMessage(OnlineUserManager.getSessionByUid(uid), 1, MessageTypeProto.MessageType.BLESS_REFRESH_RESPONSE_VALUE, res, true);
}
private ActivityMission blessRefresh(User user,int activityId) {
ActivityManager activityManager = user.getActivityManager();
ActivityMission activityMission = activityManager.getActivityMissionMap().get(activityId);
ActivityProgressInfo tempProgress = new ActivityProgressInfo();
//数据清空
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityMission.getActivityMissionMap().entrySet()) {
activityMission.getActivityMissionMap().put(entry.getKey(), tempProgress);
}
activityMission = blessInfoInit(activityManager, activityId);
return activityMission;
}
}

View File

@ -0,0 +1,22 @@
package com.ljsd.jieling.logic.activity.event;
/**
* @author lvxinran
* @date 2020/9/10
* @discribe
*/
public class BlessInfoRefreshEvent implements IEvent {
private int uid;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public BlessInfoRefreshEvent(int uid) {
this.uid = uid;
}
}