Package com.destroystokyo.paper.profile

# Interface PlayerProfile

public interface PlayerProfile
Represents a players profile for the game, such as UUID, Name, and textures.

## Method Summary

Modifier and Type
Method
Description
`void`
`clearProperties()`
Clears all properties on this profile
`default boolean`
`complete()`
If this profile is not complete, then make the API call to complete it.
`boolean`
`complete(boolean textures)`
If this profile is not complete, then make the API call to complete it.
`boolean`
`complete(boolean textures, boolean onlineMode)`
If this profile is not complete, then make the API call to complete it.
`boolean`
`completeFromCache()`
Like `complete(boolean)` but will try only from cache, and not make network calls Does not account for textures.
`boolean`
`completeFromCache(boolean onlineMode)`
Like `complete(boolean)` but will try only from cache, and not make network calls Does not account for textures.
`boolean`
`completeFromCache(boolean lookupUUID, boolean onlineMode)`
Like `complete(boolean)` but will try only from cache, and not make network calls Does not account for textures.
`@Nullable UUID`
`getId()`
`@Nullable String`
`getName()`
`@NotNull Set<ProfileProperty>`
`getProperties()`
`boolean`
`hasProperty(@Nullable String property)`
Check if the Profile has the specified property
`default boolean`
`hasTextures()`
Whether or not this Profile has textures associated to it
`boolean`
`isComplete()`
`default boolean`
`removeProperties(@NotNull Collection<ProfileProperty> properties)`
Removes all properties in the collection
`default boolean`
`removeProperty(@NotNull ProfileProperty property)`
Removes a specific property from this profile
`boolean`
`removeProperty(@Nullable String property)`
Removes a specific property from this profile
`@Nullable UUID`
`setId(@Nullable UUID uuid)`
Sets this profiles UUID
`@NotNull String`
`setName(@Nullable String name)`
Sets this profiles Name
`void`
`setProperties(@NotNull Collection<ProfileProperty> properties)`
Sets multiple properties.
`void`
`setProperty(@NotNull ProfileProperty property)`
Sets a property.

## Method Details

### getName

@Nullable @Nullable String getName()

Returns:
  The players name, if set

### setName

@NotNull @NotNull String setName(@Nullable @Nullable String name)
Sets this profiles Name

Parameters:
  `name` - The new Name
Returns:
  The previous Name

### getId

@Nullable @Nullable UUID getId()

Returns:
  The players unique identifier, if set

### setId

@Nullable @Nullable UUID setId(@Nullable @Nullable UUID uuid)
Sets this profiles UUID

Parameters:
  `uuid` - The new UUID
Returns:
  The previous UUID

### getProperties

@NotNull @NotNull Set<ProfileProperty> getProperties()

Returns:
  A Mutable set of this players properties, such as textures. Values specified here are subject to implementation details.

### hasProperty

boolean hasProperty(@Nullable @Nullable String property)
Check if the Profile has the specified property

Parameters:
  `property` - Property name to check
Returns:
  If the property is set

### setProperty

void setProperty(@NotNull @NotNull ProfileProperty property)
Sets a property. If the property already exists, the previous one will be replaced

Parameters:
  `property` - Property to set.

### setProperties

void setProperties(@NotNull @NotNull Collection<ProfileProperty> properties)
Sets multiple properties. If any of the set properties already exist, it will be replaced

Parameters:
  `properties` - The properties to set

### removeProperty

boolean removeProperty(@Nullable @Nullable String property)
Removes a specific property from this profile

Parameters:
  `property` - The property to remove
Returns:
  If a property was removed

### removeProperty

default boolean removeProperty(@NotNull @NotNull ProfileProperty property)
Removes a specific property from this profile

Parameters:
  `property` - The property to remove
Returns:
  If a property was removed

### removeProperties

default boolean removeProperties(@NotNull @NotNull Collection<ProfileProperty> properties)
Removes all properties in the collection

Parameters:
  `properties` - The properties to remove
Returns:
  If any property was removed

### clearProperties

void clearProperties()
Clears all properties on this profile

### isComplete

boolean isComplete()

Returns:
  If the profile is now complete (has UUID and Name)

### completeFromCache

boolean completeFromCache()
Like `complete(boolean)` but will try only from cache, and not make network calls Does not account for textures.

Returns:
  If the profile is now complete (has UUID and Name)

### completeFromCache

boolean completeFromCache(boolean onlineMode)
Like `complete(boolean)` but will try only from cache, and not make network calls Does not account for textures.

Parameters:
  `onlineMode` - Treat this as online mode or not
Returns:
  If the profile is now complete (has UUID and Name)

### completeFromCache

boolean completeFromCache(boolean lookupUUID, boolean onlineMode)
Like `complete(boolean)` but will try only from cache, and not make network calls Does not account for textures.

Parameters:
  `lookupUUID` - If only name is supplied, should we do a UUID lookup
  `onlineMode` - Treat this as online mode or not
Returns:
  If the profile is now complete (has UUID and Name)

### complete

default boolean complete()
If this profile is not complete, then make the API call to complete it. This is a blocking operation and should be done asynchronously. This will also complete textures. If you do not want to load textures, use {`complete(boolean)`}

Returns:
  If the profile is now complete (has UUID and Name) (if you get rate limited, this operation may fail)

### complete

boolean complete(boolean textures)
If this profile is not complete, then make the API call to complete it. This is a blocking operation and should be done asynchronously. Optionally will also fill textures. Online mode will be automatically determined

Parameters:
  `textures` - controls if we should fill the profile with texture properties
Returns:
  If the profile is now complete (has UUID and Name) (if you get rate limited, this operation may fail)

### complete

boolean complete(boolean textures, boolean onlineMode)
If this profile is not complete, then make the API call to complete it. This is a blocking operation and should be done asynchronously. Optionally will also fill textures.

Parameters:
  `textures` - controls if we should fill the profile with texture properties
  `onlineMode` - Treat this server as online mode or not
Returns:
  If the profile is now complete (has UUID and Name) (if you get rate limited, this operation may fail)

### hasTextures

default boolean hasTextures()
Whether or not this Profile has textures associated to it

Returns:
  If has a textures property