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}"); } }