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.

Current Version: 1.0
Minecraft Version: 1.21.4
License: LIFE DESTROYED LICENSE

Key Features

Installation

Requirements

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
Important: After installing, make sure to review the default configuration file and adjust settings according to your server's needs.

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
Note: If no cooldown permission is set, the default cooldown from config.yml will be used (5 minutes by default).

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%
Color Codes: Use & 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.

Note: Cooldowns are tracked separately for /broadcast and /alert commands.

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:

Forbidden Words

Block inappropriate language in your broadcasts.

Configuration

# Forbidden words (case insensitive)
forbidden-words:
  - "badword1"
  - "badword2"
  - "insult"
  # Add more words as needed
Detection: The plugin checks if any forbidden word appears anywhere in the message (case insensitive).

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------------------
Difference from Broadcast: Alert messages play a sound to all players and use a different format (configurable in config.yml).

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

Problem: Commands not working
Solution: Check that the player has the correct permissions and that the plugin is properly installed.
Problem: Color codes not working
Solution: Make sure you're using & for color codes, not ยง in the config.
Problem: Ping sounds not playing
Solution: Check that the sound name in config.yml is valid and that players don't have the pingshield permission.
Problem: Plugin not loading
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:

License

Broadcaster is released under the LIFE DESTROYED LICENSE.

Key Points:
  • 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