Ultimate BroadcastСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (9)
release
Ultimate Broadcast 2.4.0 - Subscriptions, Discord & True Folia
2.4.024 окт. 2026 г.42Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3folia, paper, purpur
Что нового
# 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 and MySQL.
---
*If 2.1–2.3 broke your server: sorry. 2.4.0 is the version that should have shipped. Please open an issue with your log if anything still misbehaves.*
release
Broadcast 2.3.0 - Clickable Links & Alert System
2.3.01 окт. 2026 г.24Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4bukkit, folia, paper, purpur, spigot
Что нового
# 📢 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).
release
Ultimate Broadcast v2.2.0 - Sound & History
2.2.01 окт. 2026 г.31Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 26.3bukkit, folia, paper, purpur, spigot
Что нового
### 📢 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).
release
Ultimate Broadcast v2.1.0 - Memory Leak Fix & Foli
2.1.030 сент. 2026 г.6Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4bukkit, folia, paper, purpur, spigot
Что нового
### 📢 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.
release
Broadcast - Ultimate 2.0.2
2.0.230 дек. 2025 г.602Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
**- letter A comming in starting is FIXED**
release
Broadcast - Ultimate 2.0.1
2.0.129 дек. 2025 г.31Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
A small bug Fixed
release
Broadcast - Ultimate 2.0.0
2.0.029 дек. 2025 г.23Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
## ⚙️ 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
release
Broadcast-Ultimate-(1.0.1)
1.0.129 сент. 2025 г.114Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8paper, spigot
Что нового
- Now Supports colours in broadcast messages
- Now you can start a count down timer
release
Broadcast-Ultimate-(1.0.0)
1.0.028 сент. 2025 г.35Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8paper, spigot