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:
Benjamin Elsdon
2022-04-26 11:57:55 +08:00
parent c68c75e8ce
commit a5677a8e34
8 changed files with 18 additions and 35 deletions

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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());

View File

@@ -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);