Interface Profileable
- All Known Implementing Classes:
CacheableProfileable,Profileable.GameProfileProfileable,Profileable.PlayerProfileable,Profileable.StringProfileable,Profileable.UsernameProfileable,Profileable.UUIDProfileable,ProfileContainer,ProfileContainer.BlockProfileContainer,ProfileContainer.BlockStateProfileContainer,ProfileContainer.ItemMetaProfileContainer,ProfileContainer.ItemStackProfileContainer,ProfileInstruction,TimedCacheableProfileable,TransformableProfile
public interface Profileable
Represents any object that has a
GameProfile or one can be created with it.
These objects are cached.
A GameProfile is an object that represents information about a Minecraft player's
account in general (not specific to this or any other server)
The most important information contained within this profile however, is the
skin texture URL which the client needs to properly see the texture on items/blocks.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final classstatic final classDo we need to supportPlayerProfilefor hybrid server software like Geyser or Mohist that might have their own caching system?static final classstatic final classstatic final class -
Method Summary
Modifier and TypeMethodDescriptionstatic ProfileableSets the skull texture based on a string.default @Nullable com.mojang.authlib.GameProfileSame asgetProfile(), except some implementations ofProfileablecannot inherently return any original instance as they're not cacheable, so this method ensures that no duplicate cloning ofGameProfileoccurs for performance.@Nullable @Unmodifiable com.mojang.authlib.GameProfileThis method should not be used directly unless you know what you're doing.default @Nullable StringA string representation of thegetProfile()which is useful for data storage.static Profileableof(ProfileInputType type, String input) Sets the skull texture based on a string with a known type.static Profileableof(com.mojang.authlib.GameProfile profile) Sets the skull texture based on the specified profile.static ProfileableSets the skull texture based on the specified player UUID (whether it's an offline or online UUID).static Profileableof(org.bukkit.block.Block block) static Profileableof(org.bukkit.block.BlockState blockState) static Profileableof(org.bukkit.inventory.ItemStack item) static Profileableof(org.bukkit.inventory.meta.ItemMeta meta) static Profileableof(org.bukkit.OfflinePlayer offlinePlayer) Sets the skull texture based on the specified offline player.static <C extends Collection<Profileable>>
CompletableFuture<C> prepare(C profileables) static <C extends Collection<Profileable>>
CompletableFuture<C> prepare(C profileables, @Nullable ProfileRequestConfiguration config, @Nullable com.google.common.base.Function<Throwable, Boolean> errorHandler) default Profileabletransform(ProfileTransformer... transformers) Adds transformer (readProfileTransformer) information to a copied version of this profile (so it doesn't affect this instance).static ProfileableSets the skull texture based on the specified player UUID (whether it's an offline or online UUID).
-
Method Details
-
getProfile
@Nullable @Internal @Nullable @Unmodifiable com.mojang.authlib.GameProfile getProfile()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.
- Returns:
- the original profile (not cloned if possible) for an instance that's always guaranteed to be a copy
you can use
getDisposableProfile()instead. Null if no profile is set (only happens forProfileContainer). - Throws:
ProfileException- may also throw other internal exceptions (most likely bugs)
-
getDisposableProfile
@Nullable @Internal default @Nullable com.mojang.authlib.GameProfile getDisposableProfile()Same asgetProfile(), except some implementations ofProfileablecannot inherently return any original instance as they're not cacheable, so this method ensures that no duplicate cloning ofGameProfileoccurs for performance.For most implementations however, this defaults to a simple cloning of the cached instances.
- Returns:
- always a copied version of
getProfile()that you can change. Null ifgetProfile()is null
-
transform
Adds transformer (readProfileTransformer) information to a copied version of this profile (so it doesn't affect this instance).Profiles are copied before being transformed, so the main cache remains intact but the result of transformed profiles are never cached.
- Parameters:
transformers- a list of transformers to apply in order oncegetProfile()is called.
-
getProfileValue
A string representation of thegetProfile()which is useful for data storage.- Returns:
- null if
getProfile()is null or the set profile doesn't have a texture property.
-
prepare
@Nonnull @Experimental static <C extends Collection<Profileable>> CompletableFuture<C> prepare(@Nonnull C profileables) -
prepare
@Nonnull @Experimental static <C extends Collection<Profileable>> CompletableFuture<C> prepare(@Nonnull C profileables, @Nullable @Nullable ProfileRequestConfiguration config, @Nullable @Nullable com.google.common.base.Function<Throwable, Boolean> errorHandler) -
username
Sets the skull texture based on the specified player UUID (whether it's an offline or online UUID). -
of
Sets the skull texture based on the specified player UUID (whether it's an offline or online UUID). -
of
Sets the skull texture based on the specified profile. If the profile already has textures, it will be used directly. Otherwise, a new profile will be fetched based on the UUID or username depending on the server's online mode.- Parameters:
profile- The profile to be used in the profile setting operation.
-
of
Sets the skull texture based on the specified offline player. The profile lookup will depend on whether the server is running in online mode.- Parameters:
offlinePlayer- The offline player to generate theGameProfile.
-
of
-
of
-
of
-
of
-
detect
Sets the skull texture based on a string. The input type is resolved based on the value provided.Valid Types
Username: A player username. (e.g. Notch)
UUID: A player UUID. Offline or online mode UUID. (e.g. 069a79f4-44e9-4726-a5be-fca90e38aaf5)
Base64: The Base64 encoded value of textures JSON. (e.g. eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2NmNjc2N2RkMzQ3MzdlOTliZDU0YjY5NWVmMDY4M2M2YzZjZTZhNTRmNjZhZDk3Mjk5MmJkMGU0OGU0NTc5YiJ9fX0=)
Minecraft Textures URL: CheckProfileInputType.TEXTURE_URL.
Minecraft Textures Hash: Same as the URL, but only including the hash part, excluding the base URL. (e.g. e5461a215b325fbdf892db67b7bfb60ad2bf1580dc968a15dfb304ccd5e74db)- Parameters:
input- The input value used to retrieve theGameProfile. For more information checkProfileInputType
-
of
Sets the skull texture based on a string with a known type.- Parameters:
type- The type of the input value.input- The input value to generate theGameProfile.
-