private void OnUpdateChestItem(TSPlayer player, BinaryReader reader) { var chestIndex = reader.ReadInt16(); var itemIndex = reader.ReadByte(); var stackSize = reader.ReadInt16(); var prefix = reader.ReadByte(); var itemId = reader.ReadInt16(); NetItem item; if (_infiniteChests) { item = player.GetChestItem(itemIndex); player.SetChestItem(itemIndex, new NetItem(itemId, stackSize, prefix)); } else { item = (NetItem)Main.chest[chestIndex].item[itemIndex]; } var balanceSheet = player.GetOrCreateBalanceSheet(); if (item.NetId == itemId) { balanceSheet.AddTransaction(1000 + itemIndex, item.NetId, item.Stack - stackSize, item.PrefixId); } else { balanceSheet.AddTransaction(1000 + itemIndex, item.NetId, item.Stack, item.PrefixId); balanceSheet.AddTransaction(1000 + itemIndex, itemId, -stackSize, prefix); } }