Skip to content

Configuration ​

AnnouncementGUI reads its settings from:

text
plugins/AnnouncementGUI/config.yml

The plugin parses that file into a PluginSettings object during startup and reload.

Full Example ​

yml
server:
  id: "lobby-1"
  groups:
    - "lobby"
    - "network"

storage:
  file: "announcements.yml"

sync:
  enabled: true
  type: "REDIS"
  redis:
    uri: "redis://127.0.0.1:6379/0"
    channel: "announcementgui:sync"

scheduler:
  check-interval-ticks: 20

formats:
  panel:
    top-border: "&6&m------------------------------------------------"
    body-divider: "&6&m------------------------------------------------"
    bottom-border: "&6&m------------------------------------------------"
    body-separator-mode: "DIVIDER"

gui:
  titles:
    main: "&0Announcement Manager"
    create: "&0Create Announcement"
    edit: "&0Edit Announcement"
    edit-list: "&0Edit Announcements"
    delete-list: "&0Delete Announcements"
    delete-confirm: "&0Confirm Deletion"

server.id ​

server.id is the unique identifier for one Paper instance.

Use values such as:

  • lobby-1
  • survival-1
  • survival-2
  • minigame-1

This value matters for:

  • LOCAL ownership matching
  • SERVER and SERVERS targets
  • sync event origin tracking
  • %server% placeholder rendering

server.groups ​

server.groups is a logical list of categories that the current server belongs to.

Example:

yml
groups:
  - "lobby"
  - "network"

GROUP announcements match against this set.

storage.file ​

This is the YAML filename used inside the plugin data folder.

Default:

yml
storage:
  file: "announcements.yml"

Important runtime note from the source code:

  • changing storage.file with /announcement reload is not supported
  • the plugin keeps the original storage file until a full restart

If you really need a different storage filename, stop the server, change the config, and start again.

sync ​

sync.enabled turns cross-server sync on or off. sync.type currently supports REDIS or NONE.

Example:

yml
sync:
  enabled: true
  type: "REDIS"
  redis:
    uri: "redis://:password@redis.example.com:6379/0"
    channel: "announcementgui:sync"

If sync is disabled, Redis settings are ignored and the plugin stays local.

scheduler.check-interval-ticks ​

This controls how often the scheduler checks whether an announcement is due.

The source enforces a minimum of 20 ticks, which equals one second on a normal Paper server.

Example:

yml
scheduler:
  check-interval-ticks: 20

Use the default unless you have a very specific reason to check less often or more often.

formats.panel ​

These values define the visual shell around each broadcast:

  • top-border
  • body-divider
  • bottom-border
  • body-separator-mode

You can keep it as a border panel, insert a blank line instead of a divider, or remove the separator entirely.

gui.titles ​

The plugin allows you to rename inventory titles for:

  • main menu
  • create screen
  • edit screen
  • edit list
  • delete list
  • delete confirm

This is mostly useful if you want a different language or naming style for staff menus.

Reloading Changes ​

After editing the config, use:

text
/announcement reload

That will:

  • refresh config values
  • reload stored announcements
  • reconnect or disable sync depending on the new settings
  • restart the scheduler

For sync and format changes, reload is usually enough. For storage.file, restart the server instead.

Built with Vue.js and VitePress