mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-05-19 11:09:53 +08:00
Deleting mail + a bit of cleanup
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.GenshinData;
|
||||
import emu.grasscutter.game.GenshinPlayer;
|
||||
import emu.grasscutter.game.Mail;
|
||||
@@ -10,8 +9,6 @@ import emu.grasscutter.net.packet.GenshinPacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.EquipParamOuterClass;
|
||||
import emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp;
|
||||
import emu.grasscutter.net.proto.ItemParamOuterClass;
|
||||
import emu.grasscutter.net.proto.MailItemOuterClass;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -22,9 +19,6 @@ public class PacketGetMailItemRsp extends GenshinPacket {
|
||||
public PacketGetMailItemRsp(GenshinPlayer player, List<Integer> mailList) {
|
||||
super(PacketOpcodes.GetMailItemRsp);
|
||||
|
||||
//I'm assuming that this is to receive the attachments on the message.
|
||||
// TODO: This.
|
||||
|
||||
List<Mail> claimedMessages = new ArrayList<>();
|
||||
List<EquipParamOuterClass.EquipParam> claimedItems = new ArrayList<>();
|
||||
|
||||
@@ -34,13 +28,7 @@ public class PacketGetMailItemRsp extends GenshinPacket {
|
||||
Mail message = player.getMailById(mailId);
|
||||
int messageIndex = player.getMailIndex(message);
|
||||
|
||||
message.isAttachmentGot = true;
|
||||
claimedMessages.add(message);
|
||||
|
||||
player.replaceMailByIndex(messageIndex, message);
|
||||
|
||||
for(Mail.MailItem mailItem : message.itemList) {
|
||||
//TODO: Actually give the item
|
||||
EquipParamOuterClass.EquipParam.Builder item = EquipParamOuterClass.EquipParam.newBuilder();
|
||||
item.setItemId(mailItem.itemId);
|
||||
item.setItemNum(mailItem.itemCount);
|
||||
@@ -51,14 +39,17 @@ public class PacketGetMailItemRsp extends GenshinPacket {
|
||||
player.getInventory().addItem(genshinItem);
|
||||
player.sendPacket(new PacketItemAddHintNotify(genshinItem, ActionReason.MailAttachment));
|
||||
}
|
||||
|
||||
message.isAttachmentGot = true;
|
||||
claimedMessages.add(message);
|
||||
|
||||
player.replaceMailByIndex(messageIndex, message);
|
||||
}
|
||||
|
||||
proto.addAllMailIdList(claimedMessages.stream().map(Mail::getId).collect(Collectors.toList()));
|
||||
proto.addAllItemList(claimedItems);
|
||||
player.save();
|
||||
|
||||
Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build()));
|
||||
this.setData(proto.build());
|
||||
player.getSession().send(new PacketMailChangeNotify(player, claimedMessages));
|
||||
player.getSession().send(new PacketMailChangeNotify(player, claimedMessages)); // For some reason you have to also send the MailChangeNotify packet
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user