CyAnnouncer
An advanced, announcer plugin for Bukkit servers, Bungeecord, and Velocity proxies.
CyAnnouncer
<p align="center"> <a href=""><img src="https://i.postimg.cc/t4SqcBq8/Cream-and-Green-Illustrative-Coming-Soon-Email-Header-600-x-100-px-600-x-150-px-5.png" width="1719" alt="whoimai" /></a> </p>
<p align="center"> A simple yet powerful, multi-platform announcement plugin designed for Bukkit, BungeeCord, and Velocity.<br>Keep your players informed with automated, scheduled messages tailored to specific servers or worlds.<br /> </p>
Supported Platforms
- Bukkit/Spigot (and any forks like Paper, Purpur) - Bungeecord (and any forks like Waterfall) - Velocity
Features
- Multi-Platform: A single codebase provides native JARs for Bukkit, BungeeCord, and Velocity. - Customizable Messages: Configure unlimited announcements, each with its own multi-line text. - Configurable Interval: Set the global time (in seconds) between each announcement. - Custom Prefix: Add a global prefix to all messages (supports color codes). - Context-Aware Targeting: - On Bukkit, show messages in specific worlds or globally (all). - On BungeeCord/Velocity, show messages on specific servers or globally (all). - Reload Command: Reload the configuration in-game without a server/proxies restart.
Installation
Download the correct JAR file for your server type from the <a href="https://github.com/CYDEV-ID/CyAnnouncer/releases/tag/build">Release Page</a>. Do not install all three JARs.
For Bukkit/Spigot
1. Download `CyAnnouncerBukkit-1.0.0.jar` (Use the Latest Version). 2. Place the JAR file in your Bukkit/Spigot server's `plugins/` folder. 3. Restart your server. 4. Change the configuration as desired in `plugins/CyAnnouncerBukkit/config.yml`.
For BungeeCord
1. Download `CyAnnouncerBungee-1.0.0.jar` (Use the Latest Version). 2. Place the JAR file in your Bungee proxy's `plugins/` folder. 3. Restart your proxy. 4. Change the configuration as desired in `plugins/CyAnnouncerBungee/config.yml`.
For Velocity
1. Download `CyAnnouncerVelocity-1.0.0.jar` (Use the Latest Version). 2. Place the JAR file in your Velocity proxy's `plugins/` folder. 3. Restart your proxy. 4. Change the configuration as desired in `plugins/CyAnnouncerVelocity/config.yml`.
Commands and Permissions
Commands are different and permissions remain the same
Bukkit/Spigot
| Commands | Descriptions | Permissions | | ------------------------------------ | ----------------------------------------------------- | ------------------------------- | | `/announcer` | Display a list of commands | `-` | | `/announcer reload` or `/an reload` | Reload config.yml | `announcer.reload` | | `/announcer broadcast` | Send messages to all worlds or to specific worlds. | `announcer.broadcast` |
BungeeCord
| Commands | Descriptions | Permissions | | ------------------------- | ----------------------------------------------------- | ------------------------------- | | `/bcreload` | Reload config.yml | `announcer.reload` | | `/bcbroadcast all/server` | Send messages to all servers or to specific servers. | `announcer.broadcast` |
Velocity
| Commands | Descriptions | Permissions | | ------------------------ | ----------------------------------------------------- | ------------------------------- | | `/announcer reload` | Reload config.yml | `announcer.reload` | | `/vbroadcast all/server` | Send messages to all servers or to specific servers. | `announcer.broadcast` |
Configuration
The configuration of each platform is different
Bukkit/Spigot
`/plugins/CyAnnouncerBukkit/config.yml`
Default Configuration
```yaml
===================================================================
CyAnnouncer Configuration
===================================================================
#
Plugin Author: cydev-id
Plugin Version: 1.0.2
#
HOW IT WORKS:
This plugin will display announcements with an independent cycle for each world.
#
1. A world with specific messages (e.g., 'world_the_end') will have a cycle of:
(Global Message -> Specific End Msg 1 -> Global Message -> ...)
#
2. A world without specific messages will ONLY cycle through global messages.
#
===================================================================
DO NOT CHANGE THIS.
config-version: 2
Interval in SECONDS between each announcement for a world.
interval: 60
Prefix appearing before each announcement line.
Set to "" to disable.
prefix: "&e[&l!&r&e] &r"
(NEW) --- SETTINGS SECTION (Feature #3) ---
settings:
Set to true to pick a random message from all available messages (global + specific) each cycle.
Set to false to use the default sequential cycle (default).
random: false
--- ANNOUNCEMENTS SECTION ---
announcements:
--- GLOBAL ANNOUNCEMENTS ---
These messages will be part of the cycle in ALL worlds.
Use "all" in the 'worlds' list.
Example 1: Standard CHAT message (default type)
- worlds: - "all" lines: - "&eDon't forget to vote for the server every day!" - "&fUse the command &b/vote&f to get rewards."
Example 2: Global ACTIONBAR message with a SOUND (Features #2 & #5)
- worlds: - "all" type: "ACTIONBAR" # (NEW) Type: CHAT, ACTIONBAR, or TITLE sound: "ENTITY_PLAYER_LEVELUP" # (NEW) Sound from Bukkit's Sound Enum lines: - "&aWelcome! Check out our store at &b/buy"
Note: ACTIONBAR only uses the first line.
--- WORLD-SPECIFIC ANNOUNCEMENTS ---
These messages will ONLY appear in the specified worlds.
Example 3: TITLE message for a specific world (Feature #2)
- worlds: - "world_the_end" type: "TITLE" lines: - "&5Welcome to The End!" # Line 1 is the main TITLE - "&7Be careful of the Dragon!" # Line 2 is the SUBTITLE
- worlds: - "world_nether" lines: - "&cIt's hot in here! Make sure to bring fire resistance potions." - "&fDon't hit a Piglin without preparation!" ```
BungeeCord
`/plugins/CyAnnouncerBungee/config.yml`
Default Configuration
```yaml
===================================================================
CyAnnouncerBungee Configuration
===================================================================
#
Plugin Author: cydev-id
Plugin Version: 1.0.2
#
HOW IT WORKS:
This plugin will display announcements with an independent cycle for each server.
#
===================================================================
DO NOT CHANGE THIS.
config-version: 2
Default interval in SECONDS between each announcement for a server.
interval: 60
The prefix that appears before every line of an announcement.
Set to "" (empty quotes) to disable the prefix entirely.
prefix: "&e[&l!&r&e] &r"
(NEW) --- SETTINGS SECTION (Feature #3) ---
settings:
Set to true to pick a random message from all available messages (global + specific) each cycle.
Set to false to use the default sequential cycle (default).
random: false
--- ANNOUNCEMENTS SECTION ---
announcements:
--- GLOBAL ANNOUNCEMENTS ---
To make a message global, add "all" to its 'servers' list.
Example 1: Standard CHAT message (default type)
- servers: - "all" lines: - "&eDon't forget to vote for the server every day!" - "&fUse the command &b/vote&f to get rewards."
Example 2: Global ACTIONBAR message (Feature #2)
- servers: - "all" type: "ACTIONBAR" # (NEW) Type: CHAT, ACTIONBAR, or TITLE
sound: "..." # (Note: Sound is NOT supported on BungeeCord)
lines: - "&aWelcome! You are on server &e%server_name%&a!"
Note: ACTIONBAR only uses the first line.
--- SERVER-SPECIFIC ANNOUNCEMENTS ---
These messages will ONLY be shown to players on the specified servers.
Example 3: TITLE message for a specific server (Feature #2)
- servers: - "lobby" type: "TITLE" lines: - "&bWelcome to the Lobby!" # Line 1 is the main TITLE - "&7Check out the new gadgets!" # Line 2 is the SUBTITLE
Example 4: Original Survival message
- servers: - "survival" lines: - "&cWatch out! This is a PvP-enabled server." ```
Velocity
`/plugins/CyAnnouncerVelocity/config.yml`
Default Configuration
```yaml
===================================================================
CyAnnouncerVelocity Configuration
===================================================================
#
Plugin Author: cydev-id
Plugin Version: 1.0.2
#
HOW TO USE THIS FILE:
#
- Use the '&' symbol for color codes (e.g., &a for green, &l for bold).
- YAML is sensitive to spacing. Do not use tabs; use spaces.
Indentation is crucial for the structure.
#
===================================================================
Default interval in SECONDS between each announcement for a server.
For example, if a player is on the Survival server, they will see a
new message from their announcement cycle every 60 seconds.
interval: 60
The prefix that appears before every line of an announcement.
Set to "" (empty quotes) to disable the prefix entirely.
prefix: "&e[&l!&r&e] &r"
(NEW) --- SETTINGS SECTION (Feature #3) ---
settings:
Set to true to pick a random message from all available messages (global + specific) each cycle.
Set to false to use the default sequential cycle (default).
random: false
===================================================================
ANNOUNCEMENTS SECTION
===================================================================
#
HOW IT WORKS:
This plugin uses an intelligent, independent cycle system for each server.
#
1. A server with its own specific messages (e.g., 'survival') will create a
unique cycle: (Global Message -> Specific Survival Msg 1 -> Specific Survival Msg 2 -> Global Message -> ...)
#
2. A server WITHOUT specific messages (e.g., 'lobby') will only cycle
through the global messages: (Global Message 1 -> Global Message 2 -> Global Message 1 -> ...)
#
Each server's cycle runs independently and does not affect the others.
# announcements:
--- GLOBAL ANNOUNCEMENTS ---
These messages will be part of the cycle for EVERY server.
To make a message global, add "all" to its 'servers' list.
Example 1: Standard CHAT message (default)
- servers: - "all" lines: - "&eDon't forget to vote for our server every day!" - "&fUse the command &b/vote&f to get rewards."
Example 2: Global ACTIONBAR message with a SOUND (Features #2 & #5)
- servers: - "all" type: "ACTIONBAR" # (NEW) Type: CHAT, ACTIONBAR, or TITLE sound: "entity.player.levelup" # (NEW) Sound (use Minecraft key, e.g., 'block.note_block.pling') lines: - "&dCheck out our webstore for exclusive ranks and items!"
Note: ACTIONBAR only uses the first line.
--- SERVER-SPECIFIC ANNOUNCEMENTS ---
These messages will ONLY be shown to players on the specified servers.
They will be inserted into the cycle after a global message.
Example 3: TITLE message for Skyblock/Oneblock (Feature #2)
- servers: - "oneblock" - "skyblock" # You can target multiple servers with the same message block. type: "TITLE" lines: - "&aWelcome to the Sky!" # Line 1 is the main TITLE - "&fType &b/is&f to start your adventure." # Line 2 is the SUBTITLE
- servers: - "oneblock" - "skyblock" lines: - "&bLooking for a team? Use &a/team&b to cooperate with others!"
Example 4: Standard CHAT message for Survival
- servers: - "survival" lines: - "&cWatch out! PvP is enabled in the wilderness." - "&fClaim your land using a Golden Shovel to stay safe." ```
License
This project is licensed under the MIT