Appearance

The appearance extended info block. This is an unusually-large extended info block that is also the only extended info block which gets cached client-side. The library utilizes that caching through a counter which increments with each modification done to the appearance. When an avatar goes from low resolution to high resolution, a comparison is done against the cache, if the counters match, no extended info block is written. If an avatar logs out, every observer will have their counter set back to -1.

Parameters

encoders

the array of client-specific encoders for appearance.

Constructors

Link copied to clipboard

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

The string to render after an avatar's combat level in the right-click menu, used within the Burthorpe games' room.

Link copied to clipboard

The string to render after an avatar's name in the right-click menu, used within the Burthorpe games' room.

Link copied to clipboard

The string to render before an avatar's name in the right-click menu, used within the Burthorpe games' room.

Link copied to clipboard

The type of body the avatar is using.

Link copied to clipboard

The colours the avatar's model is made up of.

Link copied to clipboard

The combat level of this avatar.

Link copied to clipboard
Link copied to clipboard

Whether to force a model refresh client-side, removing the cached model of the player even if the worn objects + base colour + gender have not changed. This is important to flag when setting or removing an obj type customization.

Link copied to clipboard

Whether this avatar is soft-hidden, meaning client will not render the model itself for anyone except J-Mods. Clients such as RuneLite will ignore this property within any plugins.

Link copied to clipboard

The secondary and tertiary wearpos that the primary wearpos ends up hiding. The secondary and tertiary values are bitpacked into a single byte. We track this separately, so we can always get the full idea of what the avatar is built up out of.

Link copied to clipboard

An array of ident kit ids, indexed by the respective wearpos. While there are only 256 potential values that the client can accept, all 256 are possible values, leaving us no room for a default. This is why a short array is used here instead.

Link copied to clipboard

The name of this avatar.

Link copied to clipboard

The customisations applied to worn objs, indexed by the respective obj's primary wearpos.

Link copied to clipboard

The overhead icon that's utilized with prayers.

Link copied to clipboard

The type of pronoun to utilize within clientscripts.

Link copied to clipboard

The animation used when the avatar is standing still.

Link copied to clipboard

The animation used when the avatar is running.

Link copied to clipboard

The skill level of this avatar, shown on the right-click menu as "skill-number". This is utilized within Burthorpe's games' room.

Link copied to clipboard

The skull icon that appears over-head, mostly in PvP scenarios.

Link copied to clipboard

The id of the npc to which this avatar has transformed.

Link copied to clipboard

The animation used when the avatar is turning on-spot without movement.

Link copied to clipboard

The animation used when the avatar is walking forward.

Link copied to clipboard

The animation used when the avatar is walking backwards.

Link copied to clipboard

The animation used when the avatar is walking to the left.

Link copied to clipboard

The animation used when the avatar is walking to the right.

Link copied to clipboard

The worn obj ids, indexed by the respective wearpos.

Functions

Link copied to clipboard
open override fun clear()

Clears this extended info block, making it ready for use by another avatar.

Link copied to clipboard
fun getBuffer(oldSchoolClientType: OldSchoolClientType): ByteBuf?

Gets the latest pre-computed buffer for the given oldSchoolClientType.

Link copied to clipboard
fun getEncoder(oldSchoolClientType: OldSchoolClientType): PrecomputedExtendedInfoEncoder<Appearance>?

Gets the encoder for a given oldSchoolClientType.

Link copied to clipboard
fun isPrecomputed(oldSchoolClientType: OldSchoolClientType): Boolean

Checks whether a buffer has been precomputed on the specified client type.

Link copied to clipboard
fun setBuffer(clientTypeId: Int, buffer: ByteBuf)

Sets the client-specific buffer at index clientTypeId.