An announcement is a scene
Chat, action bar, title, boss bar, toast, window, tab and sidebar, sounds, particles and effects: eleven channels, each with its own delay.
Free
Announcements as scenes: chat, titles, boss bars and a TV-style news ticker, in every player's language.
Free In development Gameplay and content
Chat, action bar, title, boss bar, toast, window, tab and sidebar, sounds, particles and effects: eleven channels, each with its own delay.
Every text follows the client's language; the shipped announcements are in English and Italian, and /announce lang helps translators.
Sequential, random, weighted or shuffled rotations, time windows, cron and timezones, dated announcements with catch-up, countdowns with steps.
No overlapping titles, only a few chat announcements a minute, and nothing intrusive for players in combat or in a match.
Game winners, seasons, big auctions, bosses, anticheat alerts: triggers.yml turns them into announcements without writing code.
A news ticker at the top of the screen, with an optional TV skin; with --network an announcement reaches every server on the same MySQL.
| Command | Description | Aliases | Permission |
|---|---|---|---|
| /announce | Announcements: panel, sending, scheduling, ticker, journal (alias /ann, /sann) | /ann /sann | — |
| /news | Your announcement panel: categories, ticker, inbox, news, language | — | — |
| Command | What it does | Permission |
|---|---|---|
| /announce | The panel (as a player) or the help (from the console) | shadowannouncement.gui |
| /announce gui | Opens the panel (alias menu) | shadowannouncement.gui |
| /announce help [page] | The help, in three pages | — |
| /announce send <id> [all|world:<world>|player:<name>|perm:<node>|region:<region>] [--ignore-conditions] [--network] | Sends an announcement from the files now. Sent to everyone with intrusive channels (title, window, effects, toast), it asks for confirmation with the [ CONFIRM ] / [ CANCEL ] buttons. region: needs ShadowRegions. With --network it also goes to the other servers of the network (needs network.enabled and a shared MySQL): player:Mario reaches Mario on any server | shadowannouncement.send |
| /announce say <channels> <target> <text...> [--network] | An announcement on the fly: say title,sound all <gold>Event!. Channels: chat, actionbar, title, bossbar, toast, sound, also together, separated by commas. For the title, Big|small splits title and subtitle. --network at the end: the other servers of the network too | shadowannouncement.say |
| /announce preview <id> [language] [as <player>] | The real announcement, every channel, only to you, with [PREVIEW] in front of the chat line. With a language you see it translated; with as you use another player's placeholders | shadowannouncement.preview |
| /announce list [filter] | The announcements, with channels, category, priority and state; click one for the details | shadowannouncement.gui |
| /announce info <id> | The details: file, channels, languages, audience, conditions, who uses it (rotations, triggers, countdowns) | shadowannouncement.gui |
| /announce enable <id|rotation:<id>|ticker:<id>|trigger:<id>> | Switches on an announcement, a rotation, a ticker or a trigger (writes the file and reloads) | shadowannouncement.edit |
| /announce disable <id|rotation:<id>|ticker:<id>|trigger:<id>> | The same, switched off | shadowannouncement.edit |
| /announce rotation list|next <id> [announcement]|skip <id> | The rotations: the list with the next send, sending the next one now, skipping it. next tips tip-1 sends that announcement of the rotation now, with its rules, without changing the cycle | shadowannouncement.schedule |
| /announce schedule list|add <id> <yyyy-mm-dd hh:mm | +10m>|cancel <id> | Announcements at a date and time, in the plugin's timezone. One added from here leaves schedules.yml once it has gone out | shadowannouncement.schedule |
| /announce countdown start <id> <duration|date> [template]|stop <id>|list | Countdowns. The shipped template is restart (notices at 5m, 1m, 30s and every second in the last ten); the real restart stays with whoever does it. The countdown is written to schedules.yml: it survives a restart with the right time, and if it expired while the server was off it is removed | shadowannouncement.countdown |
| /announce ticker list|push <id> <duration> <text...>|clear <id>|pause <id>|resume <id>|demo | The news tickers: a timed "breaking news", pause, and a demo that shows it only to you (even when off) until you repeat it, for five minutes at most | shadowannouncement.ticker |
| /announce notify <player> <announcement|text...> [--persist] | A private notification. With --persist, if the player is not online, it goes to their inbox | shadowannouncement.notify |
| /announce inbox <player> | A player's system inbox | shadowannouncement.inbox.others |
| /announce trigger list|test <id> | The triggers from suite events: the state of each one, and a test with the sample fields (only to you) | shadowannouncement.edit |
| /announce lang missing|export <language>|import <language> | The translations of the announcements: what is missing, a flat file for the translator, and bringing it back in | shadowannouncement.edit |
| /announce pack build|status | The optional resource pack (the ticker's TV skin, images): building it and seeing where it ended up | shadowannouncement.pack |
| /announce debug journal <player>|slots|timings | Why did they not get it? A player's journal of the last 50 deliveries (with the reason for every block), the tab and sidebar segments, timings and integrations | shadowannouncement.debug |
| /announce reload | Reloads files, languages and announcements; the old tasks stop first | shadowannouncement.reload |
| /announce about | Version, numbers, and the credit line | — |
| Command | What it does | Permission |
|---|---|---|
| /news | Your own panel: categories to mute, ticker, inbox, news | shadowannouncement.news |
| /news toggle <category> [on|off] | Mutes or unmutes a category (tips, events, suite, general; not system). Without on/off it toggles | shadowannouncement.toggle |
| /news ticker [on|off] | Switches the news ticker off or on for yourself | shadowannouncement.toggle.ticker |
| /news inbox | The system inbox: the notifications that arrived while you were away | shadowannouncement.news |
| /news read <n> | Reads notification number n (and marks it read) | shadowannouncement.news |
| /news clear | Empties the inbox, after confirming with the buttons | shadowannouncement.news |
| /news board | The server's news board (news.yml), in a window | shadowannouncement.news |
| /news lang [code|auto] | Your announcement language, even different from the client's; auto goes back to following the client | shadowannouncement.news |
| /news help | The player help | shadowannouncement.news |
| Node | What it grants | By default |
|---|---|---|
| shadowannouncement.admin · 14 children | Every staff permission | Operators |
| shadowannouncement.gui | The panel, the list and the details of the announcements | Operators |
| shadowannouncement.send | Send an announcement from the files now | Operators |
| shadowannouncement.say | Send an announcement on the fly | Operators |
| shadowannouncement.preview | Preview on yourself | Operators |
| shadowannouncement.edit | Edit announcements, switch them on and off, triggers and translations | Operators |
| shadowannouncement.schedule | Rotations and dated announcements | Operators |
| shadowannouncement.countdown | Start and stop countdowns | Operators |
| shadowannouncement.ticker | Manage the news tickers | Operators |
| shadowannouncement.notify | Send a private notification | Operators |
| shadowannouncement.inbox.others | Read another player's inbox | Operators |
| shadowannouncement.pack | Build the resource pack | Operators |
| shadowannouncement.debug | The delivery journal, the segments, the timings | Operators |
| shadowannouncement.reload | Reload files and languages | Operators |
| shadowannouncement.receive.staff | Receive the staff notices | Operators |
| shadowannouncement.news | Use /news | Everyone |
| shadowannouncement.toggle | Mute announcement categories for yourself | Everyone |
| shadowannouncement.toggle.ticker | Switch the ticker off for yourself | Everyone |
There are no screenshots yet. When there are they show up here, and in the meantime saying so beats filling the space.
Eleven channels in one announcement, each with its own delay. Rotations, time windows, cron and dated announcements with catch-up; a per-player arbiter so nothing overlaps; suite events turned into announcements from a file.
ShadowAnnouncement covers what you do today with AnnouncerPlus, AutoMessage, TitleManager — in one jar, with no dependencies to install first.
plugins folder of your Paper server.None of these has to be installed, except the ones marked required: when it is there, ShadowAnnouncement uses it; when it is missing, it works all the same.