SmartBroadcast v1.0.0
First stable release of SmartBroadcast — an intelligent Minecraft LAN discovery protocol broadcaster for Paper / Folia 1.20.1. It decides when to broadcast LAN server information and what MOTD to broadcast, based on configurable expression rules.
Highlights
- Folia-native scheduling — uses GlobalRegionScheduler and AsyncScheduler;
folia-supported: trueis set inplugin.yml - LAN discovery protocol — sends UTF-8 UDP multicast packets to
224.0.2.60:4445 - Ordered, multi-rule engine — rules are checked top-to-bottom, first match wins
- Optional suppression — a matched rule can set
broadcast: falseto skip the packet - Rich expression conditions — player count, whitelist, port, MOTD, and PlaceholderAPI placeholders
- MiniMessage MOTD — custom MOTDs accept MiniMessage and are converted to legacy
§text before broadcasting - Current server MOTD —
{server_motd}re-broadcasts the live Paper MOTD - Hot reload —
/smartbroadcast reload(aliases:/sbc,/lanbroadcast)
Installation
- Download
SmartBroadcast-1.0.0.jarfrom the assets below. - Drop it into your server's
plugins/directory. - Start the server (Paper or Folia, 1.20.1).
- Install PlaceholderAPI as well if you want PAPI placeholder support.
- (Optional) Tune the generated
plugins/SmartBroadcast/config.yml.
Default behavior
rules:
- name: "players-online"
expression: "online > 0"
broadcast: true
motd: "{server_motd}"If no rule matches, no LAN packet is sent.
Example: hide on whitelist, normal + TPS fallback
rules:
- name: "hide-when-whitelist"
expression: "whitelist == true"
broadcast: false
- name: "good-tps"
expression: "online > 0 && %server_tps_1% >= 18"
broadcast: true
motd: "{server_motd}"
- name: "fallback"
expression: "online > 0"
broadcast: true
motd: "<yellow>Server is online</yellow>"Built-in variables
| Variable | Type | Description |
|---|---|---|
online |
number | Current online player count |
max_players |
number | Maximum player count |
port |
number | Port advertised to clients |
whitelist |
boolean | Whether the whitelist is enabled |
motd |
string | Plain-text form of the current server MOTD |
Build from source
Requirements: Java 17+, Gradle (the project includes the Gradle Wrapper).
./gradlew shadowJarOutput JAR: build/libs/SmartBroadcast-1.0.0.jar
License
GNU General Public License v3.0 — see LICENSE.
SmartBroadcast v1.0.0 (中文)
SmartBroadcast 首个稳定版本 —— 一个面向 Paper / Folia 1.20.1 的智能 Minecraft 局域网发现协议广播插件。它根据可配置的表达式规则,决定何时向局域网客户端广播服务端信息,以及广播什么 MOTD。
主要特性
- Folia 原生调度 —— 使用 GlobalRegionScheduler 与 AsyncScheduler,
plugin.yml已声明folia-supported: true - LAN 发现协议 —— 向
224.0.2.60:4445发送 UTF-8 UDP 多播包 - 多规则有序匹配 —— 自上而下检查,首条命中即生效
- 可抑制广播 —— 匹配规则可设置
broadcast: false阻止本次广播 - 丰富的表达式条件 —— 在线人数、白名单、端口、MOTD,以及 PlaceholderAPI 占位符
- MiniMessage MOTD —— 自定义 MOTD 可写 MiniMessage,广播前自动转为 legacy
§文本 - 当前服务端 MOTD ——
{server_motd}直接复用 Paper 当前 MOTD - 热重载 ——
/smartbroadcast reload(别名:/sbc、/lanbroadcast)
安装
- 在下方资源中下载
SmartBroadcast-1.0.0.jar。 - 放入服务端
plugins/目录。 - 启动服务端(Paper 或 Folia,1.20.1)。
- 如需 PAPI 占位符,请同时安装 PlaceholderAPI。
- (可选)按需调整自动生成的
plugins/SmartBroadcast/config.yml。
默认行为
rules:
- name: "players-online"
expression: "online > 0"
broadcast: true
motd: "{server_motd}"若无规则命中,则不发送 LAN 广播包。
示例:白名单隐藏 + 正常 + TPS 兜底
rules:
- name: "hide-when-whitelist"
expression: "whitelist == true"
broadcast: false
- name: "good-tps"
expression: "online > 0 && %server_tps_1% >= 18"
broadcast: true
motd: "{server_motd}"
- name: "fallback"
expression: "online > 0"
broadcast: true
motd: "<yellow>Server is online</yellow>"内置变量
| 变量 | 类型 | 说明 |
|---|---|---|
online |
数字 | 当前在线玩家数 |
max_players |
数字 | 最大玩家数 |
port |
数字 | 广播给客户端的端口 |
whitelist |
布尔 | 白名单是否开启 |
motd |
字符串 | 当前服务端 MOTD 的纯文本形式 |
从源码构建
要求: Java 17+、Gradle(项目已包含 Gradle Wrapper)。
./gradlew shadowJar输出 JAR: build/libs/SmartBroadcast-1.0.0.jar
许可证
GNU 通用公共许可证 v3.0,详见 LICENSE。