Configuration
On this page(2)
SnGGWave ships with the following YAML files. New keys are auto-merged on boot; your edits and comments are preserved.
config.yml
# ============================================================
# SnGGWave - configuration
# Managed by SnLib: new keys are auto-merged on boot; your values and
# comments are preserved. Do NOT add a config-version key (retired).
# Set update-configs: false to freeze this file (SnLib only warns about
# missing keys instead of inserting them).
# Sections marked "# sn:extensible" are yours: entries you delete there
# stay deleted.
# ============================================================
# Active language code; loads lang/messages_<code>.yml (falls back to en).
lang: en
# Master switch of the SnLib auto-updater for this plugin's managed files.
update-configs: true
# Runtime debug output (also toggleable live via /ggwave debug).
debug:
# Master toggle of the debug output.
enabled: false
# Verbosity threshold: OFF, INFO, DEBUG or TRACE.
level: DEBUG
# Category filter; an empty list lets every category through.
categories: []
# ------------------------------------------------------------
# Main command.
# ------------------------------------------------------------
command:
# Aliases of /ggwave. Re-read on /ggwave reload.
aliases: [okigg]
# ------------------------------------------------------------
# Public developer API.
# ------------------------------------------------------------
# Public developer API events. When false, no API event is dispatched (zero
# cost) and cancellable hooks report "not cancelled" so gameplay proceeds.
# The query facade stays available either way.
api-events:
enabled: true
# ------------------------------------------------------------
# Wave model. How long a wave lasts and which chat message joins it.
# ------------------------------------------------------------
# Seconds a wave stays open after /ggwave start; the same value feeds the announcement and {seconds}. Clamped to 1-86400.
wave-seconds: 10
# Java regex a chat message must match in full (after trimming) to join an active wave; an invalid regex falls back to the default.
allowed-gg-pattern: "^(?i)(gg!?|ggg)$"
# ------------------------------------------------------------
# Rewards. Console commands run once per player for each wave claimed.
# Placeholders: {player} {player_uuid} {wave_id} {sponsor} {amount} {seconds}.
# {amount} is the free text the staff member typed after the player name,
# inserted verbatim. A leading / is ignored. They run as the console of the platform hosting the plugin.
# ------------------------------------------------------------
# Console commands executed for every claimed wave; blank entries are skipped.
reward-commands:
- "alert {player} received GGWave reward"
# ------------------------------------------------------------
# Visuals. The sponsor avatar needs SkinsRestorer; without it the announcement is sent without the head.
# ------------------------------------------------------------
visual:
avatar:
# Draws the sponsor head beside the start announcement.
enabled: true
# Head size in rows and columns of pixel characters, from 1 to 64.
size: 8
# Character drawn for every pixel of the head.
pixel-char: "#"
# Text placed between a head row and the announcement line beside it.
separator: " "
chat:
# Wraps the whole GG chat line in bold.
bold: false
decorator:
# Adds a decorator on both sides of the GG chat line.
enabled: false
# Decorator text.
text: "|"
# Applies the obfuscated style to the decorator.
obfuscated: true
# Text between the decorator and the player name or message.
spacing: " "
rainbow:
# Colors the player name and message of the GG chat line in a rainbow.
enabled: true
# Degrees the starting hue advances on every rendered text; at least 1.
hue-step-degrees: 15
# Color saturation from 0.0 to 1.0.
saturation: 0.9
# Color brightness from 0.0 to 1.0.
brightness: 1.0
# Degrees of hue between neighbouring characters; 0 gives one color per text.
char-spread-degrees: 20
center:
# Chat width in characters used by the [center] tag of the start and end lines. Clamped to 1-320.
chat-width: 80
# ------------------------------------------------------------
# Sounds. Played to everyone in scope after the start and end announcements.
# ------------------------------------------------------------
sounds:
start:
# Plays the sound when a wave starts.
enabled: true
# Sound key.
key: "minecraft:block.note_block.pling"
# Sound category: MASTER, MUSIC, RECORD, WEATHER, BLOCK, HOSTILE, NEUTRAL, PLAYER, AMBIENT or VOICE.
source: "MASTER"
# Sound volume.
volume: 1.0
# Sound pitch from 0.5 to 2.0.
pitch: 1.0
end:
# Plays the sound when a wave ends.
enabled: true
# Sound key.
key: "minecraft:block.note_block.bass"
# Sound category: MASTER, MUSIC, RECORD, WEATHER, BLOCK, HOSTILE, NEUTRAL, PLAYER, AMBIENT or VOICE.
source: "MASTER"
# Sound volume.
volume: 1.0
# Sound pitch from 0.5 to 2.0.
pitch: 1.0lang/messages_en.yml
# ============================================================
# SnGGWave - language file (English)
# Managed by SnLib: new keys merge in on boot, your values are kept.
# Restyle any line freely; your edits survive updates.
# ============================================================
# Prefix prepended to every single-line message sent via sn.lang().send(...)
prefix: "₢f2&lGGWave &8| &7"
# snlib.* is SnLib's shared command contract (14 keys; the two help.group-*
# keys exist since SnLib 1.36.0). Every Sn plugin ships
# this block UNCHANGED: SnLib bundles NEUTRAL defaults for any key you omit and
# merges them in on boot, so an incomplete block leaks unbranded lines. Shipping
# the FULL block is what keeps the whole fleet visually identical. Placeholders
# {plugin} {usage} {description} {page} {total} {min} {max} {value} {command}
# {group} {path} are filled by SnLib. NEVER put {prefix} here (it is auto-prepended).
snlib:
no-permission: "&cYou do not have permission to use this command."
usage: "&cUsage: &e{usage}"
invalid-number: "&cInvalid number: &e{value}"
invalid-value: "&cInvalid value: &e{value}"
out-of-range: "&cValue must be between &e{min} &cand &e{max}&c: &e{value}"
number-too-small: "&cValue must be at least &e{min}&c: &e{value}"
player-not-found: "&cPlayer not found: &e{value}"
unknown-subcommand: "&cUnknown subcommand: &e{value}"
reload-done: "&aConfiguration reloaded."
help:
header: "&8&m----------&r ₢f2&l{plugin} &8&m----------"
# Branded no-separator form. SnLib's neutral default is "&e{usage} &7{description}".
entry: "₢f2{usage} &7{description}"
footer: "&7Page &f{page}&7/&f{total} &8- ₢f2/{command} help <page>"
# Own help of a groupHelp() command group (/<cmd> admin <module> help).
group-header: "&8&m----------&r ₢f2&l{group} &8&m----------"
group-footer: "&7Page &f{page}&7/&f{total} &8- ₢f2{path} help <page>"
# Your own plugin messages. Do NOT write {prefix} in any value: SnLib
# auto-prepends the prefix above to every single-line message sent via
# sn.lang().send(...).
messages:
# Sent to the staff member after a wave starts. Placeholders: {player} {amount} {seconds}.
wave-started: "&aStarted a GG Wave for &f{player}&a with amount &f{amount}&a for &f{seconds}s&a."
# Sent to the staff member when another plugin cancelled the wave before it started. Placeholder: {player}.
wave-start-cancelled: "&cThe GG Wave for &f{player}&c was cancelled before it started."
# Sent when the player named in the start command is not online. Placeholder: {player}.
player-not-found: "&cPlayer &f{player}&c is not online."
# Sent when a reload fails and the previous settings stay active.
reload-failed: "&cConfiguration reload failed. Check console."
chat:
# Template of the GG line shown to everyone. Placeholders: {decorator-left} {rainbow-player} {rainbow-message} {decorator-right} {player} {message}.
global-gg: "{decorator-left}{rainbow-player} <gray>:</gray> {rainbow-message}{decorator-right}"
wave:
start:
# Lines of the start announcement; the prefix is added to every non-blank line. A fully blank line is not sent unless an avatar row sits on it. Placeholders: {player} {amount} {seconds}.
lines:
- ""
- "<rainbow>GG WAVE ACTIVATED!</rainbow>"
- "&7Thanks to &f{player}&7 for supporting the network."
- "&7Purchase amount: &f{amount}"
- "&7Wave duration: &f{seconds}s"
- "&7Type &fGG&7 now to participate globally!"
- ""
# First fallback line, used only when lines is empty.
fallback-1: "&aGG Wave activated for &f{player}&a!"
# Second fallback line, used only when lines is empty.
fallback-2: "&7Amount: &f{amount}"
# Third fallback line, used only when lines is empty.
fallback-3: "&7Type &fGG&7 now!"
end:
# Line broadcast when a wave ends, without prefix; blank disables it. Placeholders: {player} {amount} {seconds}.
message: "<rainbow>GG Wave has ended!</rainbow>"