Astral Realms Documentation Help

Configuration

AstralVote#loadConfiguration loads config.yml into MainConfiguration and messages.yml into the VotesMessages enum. It also copies (but does not parse) database.properties on first run — that file configures the standalone master module's own MySQL connection and has no effect on the Paper plugin.

config.yml

claim-actions: - "[console] give %player_name% diamond 1" services: serveurs-prives: id: "Serveur Prive" # DO NOT TOUCH!!! name: "Serveur Prive" link: "https://serveur-prive.net/minecraft/astralrealms/vote" cooldown: "1h30" serveurs-minecraft: id: "Serveurs Minecraft" # DO NOT TOUCH!!! name: "Serveurs Minecraft" link: "https://www.serveursminecraft.org/serveur/7448/" cooldown: "24h"

Key

Type

Description

notification-message

MiniMessage ComponentWrapper

Deserialized into MainConfiguration#notificationMessage but never read anywhere in the plugin — see the warning below.

claim-actions

Action list

Run once per claimed vote when a player uses claim-vote.

services

Map of service

The vote services players can vote for. Map keys are arbitrary ids for YAML organization only — see below.

The shipped config.yml has no notification-message key at all, even though MainConfiguration declares it as a required (non-@Nullable) ComponentWrapper record component. Since Configurate maps camelCase Java fields to kebab-case YAML keys, the expected key is notification-message. Whether a missing key here causes a load failure or resolves to an empty component depends on ComponentWrapper's own deserializer — either way, the field is dead: nothing in the plugin ever calls MainConfiguration#notificationMessage().

services

Each entry is a MainConfiguration.VoteService record and doubles as a ComplexPlaceholder under the service namespace (see Placeholders).

Field

Type

Description

id

String

The identifier VoteService matches against the vote's service string from Votifier (case-insensitive). Must match what the voting site actually sends — hence the shipped # DO NOT TOUCH!!! comments.

name

String

Display name. Also accepted (case-insensitively) as a match against the vote's service string, as a fallback to id.

link

String

The voting site URL, substituted into VOTE_AVAILABLE's %service_link%.

cooldown

Duration

How long after a vote for this service before the player can vote again. Parsed by DurationParser — a sequence of <number><unit> pairs with unit one of y/d/h/m/s/ms (e.g. "1d 5h", "90m").

DurationParser's regex ((\d+)\s*(y|d|h|ms|m|s)) requires a unit letter directly after every number — each match is scanned independently and a bare number with no unit is silently dropped rather than erroring. The shipped cooldown: "1h30" therefore parses as exactly 1 hour, not "1 hour 30 minutes": the 1h group matches, but the trailing 30 has no unit and is discarded. Use "1h30m" to get the intended 90-minute cooldown.

The map key itself (serveurs-prives, serveurs-minecraft) is not read as data — only id/name/link/cooldown inside each entry matter for matching and display.

messages.yml

Backed by the VotesMessages enum (MessageEnum), loaded via AstralVote#loadEnum. Every value is a MiniMessage ComponentWrapper. The shipped file is French.

Key

Placeholders

Sent when

new-vote-received

A VoteReceivedPacket for this player arrives while they're online on this server.

vote-available

%service_*% (the matching service placeholder)

The cooldown for a service the player already voted for has elapsed and they haven't been re-notified since.

vote-reminder

%amount%

On join, if the player has unclaimed votes, reminders are enabled, and at least one unclaimed vote's service cooldown has already elapsed.

no-pending-votes

claim-vote run with no unclaimed votes.

vote-claimed

%amount%

claim-vote succeeded — number of votes claimed.

unexpected-error

A database error occurred while fetching or persisting votes during claim-vote.

reminders-enabled

toggle-votes-reminders turned reminders on.

reminders-disabled

toggle-votes-reminders turned reminders off.

See also

  • Overview — cooldown/reminder/claim mechanics these keys drive.

  • Actionsclaim-actions' bracket syntax.

  • Placeholders%votes_*% and the service chain placeholder.

Last modified: 25 July 2026