Sueta

Ultimate Broadcast

2.4.0

High-performance announcements for Paper, Purpur & Folia: per-player subscriptions, Discord mirroring, scheduling, countdowns, 5 channels, MiniMessage and zero main-thread SQL. 1.21-26.3.

·Plugin
  1. 2.4.0latestUltimate Broadcast 2.4.0 - Subscriptions, Discord & True Folia2 days ago

    Ultimate Broadcast 2.4.0 — the rescue release

    This update fixes the two reasons 2.1.0–2.3.0 lost most of their downloads: a broken default config that could stop the plugin from starting, and missing Minecraft version tags that hid the newest builds from 1.21.5+ servers. It also adds the features players and server owners actually asked for.
    ---

    🔥 Critical fixes

    The plugin could fail to start on a fresh install
    config.yml shipped in 2.1.0–2.3.0 had gui.title indented with three spaces while its siblings used two. Bukkit refuses to parse that file, so the plugin could disable itself on first start — which is why 2.1.0 only ever reached a handful of downloads while 2.0.2 kept being downloaded. 2.4.0: * ships a valid configuration, * detects the exact broken layout on existing installs, * writes a timestamped backup (config.backup-<date>.yml), * repairs the indentation in place, * and starts normally. Your comments and custom values are preserved — the file is fixed, not replaced.
    The newest builds were invisible on modern Minecraft
    2.3.0 was published with game_versions ending at 1.21.4, even though 2.0.2 supported up to 1.21.11. Servers on 1.21.5–26.3 could not install the newer version at all. 2.4.0 is listed for every version from 1.21 through 26.3, verified on Paper 1.21.4, Paper 26.3 and Folia 26.3. ---

    🛠 Other bugs fixed

    | Bug | Impact | Fix | | --- | --- | --- | | Sound.valueOf(...) used at runtime | On 1.21.4+ Sound became an interface, so the call throws NoSuchMethodError and sounds break | Registry-based resolver with enum fallback and a per-name cache | | MySQL schema used AUTOINCREMENT and SQLite-only ON CONFLICT | "MySQL support" could never create its tables | Dialect-aware DDL, portable upserts, epoch-millis timestamps | | SQLite driver class pointed at a relocated package | Database could silently stay uninitialised | Storage rewritten without shading/relocation, verified on startup | | GUI listener cancelled every inventory click on the server | Players could not use any other plugin's GUI | Clicks are only handled when our own InventoryHolder is open | | GUI item names were Component.toString() dumps | Menus displayed TextComponentImpl{...} garbage | Real Adventure components for titles, names and lore | | Scheduled entries were loaded from config and database | Every reload duplicated announcements | Config is the single source of truth | | random-messages.interval-minutes and per-message weight ignored | Random pool fired on the scheduler interval and picked uniformly | Dedicated weighted rotation on its own interval | | PlaceholderAPI only applied when a sender existed | %player%/PAPI placeholders were never resolved in scheduled messages | Rendered per recipient, for every source | | Countdown/actionbar required a player sender | Console could not start a countdown | Works from console | | Titles used legacy strings | Hex gradients turned into §x gibberish | Adventure Title with full RGB | | Network relay re-broadcast its own messages | Duplicate announcements across servers | Message IDs with a dedupe window | | SQL ran on the server thread | TPS spikes when history/preferences were written | Single background writer thread | ---

    ✨ New features

    🔔 Player subscription centre
    * /broadcast toggle — master opt-out. * /broadcast toggle events — per-category opt-out. * /broadcast settings — GUI with a toggle per category. * Configurable categories with display names, descriptions, default state and permission. * Preferences stored in SQLite/MySQL and loaded asynchronously on join. Filtering happens before* rendering, so opted-out players cost nothing.
    💬 Discord mirroring (no bot required)
    * Webhook-based, runs on its own daemon thread. * Rate-limit aware, retries transient failures, respects 429. * Choose which events mirror: manual, scheduled, random, countdown. * Configurable username, avatar, colour, footer and optional @everyone for manual broadcasts. * /broadcast discord test verifies the setup.
    🎛 Five delivery channels
    /broadcast send <chat|actionbar|title|subtitle|bossbar> <message> — plus the legacy /broadcast title, /broadcast actionbar shortcuts.
    🧵 True Folia support
    * Runtime Folia detection. * Global region scheduler for timers, async scheduler for storage, per-entity scheduler for player messages. * Verified on Folia 26.3: timers fire on the region scheduler and messages are dispatched per player.
    🧠 Delivery guard
    * Duplicate window (proxy echo protection). * Hard per-second cap. * TPS-aware effects (chat still sends, sounds/particles pause). * Minimum-player rule. * Per-player cooldowns for scheduled entries.
    ⚙️ Operations
    * /broadcast stats — totals, players reached, duplicate drops, storage backend, Discord health, live TPS. * /broadcast history — last 20 announcements from the database. * /broadcast list — next run time for every scheduled entry. * settings.debug: true logs exactly why an announcement was skipped. * Safe /broadcast reload that restarts schedulers without duplicating tasks.
    🔌 PlaceholderAPI
    New placeholders, all served from memory: %ultimatebroadcast_total%, %ultimatebroadcast_scheduled%, %ultimatebroadcast_delivered%, %ultimatebroadcast_duplicates%, %ultimatebroadcast_enabled%, %ultimatebroadcast_cooldown%, %ultimatebroadcast_subscribed_<category>%. ---

    ⚡ Performance & reliability

    No SQL on the server thread.* History, stats and preferences are queued to a single daemon writer; SQLite runs in WAL mode with a single writer, eliminating database is locked under load. Messages without placeholders are parsed once per broadcast*, not once per player. One 1-second ticker* replaces one Bukkit task per scheduled entry; intervals no longer drift and /reload cannot pile up duplicate tasks. Sound and particle lookups are cached* after the first resolve. Effects back off automatically* below your TPS threshold. History is pruned automatically* to settings.history-limit. ---

    🧩 Compatibility

    | | | | --- | --- | | Minecraft | 1.21, 1.21.1–1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3 | | Platforms | Paper, Purpur, Folia | | Java | 21+ (26.x servers require Java 25, as always) | | Optional | PlaceholderAPI | Verified during this release: Paper 1.21.4 (Java 21), Paper 26.3 (Java 25), Folia 26.3 (Java 25) — plugin enabled, all five channels delivered, scheduler fired, database writes confirmed. Spigot/Bukkit are no longer listed. The plugin uses Adventure components for hex colours and titles, which Spigot does not provide; the 2.x Spigot listing could not actually enable. Listing only Paper/Purpur/Folia keeps the download button honest. ---

    ⬆️ Upgrading from 2.x

    1. Drop the new jar in plugins/ and restart. 2. Your config is migrated automatically: * invalid YAML is repaired (with a backup), * settings.database / countdown.database move to the new top-level database section in memory, * settings.bungeecord-support and settings.cross-server-channel map to the new network section. 3. The old minecraft.db SQLite file is renamed to broadcast.db — data is preserved. 4. Permission change: ultimatebroadcast.use now defaults to op (2.x defaulted to true, letting any player broadcast). Grant it explicitly to staff or VIP ranks if needed. 5. /broadcast enable|disable is now a runtime switch and no longer rewrites config.yml. No config keys were removed. Old gui.items, scheduler.broadcasts, template, countdown and default-* sections keep working. ---

    📦 Technical details

    * Build: Java 21 target, Paper API 1.21, shaded SQLite + MySQL drivers, no external plugin dependencies. * Storage tables: broadcast_history, broadcast_stats, broadcast_preferences. * All three tables are created automatically on both SQLite an
    4 downloads
  2. 2.3.0Broadcast 2.3.0 - Clickable Links & Alert System3 weeks ago

    📢 Ultimate Broadcast v2.3.0 — Clickable URLs, Hover Tooltips & Alert System!

    This major feature update transforms Ultimate Broadcast into a fully interactive communication suite for modern Minecraft networks.
    🌟 New Features & Enhancements
    - 🔗 Interactive Clickable Links & Hover Events: - Embed clickable URLs using [url=https://...]Text[/url]. - Embed clickable command executors using [run=/cmd]Text[/run] or suggestions using [suggest=/cmd]Text[/suggest]. - Add interactive tooltips on mouse hover using [hover=Tooltip Text]Text[/hover]. - Full native Adventure MiniMessage tag parsing. - 🔕 Player Broadcast Mute (`/ub mute`): - Players can now toggle automatic chat broadcast notifications on/off for themselves. - Persistent preference storage in mutes.yml. - 🚨 Emergency Server Alert (`/ub alert <message>`): - Staff emergency broadcast with audible alert chime and prominent warning border, bypassing player mutes. - 🗺️ Multi-World Filtering: - Targeted broadcasts now respect /ub send world <world> <message>. - 🛡️ Full Compatibility: - Tested and verified on Paper, Spigot, Purpur, and Folia 1.20 - 1.21.4 (verified on Paper 26.3).
    22 downloads
  3. 2.2.0Ultimate Broadcast v2.2.0 - Sound & History3 weeks ago
    📢 Ultimate Broadcast v2.2.0 — Sound Alerts, Command Fixes & Broadcast History
    #### 🌟 What's New & Fixed in v2.2.0: - Audio Chime & Sound Broadcasts: - Configurable broadcast sound alert chime with toggle and custom sound key (sound.enabled, sound.type: BLOCK_NOTE_BLOCK_BELL). - Added /ub send sound <sound> [volume] [pitch] to broadcast immersive audio events server-wide. - Broadcast History Tracking: - Added new in-memory broadcast history tracking (BroadcastHistoryManager). - Added /ub history to inspect recent broadcasts with timestamps, sender, and broadcast type. - Fixed Missing Subcommands: - Fully implemented missing /ub send chat <msg> and /ub send actionbar <msg> subcommands in command dispatcher. - Modern HEX Color Parsing: - Enhanced &#RRGGBB and <#RRGGBB> regex color converter to guarantee seamless Adventure format rendering across modern Paper, Purpur, and Folia engines. - Minecraft 26.3 & Folia Verified: - Fully tested and verified on Paper 26.3 (Java 25 LTS).
    30 downloads
  4. 2.1.0Ultimate Broadcast v2.1.0 - Memory Leak Fix & Foli3 weeks ago
    📢 Ultimate Broadcast v2.1.0 Release Notes
    Performance & Modern Architecture Update - Memory Leak Fix: Implemented automatic BossBar and timer task cleanup upon player disconnect (PlayerQuitEvent), preventing memory bloat and stale bossbar references on long-running servers. - Enhanced Scheduling Stability: Refactored internal schedule & timer toggles with defensive null safety and explicit lifecycle cleanup on server shutdown/reload. - Minecraft 1.20 - 1.21.4 Compatibility: Fully verified across Bukkit, Spigot, Paper, Purpur, and Folia server environments. - Internal Optimization: Modernized GUI item meta builders and component parsing.
    4 downloads
  5. 2.0.2Broadcast - Ultimate 2.0.2Dec 30, 2025
    - letter A comming in starting is FIXED
    602 downloads
  6. 2.0.1Broadcast - Ultimate 2.0.1Dec 29, 2025
    A small bug Fixed
    31 downloads
  7. 2.0.0Broadcast - Ultimate 2.0.0Dec 29, 2025

    ⚙️ Changes

    - Now you can start countdown timer with a message on players actionbar and bossbar - You can now remove any running countdown timer - Now you can send a broadcast to a world or a player separately - Now the plugin has it's gui with that you can enable or disable sheduled broadcasts or countdown timer and more things - Now you can Schedule broadcasts and countdown timer - Now you can preset Broadcasts and send them instantly - Now you can send Broadcasts on title and subtitle or You can use Preset to send both of them - Now there is a Welcome Broadcast when a player joins the server that welcome broadcast shows. You can enable or disable that in config - Many things are editable in the config
    21 downloads
  8. 1.0.1Broadcast-Ultimate-(1.0.1)Sep 29, 2025
    - Now Supports colours in broadcast messages - Now you can start a count down timer
    112 downloads
  9. 1.0.0Broadcast-Ultimate-(1.0.0)Sep 28, 2025
    35 downloads

Similar projects

Plugin →