fix friend
parent
94302befde
commit
1f452b87f1
|
@ -102,6 +102,8 @@ public class SGameSetting implements BaseConfig {
|
|||
|
||||
private int maxNameLength;
|
||||
|
||||
private int maxEnergyGet;
|
||||
|
||||
|
||||
private static SGameSetting gameSetting;
|
||||
|
||||
|
@ -301,4 +303,8 @@ public class SGameSetting implements BaseConfig {
|
|||
public int getMaxNameLength() {
|
||||
return maxNameLength;
|
||||
}
|
||||
|
||||
public int getMaxEnergyGet() {
|
||||
return maxEnergyGet;
|
||||
}
|
||||
}
|
|
@ -36,6 +36,10 @@ public class SGlobalActivity implements BaseConfig {
|
|||
|
||||
private int isMail;
|
||||
|
||||
private int ifOpen;
|
||||
|
||||
private int shopId;
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
@ -117,4 +121,12 @@ public class SGlobalActivity implements BaseConfig {
|
|||
public int getIsMail() {
|
||||
return isMail;
|
||||
}
|
||||
|
||||
public int getIfOpen() {
|
||||
return ifOpen;
|
||||
}
|
||||
|
||||
public int getShopId() {
|
||||
return shopId;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
|
@ -14,6 +15,7 @@ import com.ljsd.jieling.logic.dao.*;
|
|||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||
import com.ljsd.jieling.logic.store.StoreLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||
|
@ -85,6 +87,10 @@ public class ActivityLogic {
|
|||
if (now < startTime) {
|
||||
continue;
|
||||
}
|
||||
int ifOpen = sGlobalActivity.getIfOpen();
|
||||
if(ifOpen!=0 && GameApplication.serverConfig.getCacheOpenTime() + ifOpen*TimeUtils.ONE_DAY - startTime >0){
|
||||
continue;
|
||||
}
|
||||
if (endTime != 0 && now > endTime) {
|
||||
if (openActivityIds.contains(sGlobalActivity.getId())) {
|
||||
openActivityIds.remove(sGlobalActivity.getId());
|
||||
|
@ -120,6 +126,14 @@ public class ActivityLogic {
|
|||
checkActivityOfUser(user, null);
|
||||
}
|
||||
|
||||
private void checkNeedOpenStore(User user,int storeId,long startTime,long endTime) throws Exception {
|
||||
if(storeId == 0){
|
||||
return;
|
||||
}
|
||||
StoreLogic.initOnsStoereWithTime(user,storeId,startTime,endTime);
|
||||
|
||||
}
|
||||
|
||||
public Set<Integer> checkActivityOfUser(User user, PlayerInfoProto.ActivityUpateIndication.Builder builder) throws Exception {
|
||||
long now = TimeUtils.now();
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
|
@ -142,6 +156,11 @@ public class ActivityLogic {
|
|||
abstractActivity.initActivity(user);
|
||||
//非角色活动开启通知
|
||||
openNewActivityIds.add(openActivityId);
|
||||
if(sGlobalActivity.getShopId()!=0){
|
||||
long startTime = sGlobalActivity.getTimeLong(0, 1);
|
||||
long endTime = sGlobalActivity.getTimeLong(0, 2);
|
||||
checkNeedOpenStore(user,sGlobalActivity.getShopId(),startTime,endTime);
|
||||
}
|
||||
}
|
||||
Map<Integer, ActivityMission> activityMissionMap = activityManager.getActivityMissionMap();
|
||||
long userCreateTime = user.getPlayerInfoManager().getCreateTime();
|
||||
|
@ -177,6 +196,7 @@ public class ActivityLogic {
|
|||
activityManager.initAllActivityMission(activityId);
|
||||
}
|
||||
openNewActivityIds.add(activityId);
|
||||
checkNeedOpenStore(user,sGlobalActivity.getShopId(),startTime,endTime);
|
||||
} else {
|
||||
ActivityMission activityMission = activityMissionMap.get(activityId);
|
||||
if (activityMission != null) {
|
||||
|
@ -509,15 +529,21 @@ public class ActivityLogic {
|
|||
|
||||
public void checkSecretBoxSeason() {
|
||||
long now = TimeUtils.now();
|
||||
int newSecretBoxSeasonTimes = 0;
|
||||
for (SDifferDemonsBoxSetting sDifferDemonsBoxSetting : SDifferDemonsBoxSetting.getConfig().values()) {
|
||||
long seasonStartLong = sDifferDemonsBoxSetting.getSeasonStartLong();
|
||||
long seasonEndLong = sDifferDemonsBoxSetting.getSeasonEndLong();
|
||||
if (now >= seasonStartLong && now <= seasonEndLong) {
|
||||
secretBoxSeasonTimes = sDifferDemonsBoxSetting.getSeasonTimes();
|
||||
return;
|
||||
newSecretBoxSeasonTimes = sDifferDemonsBoxSetting.getSeasonTimes();
|
||||
break;
|
||||
}
|
||||
}
|
||||
secretBoxSeasonTimes = 0;
|
||||
if(newSecretBoxSeasonTimes!=secretBoxSeasonTimes){
|
||||
secretBoxSeasonTimes = newSecretBoxSeasonTimes;
|
||||
PlayerInfoProto.UpdateSecretBoxSeasonIndication build = PlayerInfoProto.UpdateSecretBoxSeasonIndication.newBuilder().setNewSeasonId(newSecretBoxSeasonTimes).build();
|
||||
MessageUtil.sendAllOnlineUserMsg(MessageTypeProto.MessageType.UPDATE_SECRET_BOX_SEASON_INDICATION_VALUE,build);
|
||||
}
|
||||
|
||||
}
|
||||
//云梦祈福初始化
|
||||
// public void blessActivityInit(ISession session,MessageTypeProto.MessageType messageType) throws Exception {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.ljsd.jieling.logic.friend;
|
||||
|
||||
import com.ljsd.jieling.config.SGameSetting;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
|
@ -393,8 +394,11 @@ public class FriendLogic {
|
|||
return;
|
||||
}
|
||||
friendManager.updateGiveMap(friendId,1);
|
||||
friendManager1.updateHaveRewardMap(uid,1);
|
||||
sendFriendStatedication(uid,friendId,2);
|
||||
boolean check = friendUser.getPlayerInfoManager().check(SGameSetting.getGameSetting().getMaxEnergyGet(), 1);
|
||||
if(check){
|
||||
friendManager1.updateHaveRewardMap(uid,1);
|
||||
sendFriendStatedication(uid,friendId,2);
|
||||
}
|
||||
}else{ //赠送全部好友
|
||||
for (Integer friendUserId : friends) {
|
||||
if (giveMap.get(friendUserId) == 1) {
|
||||
|
@ -407,8 +411,11 @@ public class FriendLogic {
|
|||
continue;
|
||||
}
|
||||
friendManager.updateGiveMap(friendUserId,1);
|
||||
friendManager1.updateHaveRewardMap(uid,1);
|
||||
sendFriendStatedication(uid,friendUserId,2);
|
||||
boolean check = friendUser.getPlayerInfoManager().check(SGameSetting.getGameSetting().getMaxEnergyGet(), 0);
|
||||
if(check){
|
||||
friendManager1.updateHaveRewardMap(uid,1);
|
||||
sendFriendStatedication(uid,friendId,2);
|
||||
}
|
||||
}
|
||||
}
|
||||
MessageUtil.sendMessage(iSession, 1, msgId, null, true);
|
||||
|
@ -427,6 +434,13 @@ public class FriendLogic {
|
|||
FriendManager friendManager = user.getFriendManager();
|
||||
List<Integer> friends = friendManager.getFriends();
|
||||
Map<Integer, Integer> haveRewardMap = friendManager.getHaveRewardMap();
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
boolean check = playerInfoManager.check(SGameSetting.getGameSetting().getMaxEnergyGet(), 1);
|
||||
Set<Integer> receieveFriends = new HashSet<>();
|
||||
if(!check){
|
||||
MessageUtil.sendErrorResponse(iSession, 0, msgId, "已超过当日领取上限");
|
||||
return;
|
||||
}
|
||||
int itemNum = 0;
|
||||
if (type ==1){ //领取一个人
|
||||
if (!friends.contains(friendId)) {
|
||||
|
@ -437,15 +451,24 @@ public class FriendLogic {
|
|||
MessageUtil.sendErrorResponse(iSession, 0, msgId, "已领取赠礼");
|
||||
return;
|
||||
}
|
||||
|
||||
itemNum= 10;
|
||||
friendManager.updateHaveRewardMap(friendId,2);
|
||||
playerInfoManager.updateVipPrivilage(SGameSetting.getGameSetting().getMaxEnergyGet(),1);
|
||||
receieveFriends.add(friendId);
|
||||
}else{
|
||||
for (Integer friend : friends) {
|
||||
if (haveRewardMap.get(friend) != 1) {
|
||||
continue;
|
||||
}
|
||||
check = playerInfoManager.check(SGameSetting.getGameSetting().getMaxEnergyGet(), 1);
|
||||
if(!check){
|
||||
break;
|
||||
}
|
||||
playerInfoManager.updateVipPrivilage(SGameSetting.getGameSetting().getMaxEnergyGet(),1);
|
||||
friendManager.updateHaveRewardMap(friend,2);
|
||||
itemNum += 10;
|
||||
receieveFriends.add(friend);
|
||||
}
|
||||
}
|
||||
String reward = GlobalItemType.STAMINA +"#"+itemNum;
|
||||
|
@ -455,7 +478,7 @@ public class FriendLogic {
|
|||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt2(reward), BIReason.FRIEND_GIVE);
|
||||
PlayerInfoProto.FriendTakeHeartResponse friendTakeHeartResponse = PlayerInfoProto.FriendTakeHeartResponse
|
||||
.newBuilder().setDrop(drop)
|
||||
.newBuilder().setDrop(drop).addAllFriendId(receieveFriends)
|
||||
.build();
|
||||
MessageUtil.sendMessage(iSession, 1, msgId, friendTakeHeartResponse, true);
|
||||
}
|
||||
|
|
|
@ -130,6 +130,17 @@ public class StoreLogic {
|
|||
}
|
||||
}
|
||||
|
||||
public static void initOnsStoereWithTime(User user,int storeType,long startTime,long endTime) throws Exception {
|
||||
StoreManager storeManager = user.getStoreManager();
|
||||
SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeType);
|
||||
if(sStoreTypeConfig == null){
|
||||
return;
|
||||
}
|
||||
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
|
||||
storeManager.newStoreInfo(sStoreTypeConfig.getId(),startTime,endTime,itemNumMap);
|
||||
sendStoreUpdateIndication(user.getId(),storeManager.getStoreInfoMap().get(sStoreTypeConfig.getId()));
|
||||
}
|
||||
|
||||
public static void initOneStore(User user,int storeType) throws Exception {
|
||||
StoreManager storeManager = user.getStoreManager();
|
||||
SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeType);
|
||||
|
@ -145,7 +156,6 @@ public class StoreLogic {
|
|||
if(sStoreTypeConfig.getStoreOpenRule() == 3 ){
|
||||
startTime = TimeUtils.parseTimeToMiles(sStoreTypeConfig.getStartTime(), TimeUtils.Stand_CeHua_Data_format);
|
||||
endTime = TimeUtils.parseTimeToMiles(sStoreTypeConfig.getEndTime(), TimeUtils.Stand_CeHua_Data_format);
|
||||
System.out.println(new Date(endTime));
|
||||
}
|
||||
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
|
||||
storeManager.newStoreInfo(sStoreTypeConfig.getId(),startTime,endTime,itemNumMap);
|
||||
|
|
Loading…
Reference in New Issue