- 版权类型
- 原创
- 插件中文名称
- 跨服喊话
- 插件英文名称
- ServerShout
- 支持的核心(代理-服务端)
- Bungee
- WaterFall
- Velocity
- Spigot
- PaperSpigot
- Folia
- Purpur
- Leaves
- 语言支持
- 中文(简体)
- 前置组件
- PlaceholderAPI (可选) https://www.spigotmc.org/resources/6245/
LuckPerms (可选) https://www.spigotmc.org/resources/28140/
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
- 1.11
- 1.10
- 1.9
- 1.8
ServerShout 2

ServerShout 是一款适用于 BungeeCord/Velocity/Bukkit 的跨服喊话与邀请插件。具备高性能和高度自定义的特点,兼容 PlaceholderAPI和LuckPerms。

- 跨服喊话

- 跨服邀请

- 消息屏蔽

命令 & 权限
/ss help - 显示帮助信息
/ss reload - 重载配置文件
/ss token list - 列出所有代币
/ss token create <名称> - 创建新代币
/ss token delete <名称> - 删除代币
/ss balance get <玩家> <代币> - 查看玩家的代币数量
/ss balance set <玩家> <代币> <数量> - 设置玩家的代币数量
/ss balance give <玩家> <代币> <数量> - 给予玩家代币
/ss balance take <玩家> <代币> <数量> - 扣除玩家的代币
servershout.help - 允许使用 `/ss help`
servershout.reload - 允许使用 `/ss reload`
servershout.token.list - 允许使用 `/ss token list`
servershout.token.create - 允许使用 `/ss token create`
servershout.token.delete - 允许使用 `/ss token delete`
servershout.balance.get - 允许使用 `/ss balance get`
servershout.balance.set - 允许使用 `/ss balance set`
servershout.balance.give - 允许使用 `/ss balance give`
servershout.balance.take - 允许使用 `/ss balance take`
servershout.update.notify - 允许接收更新可用通知
BungeeCord 端命令为:/ssb | Velocity 端命令为:/ssv


