public async Task <bool> RemoveCharacter(string userID, string charID)
        {
            var res = await getCharacterData.GetCharacterData(charID);

            if (res.userID == userID)
            {
                characterSessionManager.LogoutUser(userID);
                var user = await getCharacterData.GetUserData(res.userID);

                if (user != null)
                {
                    user.userData.characterCreationLimit++;
                    var delRes = await deleteCharacter.DeleteCharacter(charID, user);

                    if (!delRes)
                    {
                        user.userData.characterCreationLimit--;
                    }
                    else
                    {
                        eventManager.InvokeEvent(UserServiceEvents.CHARACTER_DELETE_EVENT, charID, userID);
                    }
                    return(delRes);
                }
                return(false);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 2
0
 public async Task <CachedCharacter> GetCharacter(string charID)
 {
     if (characters.TryGetValue(charID, out var character))
     {
         return(character);
     }
     else
     {
         var res = AddToCache(charID, await characterDataGetter.GetCharacterData(charID));
         _ = EvictFromCache(charID);
         return(res);
     }
 }