Features
Comprehensive overview of all AnnouncementGUI features and capabilities.
🎯 Core Features
Intuitive GUI-Based Management
What it does: Manage announcements through an easy-to-use graphical interface.
Key Benefits:
No complex commands to memorize
Visual feedback for all actions
Step-by-step creation wizard
Click-to-edit functionality
Interface Highlights:
Main Menu: Hub for all announcement operations
Creation Wizard: Guided announcement creation
Edit Interface: Modify existing announcements
List View: Browse all announcements with pagination
Scheduled Announcements
What it does: Automatically broadcast messages at configured intervals.
Features:
Custom Intervals: Set any interval in seconds (e.g., 300 = 5 minutes)
Precise Timing: Uses server scheduler for accurate timing
Independent Schedules: Each announcement has its own schedule
Enable/Disable Toggle: Turn announcements on/off without deletion
Example Use Cases:
Welcome messages every 5 minutes
Vote reminders every 10 minutes
Event notifications every 30 minutes
Tips and tricks every 15 minutes
Multi-Line Messages
What it does: Create announcements with multiple lines of text.
Features:
Unlimited Lines: Add as many lines as needed
Line-by-Line Input: Type one line at a time in chat
Easy Editing: Modify messages line by line
Line Management: Add, edit, or remove individual lines
Example:
Rich Text Formatting
What it does: Style your announcements with colors and formatting.
Supported Formats:
MiniMessage (Recommended)
Modern, powerful formatting system:
Legacy Color Codes
Traditional Minecraft color codes:
Available Options:
Colors: All Minecraft colors
Formatting: Bold, italic, underline, strikethrough
Gradients: Smooth color transitions
Rainbow: Animated rainbow text
Hover text: Show tooltips
Click actions: Run commands, open URLs
Multi-Server Support
What it does: Target announcements to specific servers or all servers.
Capabilities:
Server-Specific Announcements
Network-Wide Announcements
Configuration:
Each server has a unique
localServerIdAdmins select target from configured server list
Servers can enable/disable "ALL" announcements
Benefits:
Targeted messaging (e.g., survival-only announcements)
Network-wide broadcasts (e.g., maintenance notices)
Flexible server selection
Real-Time Cross-Server Synchronization
What it does: Automatically sync announcements across multiple servers.
How it Works:
Uses MySQL for shared storage
Lightweight polling detects changes
No special database privileges required
Configurable polling interval
Features:
Create Once, Deploy Everywhere: Create on one server, appears on all
Edit Anywhere: Changes made on any server sync to all
Delete Anywhere: Deletions sync across network
Toggle Anywhere: Enable/disable from any server
Sync Speed:
Default: 10 seconds
Configurable: 5-30 seconds recommended
Near real-time synchronization
Requirements:
MySQL database
All servers connected to same MySQL instance
changePollingIntervalSecondsconfigured
PlaceholderAPI Integration
What it does: Use dynamic placeholders in announcements.
Features:
Player-Specific Values: Show player name, balance, rank, etc.
Server Variables: Display TPS, player count, etc.
External Plugin Data: Pull data from any PlaceholderAPI-compatible plugin
Common Placeholders:
Example Announcement:
Performance:
Auto-detects placeholders
Per-player parsing for placeholder announcements
Broadcast mode for non-placeholder announcements
Optimized for minimal overhead
Requirements:
PlaceholderAPI plugin installed
Relevant expansions installed (e.g., Vault, LuckPerms)
Announcement Names/Labels
What it does: Give announcements descriptive names for easy identification.
Features:
Optional: Names are not required
Descriptive: Use clear names like "Welcome Message" or "Vote Reminder"
Searchable: Easier to find specific announcements
Organization: Keep your announcements organized
Best Practices:
Enable/Disable Toggle
What it does: Temporarily disable announcements without deleting them.
Use Cases:
Seasonal Announcements: Disable holiday messages off-season
Event Announcements: Enable during events, disable after
Testing: Disable while configuring
Maintenance: Disable during server maintenance
How to Use:
Open announcement in edit GUI
Click "Toggle Status" button
Announcement immediately starts/stops
Status Display:
Enabled: Announcement is running
Disabled: Announcement is paused
Import/Export Functionality
What it does: Backup and restore announcements via JSON files.
Export Features:
Export all announcements to JSON
Custom filename support
Stores in plugin folder
Includes all announcement data
Import Features:
Import from JSON files
Two modes: merge or replace
Validates JSON before importing
Preserves announcement structure
Use Cases:
Backups: Regular backups before changes
Migration: Move to new server
Templates: Share announcement packs
Testing: Test configurations safely
Version Control: Track changes in Git
File Format:
Database Storage Options
What it does: Choose between SQLite or MySQL for storage.
SQLite:
Best for: Single servers
Setup: Zero configuration
Performance: Fast for single server
Portability: Single file database
Backup: Simple file copy
MySQL:
Best for: Multi-server networks
Setup: Requires MySQL server
Performance: Excellent for networks
Sync: Real-time cross-server sync
Centralized: One database for all servers
Switching: Can switch between SQLite and MySQL by:
Exporting announcements
Changing storage type in config
Importing announcements back
Pagination System
What it does: Browse large lists of announcements easily.
Features:
14 Announcements Per Page: Organized grid layout
Navigation Buttons: Next/Previous page arrows
Current Page Display: Shows current page number
Smooth Navigation: Click to switch pages
Interface:
Confirmation Dialogs
What it does: Prevent accidental deletions.
Features:
Delete Confirmation: Confirm before deleting
Clear Actions: "Confirm" vs "Cancel" buttons
Visual Feedback: Different colors for actions
Safe by Default: Must explicitly confirm
Actions Requiring Confirmation:
Deleting announcements
Replacing all announcements (import)
Chat Input System
What it does: Input values via chat for certain fields.
Features:
Multi-Line Messages: Type "DONE" when finished
Intervals: Type seconds (e.g., "300")
Server Selection: Type server ID or "ALL"
Names: Type descriptive name
User Experience:
Click item in GUI
Chat closes, prompt appears
Type value in chat
Confirmation message shown
Reopen GUI to continue
Validation:
Intervals must be positive numbers
Server IDs must match configured servers
Empty lines are skipped in messages
Folia Support
What it does: Full compatibility with Folia server platform.
Features:
Region-Based Threading: Works with Folia's threading model
Async-Safe Operations: Database operations are async-safe
Scheduler Adapter: Automatically detects Paper vs Folia
Performance: Optimized for Folia's architecture
Benefits:
Run on modern Folia servers
Better performance on Folia
Future-proof for new Minecraft versions
Customizable Messages
What it does: Customize all player-facing messages.
Configurable via gui-messages.yml:
Prefix
Chat prompts
Confirmation messages
Error messages
Success messages
Customization Options:
Colors and formatting
Message content
Language translation
Server branding
Example:
GUI Customization
What it does: Customize GUI appearance and layout.
Configurable via guis/*.yml:
GUI titles
Item materials
Item names and lore
Item positions
Click actions
Customization Examples:
Change colors and materials
Modify layout
Translate to other languages
Add custom decorations
Automatic Library Management
What it does: Automatically downloads required libraries.
Features:
Paper's Library Loader: Downloads libraries at runtime
Small JAR Size: Core plugin is small
No Manual Downloads: Libraries fetched automatically
Version Management: Always uses correct versions
Included Libraries:
MiniMessage (text formatting)
SQLite driver
MySQL driver
MySQL binlog connector
Benefits:
Easier updates
Smaller download size
No dependency conflicts
🎮 Workflow Features
Creating an Announcement
Editing an Announcement
Deleting an Announcement
🔧 Technical Features
Performance Optimizations
Async Database Operations: No main thread blocking
Efficient Polling: Lightweight change detection
Cached Data: Minimizes database queries
Broadcast Optimization: Single broadcast for non-placeholder messages
Reliability Features
Connection Pooling: Efficient MySQL connections
Error Handling: Graceful error recovery
Transaction Support: Atomic database operations
Data Validation: Prevents invalid data
Compatibility Features
Paper API: Uses modern Paper APIs
Folia Compatible: Works on Folia servers
Cross-Version: Compatible with Minecraft 1.21+
Plugin Hooks: Soft-depends on PlaceholderAPI
🚀 Advanced Features
Database Change Polling
How it works:
Plugin checks database for changes periodically
Detects new, modified, or deleted announcements
Automatically refreshes local cache
Restarts affected announcement tasks
Advantages:
No special database privileges needed
Works with managed MySQL services
Simple and reliable
Configurable polling interval
Per-Player vs Broadcast Mode
Intelligent Message Routing:
Broadcast Mode (faster):
Used when message has no placeholders
Single message sent to all players
Minimal CPU usage
Per-Player Mode (dynamic):
Used when message contains placeholders
Message parsed individually for each player
Shows player-specific values
Auto-Detection: Plugin automatically detects which mode to use based on message content.
Session Management
What it does: Tracks player GUI sessions and pending operations.
Features:
Tracks pending chat inputs
Tracks current announcement being edited
Cleans up on player disconnect
Prevents conflicts between players
📊 Feature Comparison
GUI Interface
✅ Yes
❌ No
⚠️ Some
Multi-Server
✅ Yes
⚠️ Complex
⚠️ Rare
PlaceholderAPI
✅ Yes
⚠️ Manual
✅ Common
MiniMessage
✅ Yes
❌ No
⚠️ Some
Import/Export
✅ Yes
⚠️ Manual
❌ Rare
Folia Support
✅ Yes
N/A
❌ Rare
Real-Time Sync
✅ Yes
❌ No
❌ Rare
Easy Setup
✅ Yes
❌ No
⚠️ Varies
Related Documentation:
GUI Guide - Detailed GUI usage
PlaceholderAPI Integration - Placeholder usage
Multi-Server Setup - Network configuration
Configuration Guide - Configuration options