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:

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 localServerId

  • Admins 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

  • changePollingIntervalSeconds configured

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:

  1. Open announcement in edit GUI

  2. Click "Toggle Status" button

  3. 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:

  1. Exporting announcements

  2. Changing storage type in config

  3. 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:

  1. Click item in GUI

  2. Chat closes, prompt appears

  3. Type value in chat

  4. Confirmation message shown

  5. 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

1

Start

/announcegui → Main menu

2

Create

Click "Create" → Creation wizard

3

Configure

Set Name (optional) Set Message (multiple lines) Set Interval (seconds) Select Server target

4

Save

Click "Save"

Editing an Announcement

1

Open main menu

/announcegui → Main menu

2

Edit list

Click "Edit" → Announcement list

3

Modify

Click announcement to edit Modify any property

4

Save

Click "Save"

Deleting an Announcement

1

Open main menu

/announcegui → Main menu

2

Delete list

Click "Delete" → Announcement list

3

Select and confirm

Click announcement to delete Confirm deletion

🔧 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:

  1. Plugin checks database for changes periodically

  2. Detects new, modified, or deleted announcements

  3. Automatically refreshes local cache

  4. 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

Feature
AnnouncementGUI
Manual Config
Other Plugins

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