private static void HandleCollect(GameSession session, PacketReader packet) { long id = packet.ReadLong(); Mail mail = session.Player.Mailbox.FirstOrDefault(x => x.Id == id); if (mail == null) { return; } if (mail.Items.Count == 0) { return; } foreach (Item item in mail.Items) { item.MailId = 0; InventoryController.Add(session, item, true); } mail.Items.Clear(); DatabaseManager.Mails.UpdateReadTime(mail); session.Send(MailPacket.Collect(mail)); session.Send(MailPacket.UpdateReadTime(mail)); }
private static void HandleCollect(GameSession session, PacketReader packet) { long id = packet.ReadLong(); Mail mail = session.Player.Mailbox.FirstOrDefault(x => x.Id == id); if (mail == null) { return; } if (mail.Items.Count == 0 && mail.Mesos == 0 && mail.Merets == 0) { return; } if (mail.Items.Count > 0) { foreach (Item item in mail.Items) { item.MailId = 0; DatabaseManager.Items.Update(item); session.Player.Inventory.AddItem(session, item, true); } mail.Items.Clear(); session.Send(MailPacket.Collect(mail)); } if (mail.Mesos > 0) { if (!session.Player.Wallet.Meso.Modify(mail.Mesos)) { return; } mail.Mesos = 0; } if (mail.Merets > 0) { if (!session.Player.Account.Meret.Modify(mail.Merets)) { return; } mail.Merets = 0; } DatabaseManager.Mails.Update(mail); session.Send(MailPacket.UpdateReadTime(mail)); }