Ejemplo n.º 1
0
        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());
                }
            }
        }
Ejemplo n.º 2
0
        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 + "`");
                }
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }