服务器增强

服务器增强

世界保护、指令触发区域、精确出生点、玩家住宅,以及一个组织有序的双标签聊天窗口。

加入 Vanilla Enhancements 官方 Minecraft 服务器!

mc.FireCrafting.net

另外,加入 Discord 以报告问题、成为社区一员,并接收有关新模组和现有模组的更新!

https://discord.gg/ZngAgjrDY7

欢迎使用 Server Enhancements!

Server Enhancements 提供了一套强大、受原版启发的工具,用于服务器管理和玩家便利性。

保护世界和特定区域,在玩家进入某个区域时执行命令,配置精确的世界进入出生点,提供个人家园,并将玩家聊天与服务器消息分离——所有这些都在一个模组中实现。

世界保护

世界保护允许管理员保护整个维度,或创建精确大小的保护和非保护区域。

被保护的玩家不能:

  • 破坏或放置方块
  • 与大多数方块或实体互动
  • 拾取或丢弃物品
  • 从受保护的存储容器中取出物品

玩家仍然可以使用按钮、压力板、菜单、合成台、加工站以及其他安全的互动。

保护可以适用于所有人或特定玩家。单个玩家也可以被包含或排除在某个区域之外,包括当前离线的玩家。

区域直接在游戏世界中编辑,使用可见的方块边缘边框和角落。管理员可以抓住边缘或角落,通过移动自身位置来调整它,然后再次右键点击以保存。

其他工具包括个人和强制可视化、临时加入预览、可点击的区域列表、删除确认,以及撤销和重做历史记录。

世界保护命令

命令 用途
/world-protection visualize 为你切换已保存的保护区域边框的可见性
仅限管理员 需要管理员权限
/world-protection enabled 在当前维度中启用保护
/world-protection disabled 在当前维度中禁用保护
/world-protection enabled <player> 专门为某位玩家启用整个维度的保护
/world-protection disabled <player> 专门为某位玩家禁用整个维度的保护
/world-protection enabled r=[number] 使用选定的起始半径创建一个受保护的区域
/world-protection disabled r=[number] 使用选定的起始半径创建一个不受保护的区域
/world-protection enabled <player> r=[number] 为一位玩家创建一个受保护的区域
/world-protection disabled <player> r=[number] 为一位玩家创建一个不受保护的区域
/world-protection include <player> 将一位玩家纳入所选区域的正常保护行为中
/world-protection exclude <player> 为一位玩家赋予与所选区域保护行为相反的效果
/world-protection visualize force on 强制区域边框对维度内的所有玩家保持可见
/world-protection visualize force off 禁用强制可视化
/world-protection visualize join on 在玩家加入时短暂显示区域边框
/world-protection visualize join off 禁用加入预览
/world-protection list 列出当前维度中所有已保存的区域,附带可点击的坐标
/world-protection delete 开始或确认删除所选区域
/world-protection cancel 取消当前的编辑而不更改已保存的区域
/world-protection undo 撤销最近一次保存的保护更改
/world-protection redo 恢复最近一次撤销的更改

命令区域

命令区域是玩家进入时会激活的隐形区域。

一个区域可以:

  • 运行服务器命令
  • 发送格式化聊天消息
  • 将玩家转移到另一台 Velocity 服务器
  • 限制每位玩家激活区域的次数
  • 排除选定玩家激活区域

命令以服务器权限运行,同时保持 @s 与进入该区域的玩家关联。

消息支持标准 & 格式代码、十六进制颜色(如 &#55FF55)和 \n 换行符。

区域可以通过起始半径创建,也可以选择单个方块位置并将其外边缘合并为一个精确的区域。

只有管理员可以查看和编辑命令区域的边框:

边框颜色 含义
蓝色 尚未指定命令
绿色 区域已配置完成
紫色 区域当前正在调整大小
黄色 区域正在等待删除确认

每位玩家的使用次数限制

u=[number] 设置控制每位玩家可以激活命令区域的总次数。

该限制对每位玩家分别跟踪,并在登出和服务器重启后仍然保留。一旦玩家达到限制,再次进入该区域将不再为其运行命令或消息。

这使得命令区域可用于以下功能:

  • 给予每位新玩家一套初始物品,仅限一次
  • 显示首次加入的说明或欢迎信息
  • 仅一次将玩家传送通过一个引导路线
  • 允许一个教程检查点激活两次,然后为该玩家永久停用
  • 在不需命令方块或外部跟踪的情况下提供一次性奖励
  • 创建在玩家完成某些区域后停止激活的进程区域

例如:

设置 行为
u=[1] 每位玩家一生中可以激活该区域一次
u=[2] 每位玩家可以激活两次
u=[5] 每位玩家可以激活五次
u=[0] 无限制——每次符合条件的玩家进入都会触发该区域

限制是针对每位玩家的,而不是整个服务器的总和。使用 u=[1],每位玩家都会获得自己的一次激活次数。

命令区域命令

命令 用途
仅限管理员 所有命令区域命令都需要管理员权限
/command-region create r=[number] 使用起始半径创建一个区域
/command-region block create 开始精确的方块选择模式
/command-region block finish 将选定的位置合并为一个已保存的区域
/command-region block cancel 放弃未保存的方块选择
/command-region set command 捕获接下来输入的命令或选定的命令方块
/command-region set message 捕获接下来输入的正常聊天消息
/command-region set u=[number] 允许每位玩家一生中激活该区域指定次数
/command-region set u=[0] 无限制——每次符合条件的玩家进入都会触发该区域
/command-region clear command 移除已分配的命令
/command-region clear message 移除已分配的消息
/command-region exclude <player> 阻止某位玩家激活所选区域
/command-region include <player> 移除该玩家的排除状态
/command-region visualize 切换个人命令区域的可视化
/command-region visualize force on 强制管理员查看命令区域的边框
/command-region visualize force off 禁用强制可视化
/command-region visualize join on 管理员加入时短暂显示区域
/command-region visualize join off 禁用加入预览
/command-region list 列出当前维度中的所有区域,附带可点击的坐标
/command-region delete 开始或确认删除所选区域
/command-region cancel 取消当前的编辑
/command-region undo 撤销最近一次保存的命令区域更改
/command-region redo 恢复最近一次撤销的更改

精确世界出生点

管理员可以为每个维度配置精确的进入出生点,包括玩家的位置、朝向和视角。

进入出生点可以应用于玩家每次进入该维度时,或者仅应用于每位玩家的前几次进入。

有限进入设置也使用 u=[number],但应用于维度进入,而不是命令区域的激活。

例如:

  • u=[1] 会在每位玩家首次进入该维度时将传送到精确出生点。
  • u=[2] 会在玩家前两次进入时传送到出生点。
  • u=[0] 完全禁用自动进入出生点的传送。
  • 强制模式会在玩家每次进入时都将传送到出生点,无论之前进入过多少次。

/spawn 命令仍然可用,用于手动传送,并且不消耗有限的自动进入次数。

如果没有适用的精确进入出生点,模组会记录命令区域之外的安全玩家位置。这可以防止玩家在触发区域内断开连接后,再次返回时重复激活该区域。

世界出生点命令

命令 用途
/spawn 手动将你传送到当前维度配置的精确出生点
仅限管理员 需要管理员权限
/world-spawn set 将你的精确位置、朝向和视角保存为当前维度的出生点
/world-spawn set u=[number] 自动将每位玩家传送到出生点,次数为其前几次维度进入
/world-spawn set u=[0] 从不自动——完全禁用自动进入出生点传送
/world-spawn force on 始终自动——每次玩家进入维度时都传送到出生点
/world-spawn force off 停止每次进入的强制传送,并恢复为配置的有限使用策略
/world-spawn info 显示当前维度的精确出生点和进入策略
/world-spawn clear 移除当前维度配置的出生点及其使用计数器

简而言之:

  • 命令区域 u=[0] 表示它始终触发。
  • 世界出生点 u=[0] 表示它永远不会自动触发。
  • 世界出生点 force on 表示它始终自动触发。

玩家家园

每位玩家可以在整个世界存档中保存一个个人家园。

家园包含其维度、精确位置、朝向和视角。设置新家园会替换之前的家园,即使它位于另一个维度。

玩家也可以请求其他人传送到他们的家园。接收玩家必须手动接受请求,双方都会收到明确的状态消息。

家园通过 UUID 归属,因此更改用户名不会让玩家断开与其已保存家园的连接。之前的名称仍然解析到同一玩家,管理员也可以管理属于离线玩家的家园。

家园命令

命令 用途
/home set 使用你当前的位置保存或替换你的家园
/home 将你传送到你的家园,包括跨维度
/home delete 删除你已保存的家园
/home bring <player> 请求一位在线玩家传送到你的家园
/home jump 接受你最新的待处理家园跳跃请求
仅限管理员 需要管理员权限
/home <player> 将你传送到另一位玩家已保存的家园
/home set <player> 将该玩家的家园设置为你当前的位置和维度
/home delete <player> 删除该玩家已保存的家园

管理员命令支持已保存的离线玩家。已知的在线玩家、网络范围内的名称以及已保存的离线名称会在可用的命令建议中包含。

改进的聊天窗口

当客户端安装了 Server Enhancements 时,聊天窗口分为两个标签页:

  • 聊天 用于来自其他玩家的消息
  • 系统 用于命令输出和服务器发送的消息

提交命令会自动切换到系统标签页。

当非活动标签页收到消息时,会出现一个小红点通知。输入框旁边也会出现一个简短的斜体通知,让玩家知道他们收到了新的聊天或服务器消息。

聊天界面采用紧凑布局,并在其消息、输入字段、命令建议和标签页中统一使用高度可读的 Lexend 字体。

安装

Server Enhancements 使用一个通用的 JAR 文件,适用于 Fabric、Velocity 和客户端。

目标 安装方式
Fabric 后端服务器 必需——将 JAR 放入每个后端服务器的 mods 文件夹
Velocity 代理 使用 Velocity 时必需——将相同的 JAR 放入 Velocity 的 plugins 文件夹
Minecraft 客户端 推荐——提供改进的聊天窗口和最佳的区域编辑体验

Velocity 安装启用了跨服务器的命令区域和网络范围内的玩家名称建议。

所有已保存的区域、世界出生点、保护设置和玩家家园都存储在主世界存档中,并包含在完整的世界备份中。