public void GetQuest(AgentPrivate Quester, string QuestId)
        {
            HttpRequestOptions options = new HttpRequestOptions();

            options.Method = HttpRequestMethod.GET;
            Guid PersonaId = Quester.AgentInfo.AvatarUuid;
            var  result    = WaitFor(ScenePrivate.HttpClient.Request, $"{BaseUrl}/players/{PersonaId}/quests/{QuestId}", options) as HttpClient.RequestData;

            if (!result.Success || result.Response.Status != 200)
            {
                return;
            }

            string jsonResponse = result.Response.Body;

            Quester.SendChat($"Quest response: {jsonResponse}");
            QuestResponse         parsed        = ((JsonSerializationData <QuestResponse>)(WaitFor(JsonSerializer.Deserialize <QuestResponse>, jsonResponse))).Object;
            ObjectiveResponseData objectiveData = null;

            if (State == "ACTIVE")
            {
                for (int i = parsed.data.objectives.Count - 1; i >= 0; i--)
                {
                    ObjectiveResponseData d = parsed.data.objectives[i];
                    if (d.state == "COMPLETED")
                    {
                        objectiveData = d;
                        break;
                    }
                }
            }
            else if (State == "COMPLETED")
            {
                foreach (ObjectiveResponseData d in parsed.data.objectives)
                {
                    if (d.state == "ACTIVE")
                    {
                        objectiveData = d;
                        break;
                    }
                }
            }
            Quester.SendChat($"objectiveData: {objectiveData}");
            UpdateObjectiveStatus(Quester, QuestId, objectiveData);
        }
        public void UpdateObjectiveStatus(AgentPrivate Quester, string QuestId, ObjectiveResponseData objective)
        {
            if (objective == null)
            {
                return;
            }
            HttpRequestOptions options = new HttpRequestOptions();

            options.Method  = HttpRequestMethod.PATCH;
            options.Headers = new Dictionary <string, string>()
            {
                { "content-type", "application/json" }
            };
            Guid PersonaId = Quester.AgentInfo.AvatarUuid;

            options.Body = $"{{\"data\": {{\"state\":\"{State}\"}} }}";
            var result = WaitFor(ScenePrivate.HttpClient.Request, $"{BaseUrl}/players/{PersonaId}/quests/{QuestId}/objectives/{objective.handle}", options) as HttpClient.RequestData;

            if (result.Success)
            {
                Quester.SendChat($"{result.Response.Body}");
            }
        }