StrippedBroadcast

一个简单的插件,它会在聊天中向指定的玩家显示格式化的消息。

资源图片
**StrippedBroadcast** 是对 [Plugin RawMsg](https://www.spigotmc.org/resources/rawmsg.35864/) 的重现。
该插件的主要目的是发送类似于命令广播的消息,但发送时**不会**包含**前缀**,并且发送者可以指定一个发送消息的**玩家****组**。 它还提供了一个**API**,供任何开发者使用。 ## 命令 StrippedBroadcast 的主要命令,也是唯一的命令是 **/sbc** (**/simplebroadcast** 的缩写)。其语法如下:
```/sbc ``` ​
正如插件在尝试执行命令时解释的那样,第一个参数应该表示广播的目标。 这些可以是: - **all**,针对服务器上所有在线玩家; - **** 或 **player=**,仅该用户将看到消息; - **me**,命令发布者的别名; - **world=**,针对该世界中所有玩家; - **perm=**,针对拥有该权限的所有玩家; - **op** 或 **perm=op**,针对服务器上的所有 Op 玩家; - **group=**; StrippedBroadcast 兼容 **LuckPerms**,因此 “group” 参数将允许用户指定一个玩家群组; - **item=**; 针对服务器上拥有该物品的所有玩家; - **effect=**; 针对拥有指定效果的所有玩家; - **gamemode=**; 针对该游戏模式中的所有玩家; - **money=**; 针对拥有该金额的玩家。 ## 表达式 StrippedBroadcast 还可以理解**表达式**作为目标。 用户将能够指定某些**条件**,这些条件将返回一个兼容玩家的列表。
每个表达式都应该用括号表示,但括号内部可以包含更多括号。
例子:
```/sbc (world=world_the_nether && (perm=bukkit.* || perm=minecraft.*)) Looks like you are the king of hell!``` ​
你也会注意到表达式接受 AND (&&) 和 OR (||) 关键字。 它们的运行非常简单: - 在上面的例子中,OR 关键字用于获取拥有权限 "bukkit.\*" **或** 权限 "minecraft.\*" 的所有玩家; - AND 关键字然后用于获取位于地狱**并且**拥有其中两个权限的所有玩家。 此外,该插件使用 Tab 完成,因此它将非常有助于提醒用户关闭括号或插入某些关键字。 ## 权限 StrippedBroadcast 的唯一权限是 "**sbc.main**",它将允许用户执行 /sbc 命令。 ## 颜色 自从 Minecraft 1.16 引入以来,**十六进制颜色**被添加到游戏中。 现在,StrippedBroadcast 不仅可以使用默认的 Minecraft 颜色 ("&"),还可以使用字符 # 自定义颜色。 如果您使用的是 1.16 或更高版本,则在键入 "#" 时,该插件将建议所有有效的字母和数字作为颜色代码。 此外,现在可以使用新的彩虹效果。 要使用它,只需在消息前输入 [RAINBOW]。 例子:
```/sbc all [RAINBOW] StrippedBroadcast v1.2 is an amazing plugin!``` ## BungeeCord 最近发布了一个与 BungeeCord 兼容的 StrippedBroadcast 版本。 它使用与 Spigot 版本相同的函数,但是某些参数会发生变化: - **all**,针对服务器上所有在线玩家; - 一个 **玩家**,仅该用户将看到消息; - 一个服务器 ("**server=**"),针对该服务器上的所有玩家; - 一个 **权限** ("**perm=**"),针对拥有该权限的所有玩家; - 一个 **组** ("**group=**"),针对该组中的所有玩家 (需要 LUCKPERMS)。 BungeeCord 也有一个 API 可用,它使用相同的名称作为 Spigot API,并在其后面添加一个 "B"(例如,**PlayerUtilsB** 是 **PlayerUtils** 用于 BungeeCord 部分的插件)。 主要类可以通过名称 **StrippedBroadcastBungee** 访问,其中包含所有将消息发送到玩家列表的方法。 ## API 我真的不确定如何实现这个插件的 API,但我很想看看开发者们能够创造出什么。 无论如何,在将插件导入到你的项目中后,你就可以开始编写了。 两个类将引起你的兴趣: ### StrippedBroadcast StrippedBroadcast 类包含静态方法 sendStrippedBroadcast。 这将向指定的玩家列表发送给定的消息(它可以是一个字符串、字符串列表或数组)。 例如: ```java String[] strings = new String[]{"This", "is", "a", "cool", "message"}; StrippedBroadcastEvent.sendStrippedBroadcast(Bukkit.getOnlinePlayers(), strings); ``` ### StrippedBroadcastEvent 和 StrippedBroadcastEventB StrippedBroadcastEvent 和 StrippedBroadcastEventB 是每当使用插件命令或方法发送消息时调用的事件。 它们包含两个变量:参与的玩家列表和发送的消息。 ```java @EventHandler public void onMessageSent(StrippedBroadcastEvent event) { event.getMessage(); } ``` ```java @EventHandler public void onBungeeMessageSent(StrippedBroadcastEventB event) { event.getMessage(); } ``` ### PlayersUtil PlayersUtil 类包含所有可用于获取使用某些输入玩家列表的方法。 就像 /sbc 命令一样,PlayersUtil 支持任何类型的输入值,从世界、权限、游戏模式、玩家名称等等… 要获取所有可用方法的更准确列表,您可以查看 GitHub 页面。 https://github.com/Fulminazzo/StrippedBroadcast