Class CacheableProfileable

java.lang.Object
com.cryptomorin.xseries.profiles.objects.cache.CacheableProfileable
All Implemented Interfaces:
Profileable
Direct Known Subclasses:
TimedCacheableProfileable

@Internal public abstract class CacheableProfileable extends Object implements Profileable
Any Profileable that can have its results cached. This class should not be used directly.
  • Field Details

    • cache

      protected com.mojang.authlib.GameProfile cache
    • lastError

      protected Throwable lastError
  • Constructor Details

    • CacheableProfileable

      public CacheableProfileable()
  • Method Details

    • getProfile

      public final com.mojang.authlib.GameProfile getProfile()
      Description copied from interface: Profileable
      This method should not be used directly unless you know what you're doing.

      The texture which might be cached. If any errors occur, the check may be re-evaluated. The cached values might also be re-evaluated due to expiration.

      Specified by:
      getProfile in interface Profileable
      Returns:
      the original profile (not cloned if possible) for an instance that's always guaranteed to be a copy you can use Profileable.getDisposableProfile() instead. Null if no profile is set (only happens for ProfileContainer).
    • hasExpired

      public final boolean hasExpired()
      Returns:
      true if this profile hasn't been cached yet or the cache is expired.
    • isReady

      public final boolean isReady()
      Description copied from interface: Profileable
      Whether this profile has all the necessary information to construct its Profileable.getProfile() right away. When this method returns false, it means some kind of request has to be sent to Mojang servers in order to retrieve some information.

      Even if this method returns true, it doesn't necessarily mean that this profile has all information (textures, username, UUID, etc.) it merely means that it has all the information it needs in memory to compute its Profileable.getProfile() and doesn't need to a request any data using MinecraftClient.

      Specified by:
      isReady in interface Profileable
      See Also:
    • hasExpired

      protected boolean hasExpired(boolean renew)
    • cacheProfile

      @NotNull protected abstract @NotNull com.mojang.authlib.GameProfile cacheProfile()
    • toString

      public final String toString()
      Overrides:
      toString in class Object