PlaceholderAPI 占位符
%servershout_balance_<代币>%
玩家代币的数量值LuckPerms Meta 占位符
在 shout.yml 中,可配置在消息中展示玩家的 LuckPerms Meta 数据,例如:
{luckperms_meta_prefix}
展示 prefix Meta 值,即玩家前缀其他 Meta 值可以通过 /lp user <玩家> meta 来管理
配置文件
config.yml
YAML:
# 配置版本,请勿修改
config-version: 2
# 更新检查相关设置
update-check:
enabled: true
# 如果有新版本可用,是否通知在线的管理员
notify: true
# MySQL 数据库配置
database:
# 是否启用数据库
# 如果禁用,则不扣除玩家的代币,玩家可以无限发送消息
enabled: false
# 数据库基础配置
host: 'localhost'
port: 3306
database: 'servershout'
username: 'root'
password: 'root'
options: 'useSSL=false'
table-prefix: 'servershout_'
# 连接池配置
pool:
max-size: 10
min-idle: 2
max-lifetime: 1800000
connection-timeout: 30000
idle-timeout: 600000
shout.yml
YAML:
# 配置版本,请勿修改
config-version: 1
# 全局配置
global:
# 服务器名称映射
server-map:
'lobby': '大厅'
'survival': '生存'
'bedwars': '起床战争'
# 服务器列表
server-list:
# 列表模式
# whitelist: 白名单模式,仅允许列表中的服务器发送/接收消息
# blacklist: 黑名单模式,仅禁止列表中的服务器发送/接收消息
mode: blacklist
# 服务器列表,在黑名单模式下,以下服务器无法发送/接收消息
servers:
- 'login'
# 喊话频道配置,可以添加多个自定义频道
channels:
SHOUT_CHANNEL:
enabled: true
# 消息前缀
chat-prefix: '!'
# 发送消息所需的权限
permission: ''
# 是否允许发送空消息,即玩家只发送 '!'
allow-empty-message: false
# 消息发送所需的代币
# 如果代币数量为 0,则不扣除代币,玩家可以无限发送
# 默认的代币类型有:SHOUT, INVITE,可通过命令 /ss token 进行管理
# 发送完整消息时扣除的代币数量,格式:代币类型:数量
token-cost-full: SHOUT:1
# 发送空消息时扣除的代币数量
token-cost-empty: SHOUT:1
# 是否向同一服务器的玩家发送消息
# 如果为 false,则只向其他服务器的玩家发送消息,发送者本人不受影响
local-broadcast: true
# 允许发送和接收消息的服务器列表
# 发送者只能在 sender-server-list 列表中的服务器发送消息,
# 接收者只能在 receiver-server-list 列表中的服务器接收消息。
# 如果列表为空,则不限制。
# mode:
# whitelist: 白名单模式,仅允许列表中的服务器发送/接收消息
# blacklist: 黑名单模式,仅禁止列表中的服务器发送/接收消息
sender-server-list:
mode: whitelist
servers: [ ]
receiver-server-list:
mode: whitelist
servers: [ ]
# 冷却时间(秒)
cooldown: 60
# 消息的有效时间(秒),超过该时间的消息将无法使用"加入"和"屏蔽"按钮
expiration: 300
# 消息格式设置
# 支持 LuckPerms Meta 变量,如 {luckperms_meta_prefix}
# 空消息格式
format-empty: [ ]
# 完整消息格式
format-full:
- '&7[&b全服喊话&7]&7[&e{server}&7]BUTTON(MUTE,"&f{player}","&7点击屏蔽")&f: {message}'
INVITE_CHANNEL:
enabled: true
chat-prefix: '/invite '
permission: ''
allow-empty-message: true
token-cost-full: INVITE:2
token-cost-empty: INVITE:1
local-broadcast: true
sender-server-list:
mode: whitelist
servers: [ ]
receiver-server-list:
mode: whitelist
servers: [ ]
cooldown: 60
expiration: 300
format-empty:
- ''
- '&f 玩家 &e{player} &f邀请大家加入 &e{server} &f(&e{server_players}&f在线)'
- ''
- ' BUTTON(JOIN,"&8[&a&n点击加入&8]","&a点击加入") BUTTON(MUTE,"&8[&7&n点击屏蔽&8]","&7点击屏蔽")'
- ''
format-full:
- ''
- '&f 玩家 &e{player} &f邀请大家加入 &e{server} &f(&e{server_players}&f在线)'
- '&f 信息: &e{message}'
- ''
- ' BUTTON(JOIN,"&8[&a&n点击加入&8]","&a点击加入") BUTTON(MUTE,"&8[&7&n点击屏蔽&8]","&7点击屏蔽")'
- ''
language.yml
YAML:
# 配置版本,请勿修改
config-version: 1
message:
prefix: "&e&lServerShout &r&f> "
plugin:
database-error: "&c数据库出现错误! 请查看控制台."
database-disabled: "&c数据库未启用,无法使用此功能!"
update-available: "&eServerShout &a有新版本可用! 你当前落后 &f{2} &a个版本. 下载地址: &b&n{3}&r"
command:
unknown: "&c未知命令! 使用 &f/{0} help &c查看帮助."
parameter-error: "&c参数错误! 使用 &f/{0} help &c查看帮助."
no-permission: "&c你没有使用此命令的权限!"
not-player: "&c你不是一名玩家!"
token-not-found: "&c代币 &f{0} &c不存在!"
invalid-amount: "&c数量必须是正整数!"
commands:
help:
usage: "&e/{0} help &7- &f显示帮助信息"
reload:
usage: "&e/{0} reload &7- &f重载配置文件"
success: "&a配置文件重载完成!"
token-create:
usage: "&e/{0} token create <名称> &7- &f创建新代币"
success: "&a代币 &f{0} &a创建成功!"
invalid-name: "&c代币名称只能包含大写字母、数字和下划线!"
name-too-long: "&c代币名称不能超过 &f16 &c个字符!"
already-exists: "&c代币 &f{0} &c已存在!"
failed: "&c代币 &f{0} &c创建失败!"
token-delete:
usage: "&e/{0} token delete <名称> &7- &f删除代币"
success: "&a代币 &f{0} &a删除成功!"
failed: "&c代币 &f{0} &c删除失败!"
confirm: "&c确定要删除代币 &f{1} &c吗?这可能导致玩家数据丢失。若确定,请输入 &f/{0} token delete {1} confirm"
token-list:
usage: "&e/{0} token list &7- &f列出所有代币"
list-header: "&a代币列表:"
empty: "&c没有添加任何代币!"
balance-get:
usage: "&e/{0} balance get <玩家> <代币> &7- &f查看玩家的代币数量"
success: "&a玩家 &f{0} &a的代币 &f{1} &a数量为 &f{2}"
balance-set:
usage: "&e/{0} balance set <玩家> <代币> <数量> &7- &f设置玩家的代币数量"
success: "&a已将玩家 &f{0} &a的代币 &f{1} &a数量设置为 &f{2}"
balance-give:
usage: "&e/{0} balance give <玩家> <代币> <数量> &7- &f给予玩家代币"
success: "&a已给予玩家 &f{0} &a代币 &f{1} &a数量 &f{2} &a个,当前总数为 &f{3}"
balance-take:
usage: "&e/{0} balance take <玩家> <代币> <数量> &7- &f扣除玩家的代币"
success: "&a已扣除玩家 &f{0} &a代币 &f{1} &a数量 &f{2} &a个,当前总数为 &f{3}"
not-enough: "&c玩家 &f{0} &c的代币 &f{1} &c数量不足!"
migrate:
confirm: "&c确定要迁移数据吗?这可能导致现有数据受到旧版本数据影响。若确定,请输入 &f/{0} migrate {1} confirm"
table-not-found: "&c旧版本数据表不存在!"
success: "&a数据迁移成功! 共迁移 &f{0} &a条数据."
shout:
empty: "&c消息不能为空!"
token-not-enough: "&c你的代币不足 &f{1} &c个!"
cooldown: "&c请等待 &f{0} &c秒后再次使用!"
success: "&a消息已发送,剩余代币数量为 &f{1}"
success-free: "&a消息已发送!"
timeout: "&c消息发送超时!"
join:
expired: "&c该信息已过期!"
illegal-server: "&c该信息不适用于当前服务器!"
same-server: "&c你已经在该服务器中!"
mute:
selector: |
&f屏蔽范围:
&f
&f BUTTON(MUTE_PLAYER,"&8[&f&n屏蔽玩家&8]","&f点击屏蔽") BUTTON(MUTE_CHANNEL,"&8[&f&n屏蔽频道&8]","&f点击屏蔽")
&f
&f BUTTON(MUTE_GLOBAL,"&8[&f&n所有频道&8]","&f点击屏蔽") BUTTON(UNMUTE,"&8[&c&n取消屏蔽&8]","&c点击取消屏蔽")
player: "&a玩家 &f{0} &a已被屏蔽! 重新加入服务器可取消屏蔽状态."
channel: "&a频道 &f{0} &a已被屏蔽! 重新加入服务器可取消屏蔽状态."
global: "&a所有频道已被屏蔽! 重新加入服务器可取消屏蔽状态."
unmute: "&a已取消所有屏蔽."
self: "&c你不能屏蔽自己!"
使用方法
- 下载 jar 文件后后,放入代理端(BungeeCord/Velocity)的 plugins 目录下。(必须)
- 将 jar 文件放入 Bukkit 端的 plugins 目录下,作为 ServerShout 的管理端。(可选)
- 重启服务器。
- 编辑 config.yml 来配置数据库,并重载插件(可选)。如不配置数据库则不扣除玩家代币,玩家可以无限发送消息。
从 1.x 迁移
ServerShout 1.x 与 2.x 数据并不互通,从 1.x 升级到 2.x 需要进行数据迁移。
迁移数据前,确认连接的数据库与 1.x 相同,执行以下命令进行迁移:
/ss migrate <代币>
统计
BungeeCord
Velocity
Bukkit