mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-11-27 21:10:54 +00:00
Mail read notify
This commit is contained in:
parent
ffe96fe93a
commit
3a677ff6d2
@ -0,0 +1,36 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.game.Mail;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.GetAllMailReqOuterClass;
|
||||
import emu.grasscutter.net.proto.ReadMailNotifyOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketMailChangeNotify;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Opcodes(PacketOpcodes.ReadMailNotify)
|
||||
public class HandlerReadMailNotify extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
ReadMailNotifyOuterClass.ReadMailNotify req = ReadMailNotifyOuterClass.ReadMailNotify.parseFrom(payload);
|
||||
|
||||
List<Mail> updatedMail = new ArrayList<>();
|
||||
|
||||
for (int mailId : req.getMailIdListList()) {
|
||||
Mail message = session.getPlayer().getMailById(mailId);
|
||||
int messageIndex = session.getPlayer().getMailIndex(message);
|
||||
|
||||
message.isRead = true;
|
||||
|
||||
session.getPlayer().replaceMailByIndex(messageIndex, message);
|
||||
updatedMail.add(message);
|
||||
}
|
||||
|
||||
session.send(new PacketMailChangeNotify(session.getPlayer(), updatedMail));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user