Skip to content

Installation ​

This page covers the full first-run path: build the plugin, copy the jar, start Paper, and prepare the basic config.

Requirements ​

  • Java 21
  • Paper 1.21.x
  • Maven if you are building from source
  • Redis only if you plan to sync multiple servers

Build the Plugin ​

From the source project at D:\coding\AnnouncementGUI, run:

bash
mvn clean package

Expected output:

text
target/announcementgui-1.0.jar

Install on Paper ​

  1. Copy target/announcementgui-1.0.jar into your Paper server plugins folder.
  2. Start the server once so the plugin can generate its data folder.
  3. Stop the server or use /announcement reload later after editing the config.

Files Created on First Run ​

AnnouncementGUI creates a plugin data folder and, by default, uses:

text
plugins/AnnouncementGUI/config.yml
plugins/AnnouncementGUI/announcements.yml

config.yml already includes the main settings you need. announcements.yml starts empty until you create the first announcement.

Single-Server Quick Start ​

If you only need one server, a minimal config looks like this:

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

storage:
  file: "announcements.yml"

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

scheduler:
  check-interval-ticks: 20

With sync.enabled: false, the plugin stays completely local and still works normally.

Multi-Server Quick Start ​

For a network, every server must have a unique server.id and all servers that should sync must share the same Redis URI and channel.

Example:

yml
server:
  id: "survival-1"
  groups:
    - "survival"

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

Open the GUI ​

Once the server is online, use:

text
/announcementgui

or

text
/agui

Both commands open the main announcement menu for players with the correct permission.

After Installation ​

Next, go to GUI Workflow to create the first announcement and understand how the in-game editor behaves.

Built with Vue.js and VitePress