Skip to content
Snippets Groups Projects
Commit a548fe6c authored by Benjamin Elsdon's avatar Benjamin Elsdon
Browse files

THE MAILBOX ACTUALLY WORKS CORRECTLY NOW

parent 29a3e64d
Branches
Tags
No related merge requests found
...@@ -47,7 +47,7 @@ public class Mail { ...@@ -47,7 +47,7 @@ public class Mail {
this._id = _id; this._id = _id;
this.mailContent = mailContent; this.mailContent = mailContent;
this.itemList = itemList; this.itemList = itemList;
this.sendTime = (int) Instant.now().EPOCH.getEpochSecond(); this.sendTime = (int) Instant.now().getEpochSecond();
this.expireTime = expireTime; this.expireTime = expireTime;
this.importance = importance; this.importance = importance;
this.isRead = false; this.isRead = false;
......
...@@ -11,7 +11,9 @@ import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; ...@@ -11,7 +11,9 @@ import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp;
import emu.grasscutter.net.proto.MailDataOuterClass.MailData; import emu.grasscutter.net.proto.MailDataOuterClass.MailData;
import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent;
import javax.swing.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Base64;
import java.util.List; import java.util.List;
public class PacketGetAllMailRsp extends GenshinPacket { public class PacketGetAllMailRsp extends GenshinPacket {
...@@ -20,48 +22,69 @@ public class PacketGetAllMailRsp extends GenshinPacket { ...@@ -20,48 +22,69 @@ public class PacketGetAllMailRsp extends GenshinPacket {
super(PacketOpcodes.GetAllMailRsp); super(PacketOpcodes.GetAllMailRsp);
Grasscutter.getLogger().info(String.valueOf(isGiftMail)); Grasscutter.getLogger().info(String.valueOf(isGiftMail));
GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); if (isGiftMail) {
// TODO: Gift Mail
List<MailData> mailDataList = new ArrayList<MailData>(); // Make sure to send the stupid empty packet
Base64.Decoder decoder = Base64.getDecoder();
byte[] rsp = decoder.decode("IAE=");
try {
GetAllMailRsp var = GetAllMailRsp.parseFrom(rsp);
this.setData(var.toBuilder().build());
} catch (Exception e) {
}
// Dummy data. } else {
for(Mail message : player.getMail()) { if (player.getMail().size() != 0) { // Make sure the player has mail
MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder();
mailTextContent.setTitle(message.mailContent.title); List<MailData> mailDataList = new ArrayList<MailData>();
mailTextContent.setContent(message.mailContent.content);
mailTextContent.setSender(message.mailContent.sender);
List<MailItemOuterClass.MailItem> mailItems = new ArrayList<MailItemOuterClass.MailItem>(); for (Mail message : player.getMail()) {
if(message.stateValue == 1) { //Make sure it isn't a gift
MailTextContent.Builder mailTextContent = MailTextContent.newBuilder();
mailTextContent.setTitle(message.mailContent.title);
mailTextContent.setContent(message.mailContent.content);
mailTextContent.setSender(message.mailContent.sender);
for(Mail.MailItem item : message.itemList) { List<MailItemOuterClass.MailItem> mailItems = new ArrayList<>();
MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder();
ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder();
itemParam.setItemId(item.itemId);
itemParam.setCount(item.itemCount);
mailItem.setItemParam(itemParam.build());
mailItems.add(mailItem.build()); for (Mail.MailItem item : message.itemList) {
} MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder();
ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder();
itemParam.setItemId(item.itemId);
itemParam.setCount(item.itemCount);
mailItem.setItemParam(itemParam.build());
MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); mailItems.add(mailItem.build());
mailData.setMailId(message._id); }
mailData.setMailTextContent(mailTextContent.build());
mailData.addAllItemList(mailItems);
mailData.setSendTime((int)message.sendTime);
mailData.setExpireTime((int)message.expireTime);
mailData.setImportance(message.importance);
mailData.setIsRead(message.isRead);
mailData.setIsAttachmentGot(message.isAttachmentGot);
mailData.setStateValue(message.stateValue);
mailDataList.add(mailData.build()); MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder();
} mailData.setMailId(message._id);
mailData.setMailTextContent(mailTextContent.build());
mailData.addAllItemList(mailItems);
mailData.setSendTime((int) message.sendTime);
mailData.setExpireTime((int) message.expireTime);
mailData.setImportance(message.importance);
mailData.setIsRead(message.isRead);
mailData.setIsAttachmentGot(message.isAttachmentGot);
mailData.setStateValue(1);
proto.addAllMailList(mailDataList); mailDataList.add(mailData.build());
//proto.setIsTruncated(true); }
}
Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); proto.addAllMailList(mailDataList);
proto.setIsTruncated(true);
this.setData(proto.build()); this.setData(proto.build());
} else {
// Make sure to send the stupid empty packet
Base64.Decoder decoder = Base64.getDecoder();
byte[] rsp = decoder.decode("IAE=");
try {
GetAllMailRsp var = GetAllMailRsp.parseFrom(rsp);
this.setData(var.toBuilder().build());
} catch (Exception e) {}
}
}
} }
} }
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment