/// <inheritdoc /> public override Task HandleMessage(IPeerMessageContext <PSOBBGamePacketPayloadClient> context, CharacterCharacterUpdateResponsePayload payload) { if (CharacterScreenUIContext.Elements.Count < payload.SlotSelected) { throw new InvalidOperationException($"Character slot unavailable for Slot: {payload.SlotSelected}"); } CharacterScreenUIContext.Elements.ElementAt(payload.SlotSelected).ButtonElement.IsInteractable = true; CharacterScreenUIContext.Elements.ElementAt(payload.SlotSelected).TextElement.Text = payload.CharacterData.CharacterName.Replace("\tE", ""); CharacterScreenUIContext.Elements.ElementAt(payload.SlotSelected).ButtonElement.AddOnClickListenerAsync(async() => { if (Logger.IsInfoEnabled) { Logger.Info($"Selecting Character: {payload.SlotSelected}"); } //Save the character we picked SelectedSlotModel.SlotSelected = payload.SlotSelected; //Disable all character buttons foreach (var uiEle in CharacterScreenUIContext.Elements) { uiEle.ButtonElement.IsInteractable = false; } //TODO: What is this? //I really don't know what this is //However I DO know that we MUST wait for the result to come in before things continue. CharacterChecksumResponsePayload checksumResult = await context.RequestSendService.SendRequestAsync <CharacterChecksumResponsePayload>(new CharacterChecksumRequestPayload(0)) .ConfigureAwait(false); if (Logger.IsInfoEnabled) { Logger.Info($"Character ChecksumResponse: {checksumResult.ResponseCode}:{(int)checksumResult.ResponseCode} WasSuccessful: {checksumResult.ResponseCode == LoginChecksumResult.Success}"); } //This starts the long drawnout bullshit for guild card data reading or whatever await context.PayloadSendService.SendMessage(new CharacterGuildHeaderRequestPayload()) .ConfigureAwait(false); }); return(Task.CompletedTask); }
private async Task DoChecksumProcess() { //Syl doesn't check value, so I don't know what to send. CharacterChecksumResponsePayload payload = await SendService.SendRequestAsync <CharacterChecksumResponsePayload>(new CharacterChecksumRequestPayload(0)); }