public static void TakeMailItemRequest(IRealmClient client, RealmPacketIn packet) { int num1 = packet.ReadInt32(); if (!client.ActiveCharacter.MailMessages.ContainsKey((long)num1)) { client.ActiveCharacter.YouAreFuckingCheater("Try to take not existing mail message.", 50); Asda2MailHandler.SendMailItemTakedResponse(client, Asda2MailItemTakedStatus.WrongInfo, (Asda2Item)null); } else { Asda2MailMessage mailMessage = client.ActiveCharacter.MailMessages[(long)num1]; if (mailMessage == null) { Asda2MailHandler.SendMailItemTakedResponse(client, Asda2MailItemTakedStatus.WrongInfo, (Asda2Item)null); } else { Asda2Item itemToCopyStats = mailMessage.Item; Asda2Item asda2Item = (Asda2Item)null; if (itemToCopyStats != null) { int num2 = (int)client.ActiveCharacter.Asda2Inventory.TryAdd(itemToCopyStats.ItemId, itemToCopyStats.Amount, true, ref asda2Item, new Asda2InventoryType?(), itemToCopyStats); Log.Create(Log.Types.ItemOperations, LogSourceType.Character, client.ActiveCharacter.EntryId) .AddAttribute("source", 0.0, "taked_from_mail") .AddAttribute("message_id", (double)mailMessage.Guid, "").AddItemAttributes(asda2Item, "") .Write(); mailMessage.ItemGuid = 0L; mailMessage.Item = (Asda2Item)null; itemToCopyStats.Destroy(); } client.ActiveCharacter.AddMoney(mailMessage.Gold); mailMessage.Gold = 0U; mailMessage.UpdateLater(); Asda2MailHandler.SendMailItemTakedResponse(client, Asda2MailItemTakedStatus.Ok, asda2Item); client.ActiveCharacter.SendMoneyUpdate(); } } }