Broadcaster Plugin
Broadcaster is a powerful Spigot plugin designed to enhance your Minecraft server's communication capabilities. It provides advanced broadcasting features with customizable messages, player pinging, and permission-based access control.
Minecraft Version: 1.21.4
License: LIFE DESTROYED LICENSE
Key Features
- Multiple broadcast commands with different formatting
- Player mention system with @username pings
- Customizable messages and formats
- Configurable command cooldowns
- Forbidden words filter
- Permission-based access control
- Ping protection for players
Installation
Requirements
- Spigot/Paper server 1.21.4
- Java 21 or higher
Installation Steps
1. Download the latest version of Broadcaster from our GitHub releases 2. Place the .jar file in your server's plugins folder 3. Restart your server 4. Configure the plugin by editing plugins/Broadcaster/config.yml 5. Set up permissions using your preferred permissions plugin
Permission System
Broadcaster uses a comprehensive permission system to control access to commands and features. We recommend using LuckPerms for permission management.
Basic Permissions
| Permission | Description | Default |
|---|---|---|
destroyedbroadcasts.broadcast |
Allows use of /broadcast, /bc, /cast commands | op |
destroyedbroadcasts.alert |
Allows use of /alert and /a commands | op |
destroyedbroadcasts.pingshield |
Protects player from ping notifications | false |
Cooldown Permissions
You can set custom cooldowns for players using permissions in the format:
destroyedbroadcasts.time.<minutes>
Examples:
# 1 minute cooldown destroyedbroadcasts.time.1 # 30 second cooldown destroyedbroadcasts.time.0.5 # 10 minute cooldown destroyedbroadcasts.time.10
Configuration Basics
The main configuration file is located at plugins/Broadcaster/config.yml. After making changes, you can reload the config with /broadcaster reload or by restarting your server.
Basic Structure
# Message prefix used in broadcasts prefix: "&8[&6Broadcast&8]" # Message formats formats: broadcast: "%prefix% &r%message% &7(sent by: %sender%)" alert: "&8[&c&lALERT&8] &r%message% &7(sent by: %sender%)" # Messages sent to players messages: ping: "%prefix% &6Player &e%player% &6mentioned you in /%command%." no-permission: "&cYou don't have permission to use this command!" usage: "&cUsage: %usage%" forbidden-word: "&cYour message contains forbidden words!" cooldown: "%prefix% &cYou can use this command again in %time% seconds!" # Cooldown settings (in seconds) cooldown: default: 300 # 5 minutes # Ping detection settings ping-detection: chat: true # Detect pings in regular chat sound: ENTITY_PLAYER_LEVELUP # Sound for ping notifications # Permissions permissions: broadcast: "destroyedbroadcasts.broadcast" alert: "destroyedbroadcasts.alert" pingshield: "destroyedbroadcasts.pingshield" # Forbidden words forbidden-words: - "badword1" - "badword2" - "insult"
Messages Configuration
Customize all plugin messages in the messages section of the config.
Available Messages
| Key | Description | Placeholders |
|---|---|---|
ping |
Message sent when a player is pinged | %prefix%, %player%, %command% |
no-permission |
Message when player lacks permission | %prefix% |
usage |
Command usage message | %prefix%, %usage% |
forbidden-word |
Message when forbidden word is detected | %prefix% |
cooldown |
Message when command is on cooldown | %prefix%, %time% |
& symbol for Minecraft color codes (e.g., &a for green, &c for red).
Message Formats
Customize how your broadcasts and alerts appear to players.
Format Options
| Key | Description | Placeholders |
|---|---|---|
broadcast |
Format for /broadcast messages | %prefix%, %message%, %sender% |
alert |
Format for /alert messages | %prefix%, %message%, %sender% |
Example Formats
# Simple broadcast format broadcast: "&8[&6Broadcast&8] &r%message%" # Alert format with sender info alert: "&8[&c&lALERT&8] &r%message% &7- &e%sender%" # Multi-line broadcast format broadcast: "&8&m------------------\n&6&lBROADCAST &r%message%\n&8&m------------------"
Cooldown Settings
Prevent command spam with configurable cooldowns.
Configuration Options
# Cooldown settings (in seconds) cooldown: default: 300 # 5 minutes
The default cooldown applies to all commands unless a player has a specific cooldown permission.
Ping Settings
Configure how player mentions (@username) work in your broadcasts.
Configuration Options
# Ping detection settings ping-detection: chat: true # Detect pings in regular chat sound: ENTITY_PLAYER_LEVELUP # Sound for ping notifications
Available Sounds
You can use any valid Minecraft sound name. Some popular options:
ENTITY_PLAYER_LEVELUP- Level up sound (default)ENTITY_EXPERIENCE_ORB_PICKUP- XP orb soundBLOCK_NOTE_BLOCK_PLING- Note block plingENTITY_ITEM_PICKUP- Item pickup sound
Forbidden Words
Block inappropriate language in your broadcasts.
Configuration
# Forbidden words (case insensitive) forbidden-words: - "badword1" - "badword2" - "insult" # Add more words as needed
Broadcast Commands
Send messages to all players on the server.
Available Commands
| Command | Description | Permission |
|---|---|---|
/broadcast <message> |
Send a broadcast message | destroyedbroadcasts.broadcast |
/bc <message> |
Short alias for /broadcast | destroyedbroadcasts.broadcast |
/cast <message> |
Alternative alias for /broadcast | destroyedbroadcasts.broadcast |
Usage Examples
# Simple broadcast /broadcast Server will restart in 5 minutes! # Broadcast with color codes /bc &6Welcome to our server &e@player1 &6and &e@player2! # Multi-line broadcast /broadcast &8&m------------------\n&6&lANNOUNCEMENT\n&rNew event starting soon!\n&8&m------------------
Alert Commands
Send urgent messages with special formatting and sound.
Available Commands
| Command | Description | Permission |
|---|---|---|
/alert <message> |
Send an alert message | destroyedbroadcasts.alert |
/a <message> |
Short alias for /alert | destroyedbroadcasts.alert |
Usage Examples
# Simple alert /alert Server restarting NOW! # Alert with player mentions /a &cURGENT: &e@player1 &6and &e@player2 &6please report to spawn! # Multi-line alert /alert &8&m------------------\n&c&lURGENT MESSAGE\n&rServer crash detected!\n&8&m------------------
Permission Nodes
Complete list of all permission nodes used by the plugin.
Command Permissions
| Permission | Description | Default |
|---|---|---|
destroyedbroadcasts.broadcast |
Access to /broadcast, /bc, /cast | op |
destroyedbroadcasts.alert |
Access to /alert, /a | op |
Feature Permissions
| Permission | Description | Default |
|---|---|---|
destroyedbroadcasts.pingshield |
Opt out of ping notifications | false |
destroyedbroadcasts.time.<minutes> |
Custom cooldown time (in minutes) | N/A |
destroyedbroadcasts.bypasscooldown |
Bypass all cooldowns | false |
Example Permission Setup
# Using LuckPerms commands # Give moderators broadcast access with 1 minute cooldown /lp group moderator permission set destroyedbroadcasts.broadcast /lp group moderator permission set destroyedbroadcasts.time.1 # Give admins full access with no cooldowns /lp group admin permission set destroyedbroadcasts.* /lp group admin permission set destroyedbroadcasts.bypasscooldown # Allow a player to opt out of pings /lp user SomePlayer permission set destroyedbroadcasts.pingshield
Troubleshooting
Common Issues
Solution: Check that the player has the correct permissions and that the plugin is properly installed.
Solution: Make sure you're using
& for color codes, not ยง in the config.
Solution: Check that the sound name in config.yml is valid and that players don't have the pingshield permission.
Solution: Check your server logs for errors. Make sure you're using the correct version for your Minecraft server.
API & Hooks
Broadcaster provides an API for developers to integrate with other plugins.
Basic Usage
// Get the Broadcaster plugin instance Broadcaster plugin = (Broadcaster) Bukkit.getPluginManager().getPlugin("Broadcaster"); // Send a broadcast message programmatically plugin.getBroadcastManager().sendBroadcast("Hello from another plugin!", sender); // Send an alert message plugin.getBroadcastManager().sendAlert("URGENT: Event starting now!", sender); // Check if a message contains forbidden words boolean hasForbidden = plugin.getWordFilter().containsForbiddenWords("some message"); // Register custom forbidden words plugin.getWordFilter().addForbiddenWord("custombadword");
Event Hooks
Broadcaster fires these custom events that you can listen to:
BroadcastMessageEvent- When a broadcast is sentAlertMessageEvent- When an alert is sentPlayerPingEvent- When a player is pingedForbiddenWordEvent- When a forbidden word is detected
License
Broadcaster is released under the LIFE DESTROYED LICENSE.
- You may use, modify, and distribute the plugin
- Commercial use is permitted
- No warranty provided
- Credit to original authors is appreciated
For the full license text, please visit:
https://github.com/lifedestroyed/license/blob/main/LICENSE