Astral Realms Documentation Help

Placeholders

AstralPrivateChest registers one placeholder namespace, privatechest, backed by ChestData itself (a ComplexPlaceholder). It is not globally registered — an instance only becomes resolvable when a ChestData is placed into scope, which happens in ChestListener when sending cannot-access or already-locked (AstralPaperAPI.createPlaceholderContainer(player).registerPlaceholder(chestData)). For the placeholder syntax itself (%a_b_c%, chaining, $e(...)) see Placeholders.

privatechest_*

Placeholder

Type

Description

%privatechest_ownerId%

UUID

The locking chest's owner id.

%privatechest_ownerName%

String

The owner's name as recorded at lock time (not re-resolved live).

%privatechest_owner%

MinecraftPlayerPlaceholder

The owner, chainable into any player_*-style sub-key (%privatechest_owner_name%, %privatechest_owner_online%, …).

%privatechest_authorizedUsers%

Set<UUID>

The raw set of authorized member UUIDs.

%privatechest_face%

String

The stored BlockFace name (NORTH/SOUTH/EAST/WEST), or null for pre-display ("V1") data with no stored face.

Where these are consumed

File

Usage

messages.yml

cannot-access uses %privatechest_owner_name%; already-locked uses %privatechest_owner_name%.

See also

  • Overview — when a chest carries ChestData and how it's persisted.

  • Configuration — the messages.yml keys these placeholders fill in.

Last modified: 25 July 2026