private async Task <Embed> RecordCharacter(User user, CharacterInfo character) { EmbedBuilder embed = new EmbedBuilder(); User.Character?userCharacter = user.GetCharacter(character.Id); if (userCharacter == null) { userCharacter = new User.Character { FFXIVCharacterId = character.Id, CharacterName = character.Name, ServerName = character.Server, IsVerified = false, }; user.Characters.Add(userCharacter); await UserService.SaveUser(user); } if (userCharacter.IsVerified) { userCharacter.CharacterName = character.Name; userCharacter.ServerName = character.Server; await UserService.SaveUser(user); embed.Description = "Character linked!"; return(embed.Build()); } else { if (userCharacter.FFXIVCharacterVerification == null) { userCharacter.FFXIVCharacterVerification = Guid.NewGuid().ToString(); await UserService.SaveUser(user); } if (character.Bio?.Contains(userCharacter.FFXIVCharacterVerification) == true) { userCharacter.FFXIVCharacterId = character.Id; userCharacter.CharacterName = character.Name; userCharacter.ServerName = character.Server; userCharacter.FFXIVCharacterVerification = null; userCharacter.IsVerified = true; await UserService.SaveUser(user); embed.Description = "Character linked! (You can now remove the Verification Id from your Character Profile)"; return(embed.Build()); } else { embed.Description = "To verify character ownership, please place the following verification Id in your [lodestone profile](https://na.finalfantasyxiv.com/lodestone/my/setting/profile/): `" + userCharacter.FFXIVCharacterVerification + "`"; return(embed.Build()); } } }
public async Task <string> IAm(CommandMessage message, string characterName, string serverName) { User user = await UserService.GetUser(message.Author); CharacterInfo character = await this.GetCharacterInfo(characterName, serverName); User.Character?userCharacter = user.GetCharacter(character.Id); if (userCharacter == null) { userCharacter = new User.Character(); userCharacter.FFXIVCharacterId = character.Id; userCharacter.CharacterName = character.Name; userCharacter.ServerName = character.Server; userCharacter.IsVerified = false; user.Characters.Add(userCharacter); await UserService.SaveUser(user); } if (userCharacter.IsVerified) { userCharacter.CharacterName = character.Name; userCharacter.ServerName = character.Server; await UserService.SaveUser(user); return("Character linked!"); } else { if (userCharacter.FFXIVCharacterVerification == null) { userCharacter.FFXIVCharacterVerification = Guid.NewGuid().ToString(); await UserService.SaveUser(user); } if (character.Bio?.Contains(userCharacter.FFXIVCharacterVerification) == true) { userCharacter.FFXIVCharacterId = character.Id; userCharacter.CharacterName = character.Name; userCharacter.ServerName = character.Server; userCharacter.FFXIVCharacterVerification = null; userCharacter.IsVerified = true; await UserService.SaveUser(user); return("Character linked! (You can now remove the Verification Id from your Character Profile)"); } else { return("To verify character ownership, please place the following verification Id in your lodestone character profile: `" + userCharacter.FFXIVCharacterVerification + "`"); } } }
public static bool IsVerified(this User.Character self, CharacterInfo character) { if (self.IsVerified) { return(true); } if (self.FFXIVCharacterVerification == null) { self.FFXIVCharacterVerification = Guid.NewGuid().ToString(); } if (character.Bio?.Contains(self.FFXIVCharacterVerification) == true) { self.IsVerified = true; } return(self.IsVerified); }
public static async Task <bool> IsVerified(this User.Character self, User owner) { if (self.IsVerified) { return(true); } if (self.FFXIVCharacterVerification == null) { self.FFXIVCharacterVerification = Guid.NewGuid().ToString(); } XIVAPI.CharacterAPI.GetResponse xivapi = await XIVAPI.CharacterAPI.Get(self.FFXIVCharacterId); if (xivapi.Character?.Bio?.Contains(self.FFXIVCharacterVerification) == true) { self.IsVerified = true; await UserService.SaveUser(owner); } return(self.IsVerified); }