public async Task <GameData> PickupTreasure(string userId)
        {
            Player player = await GetPlayer(userId);

            if (player.CurrentRoomId != null)
            {
                Room room = await _roomsClient.GetRoomById((int)player.CurrentRoomId);

                if (room.MonsterId == null)
                {
                    // Pickup treasure in the room
                    room = await _roomsClient.PatchPickupTreasure((int)player.CurrentRoomId);

                    // And give it to the player
                    player = await _usersClient.PatchPickupTreasure(userId);

                    return(new GameData()
                    {
                        Player = player, Room = room, Monster = null
                    });
                }
                else
                {
                    throw new PermissionsDeniedException("Monster still alive!");
                }
            }
            else
            {
                throw new NullReferenceException("Player has no room!");
            }
        }