void OnFishCaughtPacketReceived(Packet.FishCaught fw, NetPeer peer) { var fwCopy = fw.Copy(); try { ValidatePacket(fwCopy); } catch (ArgumentException ex) { Console.WriteLine(String.Format("Failed to validate packet in OnFishSuccessfulCatchPacketReceived from {0}: {1}", peer.EndPoint, ex.ToString())); return; } var p = _connectedPlayers[fwCopy.userName]; if (!fwCopy.success) { p.FishUnsuccessfulCatch(); SendToAllPlayers(this.Write(new Packet.FishCaught { userName = p._userName, success = false })); return; } p.FishSuccessfulCatch(); var item = new ItemSchema.ItemDBSchema(); item.uniqueName = ItemSchema.ItemNames.Herring.Value; item.userName = p._userName; item.quantity = 1; _db.AddToUserInventory(item); SendToAllPlayers(this.Write(new Packet.FishCaught { userName = p._userName, success = false, fishItem = item })); SendInventoryToPlayer(p); }