diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/player/UseHeadFrameHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/player/UseHeadFrameHandler.java index 1ebdda7f4..16e1bf09e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/player/UseHeadFrameHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/player/UseHeadFrameHandler.java @@ -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; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 12b78e1fa..2ef972381 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -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; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index 0d03c6dee..a96f02d69 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -88,11 +88,23 @@ public class CBean2Proto { List headFrameLists = new ArrayList<>(); // 获取玩家已使用头像框列表 Map 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> it = validTime.entrySet().iterator(); + while (it.hasNext()){ + Map.Entry 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; }