AnnouncementGUI is a modern Paper plugin for managing server announcements directly from an in-game inventory GUI.
Instead of editing config files manually for every announcement, staff can create, edit, delete, schedule, and broadcast announcements from inside Minecraft. AnnouncementGUI is built for both single-server setups and multi-server networks that need targeted or global announcements.
Features
- In-game inventory GUI for announcement management
- Create, edit, and delete announcements without restarting the server
- Scheduled announcement broadcasting
- Styled panel-style announcement output
- Title, description, and body support
- Legacy color code support, such as &a, &b, &6
- Hex color support, such as 7FFFF
- Placeholder support:
- %player%
- %uuid%
- %server%
- %online%
- Target announcements to:
- Local server
- Specific server
- Multiple servers
- Server group
- Global network
- Optional Redis Pub/Sub sync for multi-server networks
- YAML-based announcement storage
- Permission-based admin access
Commands
/announcementgui - Open the main GUI
/agui - Shortcut for the main GUI
/announcement open - Open the main GUI
/announcement reload - Reload config and plugin state
/announcement list - List existing announcements
/announcement broadcast <id> - Force broadcast an announcement
Permissions
announcementgui.admin - Full access
announcementgui.open - Open the GUI
announcementgui.create - Create announcements
announcementgui.edit - Edit announcements
announcementgui.delete - Delete announcements
announcementgui.reload - Reload the plugin
announcementgui.broadcast - Force broadcast announcements
Requirements
- Java 21
- Paper 1.21.x
Installation
1. Download the plugin jar.
2. Place the jar file into your server's /plugins folder.
3. Restart your server.
4. Edit plugins/AnnouncementGUI/config.yml if needed.
5. Use /agui or /announcementgui in-game to open the announcement manager.
Multi-Server / Redis Setup
Redis sync is optional and disabled by default.
To enable cross-server synchronization:
1. Set sync.enabled to true in config.yml.
2. Set sync.type to REDIS.
3. Configure sync.redis.uri with your Redis connection URI.
4. Use the same Redis channel on every server.
5. Give every server a unique server.id.
6. Configure server.groups if you want group-targeted announcements.
Example server IDs:
- lobby-1
- survival-1
- minigame-1
Example groups:
- lobby
- survival
- minigame
Notes
AnnouncementGUI currently uses local YAML storage. Redis is used to sync announcement events across servers, such as create, update, delete, and force broadcast actions.