限时头像框bug修改

duhui 2021-02-11 15:09:07 +08:00
parent 5bb9c26ed9
commit 0fd8be20c5
3 changed files with 25 additions and 14 deletions

View File

@ -7,11 +7,8 @@ import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.util.ItemUtil;
import config.SItem;
import config.SPlayerHeadIcon;
import manager.STableManager;
import org.springframework.stereotype.Component;
import rpc.protocols.MessageTypeProto;
import rpc.protocols.PlayerInfoProto;

View File

@ -490,14 +490,16 @@ public class PlayerManager extends MongoBase {
Long time = headFrameValidTime.getOrDefault(headFrame,0L);
// 当前时间,秒
long now = TimeUtils.now() / 1000;
// 默认头像框id
int headFrameId = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getDefaultPicture();
// 头像框不为永久且时间到期
if (time != 0 && now > time){
// 赋值默认
if (time != 0 && now >= time){
// 删除过期头像
removeHeadFrameValidTime(headFrame);
// 默认头像框id
int headFrameId = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getDefaultPicture();
// 赋值默认头像
setHeadFrame(headFrameId);
// 删除
removeHeadFrameValidTime(headFrameId);
return headFrameId;
}
return headFrame;

View File

@ -88,11 +88,23 @@ public class CBean2Proto {
List<CommonProto.HeadFrameList> headFrameLists = new ArrayList<>();
// 获取玩家已使用头像框列表
Map<Integer, Long> validTime = user.getPlayerInfoManager().getHeadFrameValidTime();
validTime.forEach((k,v)->{
CommonProto.HeadFrameList.Builder build = CommonProto.HeadFrameList.newBuilder();
build.setHeadFrameId(k).setValidTime(v.intValue());
headFrameLists.add(build.build());
});
long now = TimeUtils.now() / 1000;
Iterator<Map.Entry<Integer, Long>> it = validTime.entrySet().iterator();
while (it.hasNext()){
Map.Entry<Integer, Long> next = it.next();
// 过期的删除,其他返回给客户端
if (next.getValue() != 0 && now >= next.getValue()){
it.remove();
}else {
CommonProto.HeadFrameList.Builder build = CommonProto.HeadFrameList.newBuilder();
build.setHeadFrameId(next.getKey()).setValidTime(next.getValue().intValue());
headFrameLists.add(build.build());
}
}
// 数据库更新
user.getPlayerInfoManager().setHeadFrameValidTime(validTime);
return headFrameLists;
}