From e10dd6310bb2bb9c2adeb38e8ec1b616c7645233 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Fri, 7 Nov 2025 07:05:09 -0800 Subject: [PATCH] Update mail state on login --- src/main/java/emu/nebula/game/mail/Mailbox.java | 8 ++++++++ src/main/java/emu/nebula/game/player/Player.java | 6 ++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/emu/nebula/game/mail/Mailbox.java b/src/main/java/emu/nebula/game/mail/Mailbox.java index bb9d11d..e83e1fa 100644 --- a/src/main/java/emu/nebula/game/mail/Mailbox.java +++ b/src/main/java/emu/nebula/game/mail/Mailbox.java @@ -55,6 +55,14 @@ public class Mailbox extends PlayerManager implements GameDatabaseObject, Iterab .orElse(null); } + public boolean hasNewMail() { + return this.getList() + .stream() + .filter(mail -> !mail.isRead() && !mail.isRecv()) + .findAny() + .isPresent(); + } + public void sendMail(GameMail mail) { // Set mail id mail.setId(++this.lastMailId); diff --git a/src/main/java/emu/nebula/game/player/Player.java b/src/main/java/emu/nebula/game/player/Player.java index fa9773a..91e114d 100644 --- a/src/main/java/emu/nebula/game/player/Player.java +++ b/src/main/java/emu/nebula/game/player/Player.java @@ -526,11 +526,13 @@ public class Player implements GameDatabaseObject { proto.getMutableFormation().addInfo(f.toProto()); } - // Set state + // Set player states var state = proto.getMutableState() .setStorySet(true); - state.getMutableMail(); + state.getMutableMail() + .setNew(this.getMailbox().hasNewMail()); + state.getMutableBattlePass(); state.getMutableFriendEnergy(); state.getMutableMallPackage();