Skip to content

SmartBroadcast v1.0.0

Latest

Choose a tag to compare

@Kush-ShuL Kush-ShuL released this 05 Jun 11:46

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: true is set in plugin.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: false to 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

  1. Download SmartBroadcast-1.0.0.jar from the assets below.
  2. Drop it into your server's plugins/ directory.
  3. Start the server (Paper or Folia, 1.20.1).
  4. Install PlaceholderAPI as well if you want PAPI placeholder support.
  5. (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 shadowJar

Output 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

安装

  1. 在下方资源中下载 SmartBroadcast-1.0.0.jar
  2. 放入服务端 plugins/ 目录。
  3. 启动服务端(Paper 或 Folia,1.20.1)。
  4. 如需 PAPI 占位符,请同时安装 PlaceholderAPI。
  5. (可选)按需调整自动生成的 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。