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 ae190f3fa0
commit 7015905991
8 changed files with 18 additions and 35 deletions

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