mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-16 08:56:04 +01:00
Improvements and send all mail fix
Mail ID no longer exists and is handled by it's position in the mail array
This commit is contained in:
@@ -21,12 +21,11 @@ public class HandlerChangeMailStarNotify extends PacketHandler {
|
||||
List<Mail> updatedMail = new ArrayList<>();
|
||||
|
||||
for (int mailId : req.getMailIdListList()) {
|
||||
Mail message = session.getPlayer().getMailById(mailId);
|
||||
int messageIndex = session.getPlayer().getMailIndex(message);
|
||||
Mail message = session.getPlayer().getMail(mailId);
|
||||
|
||||
message.importance = req.getIsStar() == true ? 1 : 0;
|
||||
|
||||
session.getPlayer().replaceMailByIndex(messageIndex, message);
|
||||
session.getPlayer().replaceMailByIndex(mailId, message);
|
||||
updatedMail.add(message);
|
||||
}
|
||||
|
||||
|
||||
@@ -22,12 +22,11 @@ public class HandlerReadMailNotify extends PacketHandler {
|
||||
List<Mail> updatedMail = new ArrayList<>();
|
||||
|
||||
for (int mailId : req.getMailIdListList()) {
|
||||
Mail message = session.getPlayer().getMailById(mailId);
|
||||
int messageIndex = session.getPlayer().getMailIndex(message);
|
||||
Mail message = session.getPlayer().getMail(mailId);
|
||||
|
||||
message.isRead = true;
|
||||
|
||||
session.getPlayer().replaceMailByIndex(messageIndex, message);
|
||||
session.getPlayer().replaceMailByIndex(mailId, message);
|
||||
updatedMail.add(message);
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ public class PacketGetAllMailRsp extends GenshinPacket {
|
||||
}
|
||||
|
||||
MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder();
|
||||
mailData.setMailId(message._id);
|
||||
mailData.setMailId(player.getMailId(message));
|
||||
mailData.setMailTextContent(mailTextContent.build());
|
||||
mailData.addAllItemList(mailItems);
|
||||
mailData.setSendTime((int) message.sendTime);
|
||||
|
||||
@@ -25,8 +25,7 @@ public class PacketGetMailItemRsp extends GenshinPacket {
|
||||
GetMailItemRsp.Builder proto = GetMailItemRsp.newBuilder();
|
||||
|
||||
for (int mailId : mailList) {
|
||||
Mail message = player.getMailById(mailId);
|
||||
int messageIndex = player.getMailIndex(message);
|
||||
Mail message = player.getMail(mailId);
|
||||
|
||||
for(Mail.MailItem mailItem : message.itemList) {
|
||||
EquipParamOuterClass.EquipParam.Builder item = EquipParamOuterClass.EquipParam.newBuilder();
|
||||
@@ -62,10 +61,10 @@ public class PacketGetMailItemRsp extends GenshinPacket {
|
||||
message.isAttachmentGot = true;
|
||||
claimedMessages.add(message);
|
||||
|
||||
player.replaceMailByIndex(messageIndex, message);
|
||||
player.replaceMailByIndex(mailId, message);
|
||||
}
|
||||
|
||||
proto.addAllMailIdList(claimedMessages.stream().map(Mail::getId).collect(Collectors.toList()));
|
||||
proto.addAllMailIdList(claimedMessages.stream().map(message -> player.getMailId(message)).collect(Collectors.toList()));
|
||||
proto.addAllItemList(claimedItems);
|
||||
|
||||
this.setData(proto.build());
|
||||
|
||||
@@ -46,7 +46,7 @@ public class PacketMailChangeNotify extends GenshinPacket {
|
||||
}
|
||||
|
||||
MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder();
|
||||
mailData.setMailId(message._id);
|
||||
mailData.setMailId(player.getMailId(message));
|
||||
mailData.setMailTextContent(mailTextContent.build());
|
||||
mailData.addAllItemList(mailItems);
|
||||
mailData.setSendTime((int) message.sendTime);
|
||||
|
||||
Reference in New Issue
Block a user