🎉 终于,EssentialsX 2.22.0 发布了!此版本为运行 Minecraft 26.1.2 和 1.21.11 的服务器带来了对 铜器时代、混乱坐骑 和 微小接管 更新内容的支持,同时还包含大量新功能、错误修复以及面向开发者的新 API!
EssentialsX 2.22.0 修复了多个物品复制和服务器崩溃漏洞。 所有用户都应升级到此版本。
感谢所有为本版本贡献代码的人(其中许多人列在本发布说明的底部),以及所有在 Crowdin 上贡献翻译的人!
此外,特别感谢我们的社区成员,他们在 GitHub 和 MOSS 上帮助了无数人使用 EssentialsX,包括 @Evidentsinger14、@JasonHorkles、@Chew 以及许多其他人。
EssentialsX 项目由社区驱动。如果您想帮助我们,可以通过以下方式贡献:
最后,向我们在 Patreon 和 GitHub Sponsors 上的支持者致以谢意!
特别感谢我们的 Hero tier 支持者:
- AKP
- @aternosorg
- @pebblehost
- 以及一位匿名支持者!
您的支持使我们能够继续花费数小时的空闲时间为每个人开发和改进 EssentialsX。如果您有多余的资金,可以点击下方的按钮,通过一次性或每月承诺来支持 EssentialsX 项目:
支持的服务器版本
EssentialsX 官方支持 Paper 服务器软件。具体而言,EssentialsX 设计用于以下 Minecraft 版本:
- ✅
26.1.2- EssentialsX 积极为此版本开发并提供支持。 - ⚠️
1.8.8、1.9.4、1.10.2、1.11.2、1.12.2、1.13.2、1.14.4、1.15.2、1.16.5、1.17.1、1.18.2、1.19.4、1.20.6和1.21.11- 这些版本仍受支持,但不是我们的优先事项,并可能在未来版本中被移除。 - ⚠️ Spigot 仍受支持,但优先级较低,并可能在未来版本中被移除。
我们建议使用最新版本的 Paper。EssentialsX 包含需要 Paper 的重大改进,包括:
- Paper 的异步区块加载减少了玩家传送时的卡顿峰值。 CraftBukkit 和 Spigot 不支持插件进行的异步区块加载。
/anvil、/grindstone、/cartographytable、/loom、/smithingtable和/stonecutter仅在 Paper 上受支持。
CraftBukkit 和 Spigot 不支持这些功能所需的 API。- 1.12+ 版本中的
/recipe需要 Paper 以避免由 CraftBukkit 和 Spigot 引入的复制漏洞。 - 与 CraftBukkit 和 Spigot 相比,Paper 包含无数的整体性能优化。
EssentialsX 不支持以下 Minecraft 版本或服务器软件:
- ℹ️ 尚不支持 Folia。 我们正在努力提供适当的 Folia 支持。 请勿尝试在当前版本的 EssentialsX 上或在 Folia 的分叉版本上使用它——您可能会丢失用户数据。
- 🛑 “超高性能”Paper 分叉版本,包括 Akarin、Yatopia 及类似项目。
这些项目通常执行非标准行为,可能会破坏您的世界和已安装的插件。 - 🛑 Mohist 及其相关项目 - Mohist 项目已知不可靠,过去曾诱骗用户删除官方 EssentialsX jar 文件并安装非官方构建版本。
我们无法保证非官方 EssentialsX 构建版本的安全性或功能性;您应尽可能避免使用 Mohist。 - 🛑 其他 Forge/Bukkit 混合服务器,包括 Cauldron、Thermos、Magma、CatServer、Arclight - EssentialsX 是为 Bukkit API 构建的,而该 API 并不properly 支持模组。
对于运行 Minecraft Forge、NeoForge 或 Fabric 的模组服务器,您应使用 FTB Essentials。 - 🛑
1.7.10或更低版本。
升级到 2.22.0
如果您是从 2.21.1 或 2.21.2 升级,可以保留当前的 EssentialsX 配置文件。但是,2.22.0 添加了您可能想要配置的新选项。您可以将这些选项添加到现有配置文件中,或者重命名当前配置文件以生成全新的文件。请继续阅读以了解新配置选项的详细信息。
从 2.21.0 或更早版本的 EssentialsX 升级?请参阅 之前的更新变更日志。
已知问题
即使 EssentialsX Spawn 覆盖了重生位置,Spigot 上的锚点电荷仍会耗尽
在 CraftBukkit 和 Spigot 上,无论 respawn-at-anchor 设置如何,锚点电荷都会耗尽,这是由于 CraftBukkit 中一个未修复的错误。此错误已在 Paper 中修复。
在 Spigot 上跨世界传送时飞行模式会被重置
在 Spigot 1.17.1 及更高版本上,由于 vanilla 的行为变化,无论 world-change-fly-reset 设置如何,玩家的飞行模式都会被重置。Paper 服务器已有针对此问题的修复方案。(#6012)
新功能
EssentialsX 现在支持 26.1.2 和 1.21.11(#6299, #6364, #6473, #6534)
EssentialsX 现在正式支持 Paper 26.1.2 和 1.21.11,包括 Minecraft 最新功能更新中添加的所有新方块、物品、生物和附魔。
新 config.yml 选项:afk-timeout-command(#6169)
您现在可以指定在 AFK 超时结束后要执行的一个或多个命令。这取代了经典的 auto-afk-kick 配置选项。
# 在此超时时间(秒)之后,玩家将被踢出服务器
# 或执行 'afk-timeout-commands' 中的命令。
# 'essentials.afk.kickexempt' 权限可覆盖此功能。
# 设置为 -1 表示无超时。
auto-afk-timeout: -1
# 一旦达到上述 'afk-auto-timeout' 中定义的阈值,
# 将执行此列表中的命令以代替踢出玩家。如果此列表为空
# 且 'afk-auto-timeout' 未设置为 -1,Essentials 将默认
# 在玩家达到超时阈值时将其踢出。
#
# 警告:您必须在此处包含一个命令,要么将玩家从服务器移除,
# 要么阻止其保持 AFK 状态。否则,这些命令将每秒运行一次,
# 直到玩家不再处于 AFK 状态!
#
# 可用占位符:
# {USERNAME} - 玩家的用户名。
# {KICKTIME} - 玩家处于 AFK 状态的时间(分钟)。
afk-timeout-commands:
- eco take {USERNAME} 10
- kick {USERNAME} 您因 inactive {KICKTIME} 分钟而被踢出!您损失了 $10。
如果您希望维持踢出玩家并显示标准消息的经典行为,您可以继续在 auto-afk-timeout 下设置超时持续时间,但将 afk-timeout-commands 列表留空。
新命令:/powertoollist(#6096)
您现在可以通过运行 /powertoollist 命令列出所有通过 /powertool 分配给工具的命令:
新权限:essentials.whitelist.bypass(#6232)
您现在可以授予 essentials.whitelist.bypass 权限,允许玩家在白名单启用时绕过白名单。即使玩家不在白名单中,此功能也有效。
新 config.yml 选项:gamemode-change-preserve-flying
您现在可以选择当玩家从飞行游戏模式(旁观者或创造模式)切换到非飞行游戏模式(生存或冒险模式)且正在飞行时,EssentialsX 是否保留玩家的飞行状态。
# 当玩家切换游戏模式时,Essentials 是否应保留玩家的飞行状态?
# 启用后,如果玩家在切换游戏模式时正在飞行,其飞行状态将被保留。
# 仅当玩家拥有 'essentials.fly' 权限时此功能才有效。
gamemode-change-preserve-flying: false
新 config.yml 选项:baltop-entry-limit(#6300, #6306)
您现在可以限制 /balancetop 存储的条目数量,以减少拥有高终身玩家数量的服务器上的内存使用量。
# 限制缓存的余额排行榜条目数量。
# 推荐用于玩家数量较多的服务器,因为它可减少内存使用量。
# 设置为 -1 以禁用限制。
baltop-entry-limit: -1
套件现在支持将物品放置在特定槽位(#5794)
您现在可以在套件中的物品定义开头添加 slot:<id>,以将物品放置在特定的库存槽位中。
这在使用的 /createkit 时有效,无论是使用 NBT 序列化还是经典 ItemMeta 语法。您也可以将其添加到现有套件中。
kits:
meleeminer:
delay: 10
items:
- slot:0 diamond_sword 1
- slot:1 netherite_spear 1
- slot:2 torch 64
- slot:3 cooked_beef 12
- slot:6 golden_pickaxe 1
- slot:7 cobblestone 32
- slot:8 white_wool 32
新命令:/unmute(#6491)
此前,要解除对玩家的禁言,您必须再次运行 /mute <player>。这对于脚本来说是个问题,因为它会切换玩家的禁言状态,可能会意外地重新禁言玩家。
您现在可以运行 /unmute <player>,这将永远不会误禁言玩家。
新命令:/jailedplayers(#6517)
新的 /jailedplayers 命令显示当前被监禁玩家的完整列表。
新配置选项:reset-nick-on-name-change(#6470)
您现在可以设置在玩家更改 Minecraft 用户名后登录时重置其昵称。
# 启用此选项后,当玩家的 Minecraft 账户名称更改时,其设置的任何昵称都将被重置。
# 这可防止旧昵称(包括 RGB 格式化的昵称)在名称更改后持续存在。
reset-nick-on-name-change: false
其他新增内容
/potion命令现在允许将药水效果应用于药箭。(#6191)/heal命令现在会恢复您的氧气水平。(#6201)economy-log-uuids设置现在允许您将 UUID 打印到trade.log文件中,而不是用户名。(#6252)essentials.seen.firstlogin权限现在允许/seen命令显示玩家首次加入服务器的日期。(#6258)- 安装 LuckPerms 时,EssentialsX 现在直接从 LuckPerms 的 API 读取组名,而不是依赖 LuckPerms Vault 集成。旧组名会被添加到列表中以保持向后兼容性。(#6229)
- 您现在可以在 EssentialsX 命令中使用
@s和@p选择器来指代执行命令的玩家。(#6110) - 盔甲纹饰图案现在在
/give、/item和套件元数据中受支持。(#6155) - EssentialsX 现在使用 Paper 的配置阶段 API 在玩家加入世界之前异步加载用户数据。(#6248)
/recipe命令现在可以显示crafting_transmute配方的食谱,例如用染料重新染色束袋。(#6302)- 您现在可以使用
log-console-commands配置选项抑制控制台和 RCON 消息的标准"CONSOLE issued server command: ..."消息。(#6337) - 当用户在临时 IP 封禁后尝试加入时,他们现在会在封禁消息中看到过期时间。(#6407)
/essentials命令已进行了重大重构以提高代码质量。(#6230, #6481)- 在 Paper 服务器上调用
/gc命令现在更快。(#6439) - EssentialsX 现在在可用时直接使用 Paper 的原生 Adventure API 函数。(#6220)
- 您现在可以使用
cancel-afk-on-fish配置选项阻止玩家在 AFK 时钓鱼。(#6465) - 当玩家在飞行状态下退出服务器后重新加入时,EssentialsX 现在可以恢复自定义飞行模式设置。(#6403)
- 默认昵称长度限制已从 15 增加到 16,以与 Minecraft 的用户名长度限制保持一致。(#6484)
- 您现在可以通过在 语言文件 中设置
socialSpyCmdFormat键来修改在 SocialSpy 中显示玩家命令时使用的格式。(#6489) - 您现在可以通过授予
essentials.vanish.pickup权限来禁止在/vanish模式下拾取物品。(#6488) - 当玩家的传送目的地不安全时,向玩家显示的默认消息已得到改进。这可以像往常一样在 语言文件 中进行修改。(#6486)
- 隐身玩家将不再广播进度消息。此功能需要运行 Paper 的服务器。(#6513)
- Discord: 您现在可以在
avatar-url配置选项中使用 PlaceholderAPI 占位符。(#6189) - Discord: 您现在可以通过
http-proxy-server配置选项配置插件连接 Discord 时使用的 HTTP 代理。(#6275) - Discord: 当 Discord 机器人缺少权限时,插件现在会向您发出警告。(#6228)
- Discord: 控制台中继过滤器现在也适用于记录器名称。(#6383)
- Geo: 加入消息现在会打印到控制台,而不仅仅是管理员。(#6523)
- Protect: 您现在可以通过将
protect.prevent.windcharge-explosion设置为 false 来禁用风弹造成的击退效果。(#6183)
错误修复
修复了 2.21.2 及更早版本中的错误
- 当另一个插件取消了死亡事件时,
/back的死亡位置不再被覆盖。(#6179) - 玩家在
/invsee模式下不再能通过点击拖动移动物品,防止潜在的物品丢失。(#5902) - EssentialsX 现在可以解析快照以及 Mojang 和 Paper 新版本命名方案的 Minecraft 版本名称。(#6265, #6473, #6480, #6483, #6501)
- 只读的
/invsee访问权限在大量垃圾回收后不再降级为完全修改权限。(#6241, #6247) /potion命令现在正确地将-1解析为药水效果的无限持续时间。(#6236)- 命令参数中的模糊/部分名称解析现在更加可靠。(#6263)
/tpr命令现在在/settpr运行并更改/tpr设置后正确重置其缓存的位置列表。(#6305)- 当未设置自定义消息时,EssentialsX 不再替换 vanilla 加入消息,允许正确显示 vanilla 翻译的消息。(#6312)
- 解决了 Configurate 重构带来的各种问题。(#6266)
- UUID 缓存现在缓冲磁盘读写操作。(#6338)
- 对自己运行
/heal命令时不再发送重复消息。(#6347) - 在 Spigot 上检查服务器状态不再失败。(#6377)
- 从控制台运行
/helpop命令现在能正确显示消息。(#6342) /balance不再泄露玩家是否处于隐身状态。(#6085)- 获取权限处理程序不再抛出 NullPointerException。(#6398)
- 获取离线玩家的语言区域不再抛出 NullPointerException。(#6435)
- 当玩家的昵称被移除时,
/nick命令现在正确显示相应的消息。(#6442) /give命令不再能用于冻结服务器。(#6449)/burn和/more命令现在对整数溢出漏洞更具抵抗力。(#6452)/thunder命令现在在其输出中正确显示 MiniMessage。(#6454)- 当玩家睡觉时,
/recipe命令不再能用于生成无限钻石。(#6455) /setwarp命令不再允许玩家通过尝试将他们的 warp 坐标打印到连接到服务器机器的打印机来挂起或崩溃运行 Windows 的服务器。(#6487)/walkspeed和/flyspeed(及类似别名)现在始终专门修改行走或飞行速度。(#6485)/eco命令现在尊重特定于语言区域的小数分隔符,包括启用的每个玩家的语言区域。(#6511)/time命令不再覆盖玩家自己的/ptime设置。(#6509)- 命令描述现在在
/help和使用消息中使用玩家的语言区域进行打印。(#6508) - 在 SocialSpy 中打印本地聊天时,玩家显示名称的格式不再超出玩家名称范围。(#6507)
- 套件中的命令在关键词替换过程中不再错误地将下划线翻译为空格。(#6514)
- 控制台名称现在正确地从
consoleName翻译键读取。(#6506) - 运行
/home bed现在正确确保玩家在传送前拥有essentials.home.bed权限。(#6516) - 当玩家余额低于最小值时,经济存款(余额增加)不再被拒绝。(#6515)
- 不存在的
essentials.jail权限已从plugin.yml中移除。(#6539) - AntiBuild:剪切交互现在被正确处理。(#6262)
- Chat:
%符号不再导致聊天处理抛出异常。(#6452) - Discord:如果
announceAdvancements游戏规则设置为 false,进度消息不再发送到 Discord。(#6195) - Discord:从 Discord 向 Minecraft 发送私人消息不再包含空的区分标签。(#6383)
- Discord:Webhooks 现在极不可能触发 Discord 速率限制(HTTP 错误 429)。(#6461)
- Discord:由于历史参数混淆,假的加入和退出消息不再抛出 NullPointerException。(#6510)
- Discord Link:角色同步现在极不可能触发 Discord 速率限制(HTTP 错误 429)。(#6461)
- Discord Link:角色同步不再在插件关闭时在后台留下运行的线程。(#6512)
- Spawn:在 Minecraft 1.16.x-1.20.3 上获取玩家的重生的位置不再抛出异常。(#6460)
修复了 2.22.0 开发版本中的回归问题
以下来自 2.22.0 开发版本的错误已修复:
afk-timeout-commands中列出的命令不再被强制转换为小写。(#6255)essentials.powertoollist不再从plugin.yml中省略。(#6250)- 玩家登出时现在从在线用户缓存中驱逐,而不是从持久化 UUID 映射中驱逐。(#6284, #6286)
- 当玩家首次加入时,EssentialsX 不再抛出异常。(#6327)
TeleportWarmupCancelledEvent现在跟踪其被调用的线程,以防止每次触发时都抛出异常。(#6371)- 没有
essentials.joinfullserver权限的玩家即使在服务器未满时也不再被踢出。(#6426) /ess reload命令再次可用。(#6444)- Bukkit 级别的插件重载不太可能破坏
/essentials命令。(#6445) - 当玩家在水中登录时,飞行不再被重新启用。(#6490)
- EssentialsX 不再在点击处理程序中双重包装 URL,否则会在 Paper 上记录错误。(#6492)
/list命令现在解析玩家显示名称中的 MiniMessage 标签。(#6505)- Discord:
emoji-java库现在再次正确包含在插件中。(#6467)
面向开发者的变更
新 API:自定义物品转换器(#4871)
终于,您现在可以从外部插件注册自定义物品元数据类型。这些元数据类型将在 /give、/item 和套件中被识别。有关更多信息,请参阅 MetaItemStack#registerItemTransformer。
EssentialsX 更晚地捕获 PlayerDeathEvent 并忽略已取消的事件(#6179)
EssentialsX 现在在 EventPriority.HIGH 上监听 PlayerDeathEvent 并忽略已取消的事件。这意味着它不再为已取消的死亡事件设置死亡消息。
仍然可以使用 EventPriority.HIGHEST 在 EssentialsX 修改事件后取消或修改事件。
新事件:TeleportWarmupCancelledEvent(#6351, #6371)
新的 TeleportWarmupCancelledEvent 在传送预热被取消时触发(例如玩家在预热期间移动)。
新事件:PreTransactionEvent(#6370)
新的 PreTransactionEvent 在玩家之间进行交易之前触发。您可以修改交易值或使用该事件取消事件以阻止交易。有关如何使用此事件的示例,请参阅 原始拉取请求。
通知:VanishStatusChangeEvent 中的参数错误(#6510)
VanishStatusChangeEvent#getController 和 VanishStatusChangeEvent#getAffected 的值一直以来都被错误地交换了。
为了保持与使用这些函数的现有插件的兼容性,我们没有更改它们的返回值。相反,这种错误行为现在已在类本身中记录以供参考。
由于纠正此错误将是一个破坏性变更,它只会在主要 API 增量后进行修正。
如需完整的提交日志,请点击此处。
注意: 正在寻找插件扩展?请在 Modrinth 上查看 完整的 EssentialsX 合集!
🎉 EssentialsX 2.21.2 现已发布,带来了 1.21.8 版本支持、对"Chase the Skies"内容的支持,以及一系列错误修复。
感谢所有为本版本贡献代码的开发者(其中许多人列在本发布说明的底部),也感谢所有在 Crowdin 上贡献翻译的朋友们!
此外,特别感谢我们的社区成员,他们在 GitHub 和 MOSS 上帮助了无数人使用 EssentialsX,包括 @Evidentsinger14、@JasonHorkles、@ImDarkLaw、@Chew 以及许多其他人。
EssentialsX 项目由社区驱动。如果您想帮助我们,可以通过以下方式贡献:
最后,向我们在 Patreon 和 GitHub Sponsors 上的支持者致以谢意!
特别感谢我们的 Hero 层级支持者:
- AKP
- @aternosorg
- @pebblehost
- 以及一位匿名支持者!
您的支持帮助我们能够继续投入大量空闲时间来开发和改进 EssentialsX,造福所有人。如果您有多余的零钱,可以点击下方的按钮,通过一次性或每月捐赠来支持 EssentialsX 项目:
支持的服务器版本
EssentialsX 官方支持 Paper 服务器软件。具体而言,EssentialsX 旨在适用于以下 Minecraft 版本:
- ✅
1.21.8- EssentialsX 积极为此版本开发并提供支持。 - ⚠️
1.8.8、1.9.4、1.10.2、1.11.2、1.12.2、1.13.2、1.14.4、1.15.2、1.16.5、1.17.1、1.18.2、1.19.4和1.20.6- 这些版本仍受支持,但并非我们的优先事项,未来版本中可能会停止支持。 - ⚠️ Spigot 仍受支持,但优先级较低,未来版本中可能会停止支持。
我们建议使用最新版本的 Paper。EssentialsX 包含许多需要 Paper 的重大改进,包括:
- Paper 的异步区块加载减少了玩家传送时的卡顿峰值。 CraftBukkit 和 Spigot 不支持插件进行的异步区块加载。
/anvil、/grindstone、/cartographytable、/loom、/smithingtable和/stonecutter仅在 Paper 上受支持。
CraftBukkit 和 Spigot 不支持这些功能所需的 API。- 1.12+ 版本中的
/recipe命令需要 Paper,以避免由 CraftBukkit 和 Spigot 引入的物品复制漏洞。 - 与 CraftBukkit 和 Spigot 相比,Paper 包含了无数整体性能优化。
EssentialsX 不支持以下 Minecraft 版本或服务器软件:
- ℹ️ 尚不支持 Folia。 我们正在努力实现对 Folia 的正式支持。 请勿尝试在当前版本的 Folia 或其分支上使用 EssentialsX —— 您可能会丢失用户数据。
- 🛑 “超高性能”Paper 分支,包括 Akarin、Yatopia 及类似项目。
这些项目通常执行非标准行为,可能导致您的世界和已安装的插件损坏。 - 🛑 Mohist 及其相关项目 - Mohist 项目已知存在可疑行为,过去曾诱骗用户删除官方 EssentialsX jar 文件并安装非官方构建版本。
我们无法保证非官方 EssentialsX 构建版本的安全性或功能性;您应尽可能避免使用 Mohist。 - 🛑 其他 Forge/Bukkit 混合服务器,包括 Cauldron、Thermos、Magma、CatServer、Arclight - EssentialsX 是为 Bukkit API 构建的,而该 API 并不能正确支持模组。
对于运行 Minecraft Forge、NeoForge 或 Fabric 的模组服务器,您应该使用 FTB Essentials。 - 🛑
1.7.10或更低版本。
升级到 2.21.2
如果您是从 2.21.1 升级,可以保留当前的 EssentialsX 配置文件。本版本中没有对配置文件进行任何新的更改。
从 2.21.0 或更早版本的 EssentialsX 升级?请参阅 之前的更新日志。
已知问题
即使 EssentialsX Spawn 覆盖了重生位置,锚点电荷在 Spigot 上仍会耗尽
在 CraftBukkit 和 Spigot 上,无论 respawn-at-anchor 设置如何,锚点电荷都会耗尽,这是由于 CraftBukkit 中一个未修复的错误 所致。此错误已在 Paper 中修复。
在 Spigot 上跨世界传送时飞行模式会被重置
在 Spigot 1.17.1 及更高版本中,无论 world-change-fly-reset 设置如何,玩家的飞行模式都会被重置,这是由于原版行为变更所致。Paper 服务器已有针对此问题的修复方案。(#6012)
新功能
EssentialsX 现在支持 1.21.8(#6166, #6196, #6224)
EssentialsX 现在正式支持 Paper 1.21.8。
其他新增内容
/tpr命令现在会在传送开始前发送一条消息。(#6205)
错误修复
修复自 2.21.1 及更早版本的错误
/tpr命令不再允许玩家绕过最大和最小范围限制。(#6205)/tpr命令在旧版本中再次正常工作。(#6212)- 当启用
ignore-colors-in-max-nick-length时,使用十六进制颜色代码的昵称现在能正确遵循max-nickname-length设置。(#6185) - 使用
/skull命令创建新的玩家头颅现在在 1.20.4 及更高版本中正常工作。(#6188) /whois命令的描述现在不再具有误导性。(#6187)- 从
/editsign paste命令取消 SignChangeEvent 时,不再错误地告知玩家粘贴成功。(#6136) - 不受支持的权限插件不再导致 bStats 在启动时报错。(#6190)
- 当启用对
/clear的确认时,传递给confirmClear消息的命令不再带有尾随空格。(#6213) - 带参数的翻译消息现在能正确遵循
per-player-locale设置。(#6227) - EssentialsX 不再将隐藏的身体和鞍具库存槽位视为库存的一部分。(#6218)
- AntiBuild: 修复了各种与无权限破坏告示牌相关的问题。(#6186)
- Chat: 发送包含顶级域名(TLD)长度超过三个字符的 URL 的聊天消息现在能被正确屏蔽。(#6184)
- Chat: 喊话或提问类型的消息前方不能再有空格。(#6192)
- Chat: 本地聊天的格式化不再截断颜色代码。(#6226)
- Discord: 可以在不设置
show-avatar: true的情况下自定义机器人名称。(#6239)
修复自 2.21.2 开发版本的回归问题
以下来自 2.21.2 开发版本的错误已被修复:
player-commands功能现在再次正常工作。(#6214)
如需查看完整的提交日志,请点击此处。
注意: 正在寻找附加组件?请查看 Modrinth 上的 EssentialsX 完整合集!
🎉 EssentialsX 2.21.1 已发布,带来了 1.21.5 版本支持以及多项错误修复。
感谢所有为本版本贡献代码的开发者(其中许多人列在本发布说明的底部),同时也感谢所有在 Crowdin 上贡献翻译的朋友们!
此外,我们要特别感谢我们的社区成员,他们在 GitHub 和 MOSS 上帮助了无数人使用 EssentialsX,包括 @Evidentsinger14、@JasonHorkles、@ImDarkLaw、@Chew 以及许多其他人。
EssentialsX 项目由社区驱动。如果您想帮助我们,可以通过以下方式贡献:
最后,向我们在 Patreon 和 GitHub Sponsors 上的支持者致以谢意!
特别感谢我们的 Hero 层级支持者:
- AKP
- @aternosorg
- @pebblehost
- 以及一位匿名支持者!
您的支持使我们能够继续投入大量空闲时间来开发和改进 EssentialsX,造福所有人。如果您有多余的零钱,可以点击下方的按钮,通过一次性或每月捐款来支持 EssentialsX 项目:
支持的服务器版本
EssentialsX 官方支持 Paper 服务器软件。具体而言,EssentialsX 旨在适用于以下 Minecraft 版本:
- ✅
1.21.5- EssentialsX 积极为此版本开发并提供支持。 - ⚠️
1.8.8、1.9.4、1.10.2、1.11.2、1.12.2、1.13.2、1.14.4、1.15.2、1.16.5、1.17.1、1.18.2、1.19.4和1.20.6- 这些版本仍受支持,但并非我们的优先事项,未来版本中可能会停止支持。 - ⚠️ Spigot 仍受支持,但优先级较低,未来版本中可能会停止支持。
我们建议使用最新版本的 Paper。EssentialsX 包含许多需要 Paper 的重要改进,包括:
- Paper 的异步区块加载减少了玩家传送时的卡顿峰值。 CraftBukkit 和 Spigot 不支持插件进行的异步区块加载。
/anvil、/grindstone、/cartographytable、/loom、/smithingtable和/stonecutter仅在 Paper 上受支持。
CraftBukkit 和 Spigot 不支持这些功能所需的 API。- 1.12+ 版本中的
/recipe命令需要 Paper,以避免由 CraftBukkit 和 Spigot 引入的物品复制漏洞。 - 与 CraftBukkit 和 Spigot 相比,Paper 包含了无数的整体性能优化。
EssentialsX 不支持以下 Minecraft 版本或服务器软件:
- ℹ️ 尚不支持 Folia。 我们正在努力实现对 Folia 的 proper 支持。 请勿尝试在 Folia 或其分支上使用当前版本的 EssentialsX —— 您可能会丢失用户数据。
- 🛑 “超高性能”Paper 分支,包括 Akarin、Yatopia 及类似项目。
这些项目通常执行非标准行为,可能会破坏您的世界和已安装的插件。 - 🛑 Mohist - Mohist 项目众所周知存在可疑行为,过去曾诱骗用户删除官方的 EssentialsX jar 文件并安装非官方构建版本。
我们无法保证非官方构建版本的 EssentialsX 的安全性或功能性;您应尽可能避免使用 Mohist。 - 🛑 其他 Forge/Bukkit 混合服务器,包括 Cauldron、Thermos、Magma、CatServer、Arclight - EssentialsX 是为 Bukkit API 构建的,而该 API 并不能properly 支持模组。
对于运行 Minecraft Forge、NeoForge 或 Fabric 的模组服务器,您应该使用 FTB Essentials。 - 🛑
1.7.10或更低版本。
升级到 2.21.1
如果您是从 2.21.0 升级,可以保留当前的 EssentialsX 配置文件。不过,2.21.1 添加了您可能想要配置的新选项,并重新组织了配置文件,改进了注释以提高清晰度。您可以将这些选项添加到现有配置文件中,或者重命名当前的配置文件以生成全新的文件。
如果是从 2.20.0 或更早版本的 EssentialsX 升级?请参阅 之前的更新日志。
已知问题
即使 EssentialsX Spawn 覆盖了重生位置,Spigot 上的锚点电荷仍会耗尽
在 CraftBukkit 和 Spigot 上,无论 respawn-at-anchor 设置如何,锚点电荷都会耗尽,这是由于 CraftBukkit 中一个未修复的错误 所致。此错误已在 Paper 中修复。
在 Spigot 上跨世界传送时飞行模式会被重置
在 Spigot 1.17.1 及更高版本中,无论 world-change-fly-reset 设置如何,玩家的飞行模式都会被重置,这是由于 vanilla 行为变更所致。Paper 服务器已有针对此问题的修复方案。(#6012)
新功能
EssentialsX 现在支持 1.21.5(#6109)
EssentialsX 现在正式支持 Paper 和 Spigot 1.21.5。
新的 allowed-nicks-regex 设置(#5200)
您现在可以更改用于确定允许哪些昵称的正则表达式模式。essentials.nick.allowunsafe 权限
仍可用于绕过此检查。
# 用于确定请求的昵称是否允许使用的正则表达式模式。
# 如果请求的昵称不符合此模式,则该昵称将被拒绝。
# 拥有 essentials.nick.allowunsafe 权限的用户可以绕过此检查。
allowed-nicks-regex: '^[a-zA-Z_0-9§]+$'
Discord:支持带有新 private-chat 消息类型的 SocialSpy(#5620)
您现在可以使用新的 private-chat 消息类型将 SocialSpy 消息中继到 Discord。
每当用户在 Minecraft 服务器上发送私聊消息时,除非他们拥有 essentials.chat.spy.exempt 权限,否则都会发送此消息。
# 配置不同类型的消息将发送到哪个 Discord 频道。
# 您可以使用上面列出的频道名称,或者仅使用频道的 ID。
# 如果使用了无效的频道,则将使用主频道代替。
#
# 若要禁用某条消息的显示,请将频道名称设置为 'none'。
message-types:
...
# 当在 Minecraft 服务器上发送私聊消息(/msg、/whisper 等)时发送的消息。
private-chat: none
# 以下条目允许您自定义插件发送消息的格式。
# 每条消息都附有使用说明以及可用的占位符。
messages:
...
# 这是用于在 Discord 中中继 Minecraft 私聊消息的消息。
# 此处可使用以下占位符:
# - {sender-username}:发送消息的玩家用户名
# - {sender-displayname}:发送消息的玩家显示名称(即其昵称)
# - {receiver-username}:接收消息的玩家用户名
# - {receiver-displayname}:接收消息的玩家显示名称(即其昵称)
# - {message}:发送的消息内容
pms-to-discord: "[SocialSpy] {sender-username} -> {receiver-username}: {message}"
其他新增内容
- 翻译已根据 Crowdin 上最新的社区贡献进行了更新。(#6089, #6131)
- EssentialsX 的配置文件已整理优化,注释措辞更加清晰。(#6108)
错误修复
修复了 2.21.0 及更早版本中的错误
- 解决了 Adventure 文本重构带来的各种问题。(#6114)
- 进一步解决了交易告示牌的相关问题。(#6116)
/baltop命令在 1.15.2 及更低版本中再次正常工作。(#6115)- 修复了英文翻译文件中的各种拼写错误。(#6135, #6140)
/delhome在删除不存在的家时不再发送多余的消息。(#6150)- Discord 链接: 离线状态下解除 Discord 账户绑定不再导致错误。(#6111)
修复了 2.21.1 开发版本中的回归问题
以下来自 2.21.1 开发版本的错误已得到修复:
/spawnmob命令在 1.21.5 及更低版本中再次正常工作。(#6121)- 无论是否拥有
essentials.sethome.bed权限,玩家现在都可以再次在床上睡觉。(#6151)
面向开发者的变更
新事件
EssentialsX 2.21.1 引入了一个新事件:
- 当玩家即将使用购买或出售告示牌时,会触发
SignTransactionEvent。(#6071)
新方法
- 现在有一个方法可用于检索用户的最近活动时间:
IUser#getLastActivityTime。(#6101)
其他变更
- 无论是否设置了聊天半径,
GlobalChatEvent现在都会为 EssentialsX Chat 处理的每条聊天消息触发。(#6113) TranslatableException#getMessage现在再次返回纯文本,而非未解析的 MiniMessage 标签。(#6134)
如需查看完整的提交日志,请点击此处。
注意: 正在寻找附加组件?请在 Modrinth 上查看 EssentialsX 完整合集!
终于,🎉 EssentialsX 2.21.0 发布了!此版本支持 Minecraft 1.21.4 和"The Garden Awakens"更新内容,重构了整个插件的文本以初步支持带有 MiniMessage 的富文本组件,并包含一些新功能和错误修复!
感谢所有为本版本贡献代码的人员(其中许多人列在本文末尾),以及所有在 Crowdin 上贡献翻译的人员!
此外,特别感谢我们的社区成员,他们在 GitHub 和 MOSS 上帮助了无数人使用 EssentialsX,包括 @Evidentsinger14、@JasonHorkles、@ImDarkLaw、@Chew 等许多人。
EssentialsX 项目由社区驱动。如果您想帮助我们,可以通过以下方式贡献:
最后,向我们在 Patreon 和 GitHub Sponsors 上的支持者致以谢意!
特别感谢我们的 Hero tier 支持者:
- AKP
- @jharrison123
- @aternosorg
- @pebblehost
您的支持帮助我们继续花费大量空闲时间为所有人开发和改进 EssentialsX。如果您有多余的零钱,可以点击下方的按钮,通过一次性或每月承诺来支持 EssentialsX 项目:
支持的服务器版本
EssentialsX 官方支持 Paper 服务器软件。具体来说,EssentialsX 设计用于以下 Minecraft 版本:
- ✅
1.21.4- EssentialsX 积极为此版本开发并提供支持。 - ⚠️
1.8.8、1.9.4、1.10.2、1.11.2、1.12.2、1.13.2、1.14.4、1.15.2、1.16.5、1.17.1、1.18.2、1.19.4和1.20.6- 这些版本仍受支持,但不是我们的优先事项,可能会在未来的版本中停止支持。 - ⚠️ Spigot 仍受支持,但优先级较低,可能会在未来的版本中停止支持。
我们建议使用最新版本的 Paper。EssentialsX 包含许多需要 Paper 的重大改进,包括:
- Paper 的异步区块加载减少了玩家传送时的卡顿峰值。 CraftBukkit 和 Spigot 不支持插件的异步区块加载。
/anvil、/grindstone、/cartographytable、/loom、/smithingtable和/stonecutter仅在 Paper 上受支持。
CraftBukkit 和 Spigot 不支持这些功能所需的 API。- 1.12+ 版本中的
/recipe需要 Paper 以避免由 CraftBukkit 和 Spigot 引入的复制漏洞。 - 与 CraftBukkit 和 Spigot 相比,Paper 包含了无数的整体性能优化。
EssentialsX 不支持以下 Minecraft 版本或服务器软件:
- ℹ️ 尚不支持 Folia。 我们正在努力添加适当的 Folia 支持。 请勿尝试在 Folia 或其分支上使用当前版本的 EssentialsX - 您可能会丢失用户数据。
- 🛑 “超高性能”Paper 分支,包括 Akarin、Yatopia 及类似项目。
这些项目通常执行非标准行为,可能会破坏您的世界和已安装的插件。 - 🛑 Mohist - Mohist 项目已知存在可疑行为,过去曾诱骗用户删除官方 EssentialsX jar 文件并安装非官方构建版本。
我们无法保证非官方构建版本的 EssentialsX 的安全性或功能性;您应尽可能避免使用 Mohist。 - 🛑 其他 Forge/Bukkit 混合服务器,包括 Cauldron、Thermos、Magma、CatServer、Arclight - EssentialsX 是为 Bukkit API 构建的,而该 API 不能properly 支持模组。
对于运行 Minecraft Forge、NeoForge 或 Fabric 的模组服务器,您应该使用 FTB Essentials。 - 🛑
1.7.10或更低版本。
升级到 2.21.0
如果您是从 2.20.1 升级,可以保留当前的 EssentialsX 配置文件。但是,2.21.0 添加了一些您可能想要配置的新选项。请继续阅读以查看新配置选项列表。
从 2.20.0 或更早版本的 EssentialsX 升级?请参阅 之前的更新日志。
已知问题
即使 EssentialsX Spawn 覆盖了重生位置,Spigot 上的锚点充能仍会耗尽
在 CraftBukkit 和 Spigot 上,无论 respawn-at-anchor 设置如何,锚点充能都会耗尽,这是由于 CraftBukkit 中一个未修复的错误。此错误已在 Paper 中修复。
在 Spigot 上跨世界传送时飞行模式会被重置
在 Spigot 1.17.1 及更高版本上,无论 world-change-fly-reset 设置如何,玩家的飞行模式都会被重置,这是由于 vanilla 的行为变更。Paper 服务器已有针对此问题的修复方案。(#6012)
重要变更
Adventure 重构 (#4717)
EssentialsX 2.21.0 对我们的翻译系统进行了全面 overhaul,以支持聊天组件(Adventure/MiniMessage)。
这带来了每玩家区域设置翻译的支持,以及在我们的 messages.properties 文件中对 MiniMessage 的支持。
所有消息在此更新前后应保持几乎相同。未来的更新将为某些命令添加悬停和点击事件。
在此版本中,消息文件已从 plugins/Essentials/ 移动到 plugins/Essentials/messages/。升级到 2.21.0 时,任何自定义消息文件将自动转换并移动到新位置。
聊天:与其他聊天插件一起使用 Paper 事件 (#6033, #6050)
默认情况下,EssentialsX 2.21.0 现在使用来自 Paper 的现代 AsyncChatEvent,而不是 Bukkit 的旧版 AsyncPlayerChatEvent。这将使 EssentialsX 未来能够在聊天格式中支持富文本组件。
然而,如果您使用任何依赖旧版 AsyncPlayerChatEvent 的插件,在升级到 2.21.0 时可能会遇到兼容性问题。
目前,您可以通过在 config.yml 中将 chat.paper-chat-events 设置为 false 切换回旧版事件,但请注意,此配置选项并非 intended 长期使用,并可能在未来被移除。
您应尽量用支持 Paper 聊天事件的插件替换任何不兼容的插件。
新功能
EssentialsX 现在支持 1.21.4 和 The Garden Awakens 内容 (#5522, #5592, #5783, #5834, #5900, #5961, #5985)
EssentialsX 现在正式支持 Paper 和 Spigot 1.21.4,以及 The Garden Awakens 功能掉落的内容。
对 Minecraft 1.21.5 和 Spring to Life 的支持将在未来的补丁版本中添加。
新的 per-player-locale 设置。(#4717)
EssentialsX 现在可以用玩家的本族语言发送消息。
# EssentialsX 在发送消息时是否应使用玩家的语言而不是服务器的语言?
# 如果您希望服务器使用的语言与玩家不同,这非常有用。
# 例如,如果您的服务器设置为英语,而某位玩家说法语,您可以将此设置为 true,
# EssentialsX 将向该玩家发送法语消息,而在控制台中发送英语消息。
# 如果不知道玩家的语言,将使用服务器的语言。
per-player-locale: false
新的 message-colors 设置。(#4717)
现在您可以自定义 EssentialsX 的配色方案,而无需修改 messages.properties 文件。
# 更改 EssentialsX 消息中使用的默认主色和次级颜色。
# 某些消息可能使用自定义颜色,需要在相应的消息文件中进行编辑。
# 有关自定义消息的更多信息,请参阅 https://essentialsx.net/wiki/Locale.html
message-colors:
primary: '#ffaa00'
secondary: '#ff5555'
/sell 和出售标志的倍数 (#4770)
拥有特定权限的玩家现在可以获得可自定义的倍数,用于通过 /sell 或 [Sell] 标志出售物品的价值。倍数可以在 config.yml 中如下配置:
# 允许玩家通过 /sell 或出售标志出售物品时获得倍数。
# 您可以使用下面的 'default' 等级设置默认倍数。
# 要为不同的人授予不同的倍数,您需要在下面定义一个 'multiplier-rank'。
# 在下面创建 'multiplier-rank',并授予匹配的权限:essentials.sell.multiplier.<multiplier-rank>
sell-multipliers:
default: 1.0
double: 2.0
triple: 3.0
/mail 命令现在允许清除其他人的邮件。(#4878)
拥有 essentials.mail.clear.others 权限的玩家可以使用 /mail clear <player> 清除其他玩家的邮件,拥有 essentials.mail.clearall 权限的玩家可以使用 /mail clearall 清除所有用户的邮件。
/skull 命令现在可以从纹理 URL 给予头颅。(#5120)
您现在可以使用 /skull <texture> 给予带有纹理 URL 或 base64 编码纹理数据的头颅。
限制 /itemlore 的 lore 行数总数选项。(#4773)
您现在可以限制玩家使用 /itemlore 命令添加的 lore 行数。拥有 essentials.itemlore.bypass 权限的玩家将绕过此限制。
# 设置用户使用 /itemlore 命令可以设置的最大 lore 行数。
# 拥有 essentials.itemlore.bypass 权限的用户将能够绕过此限制。
max-itemlore-lines: 10
新的 socialspy-uses-displaynames 设置。(#5613)
您现在可以指定 EssentialX 在 socialspy 中是否应使用用户名而非昵称。
# social spy 是否应使用可能包含颜色的格式化显示名称。
# 如果为 false,social spy 将仅使用实际的玩家名称。
socialspy-uses-displaynames: true
随机传送的各种改进。(#4271, #5990)
随机传送方面有许多新增内容。包括 [RandomTeleport] 标志、从控制台运行 /tpr 的能力,以及以下新的配置选项:
# 如果配置,用户将在随机重生位置重生,而不是新手重生点。
random-spawn-location: "none"
# 如果配置,当用户死亡时,他们将在随机重生位置重生。
random-respawn-location: "none"
定义 /balancetop 的要求。(#5394)
服务器管理员现在可以定义玩家出现在 /balancetop 列表中必须满足的最低余额或游戏时间,使用以下 config.yml 选项:
# 玩家必须满足的要求才能使其名字显示在余额排行榜中。
# 游戏时间以秒为单位。
baltop-requirements:
minimum-balance: 0
minimum-playtime: 0
Discord:忽略某些角色的 {color} 和 {role} 占位符选项。(#5157)
您现在可以定义一个角色列表,这些角色将被 {color} 和 {role} 占位符忽略。
# 一个应由 {color} 和 {role} 占位符忽略的角色列表。
# 用于 Discord->MC 聊天格式。
discord-role-blacklist:
- "123456789012345678"
- "Members"
Discord:定义角色别名选项。(#5157)
您现在可以将角色名称替换为您想要的任何内容,用于 Discord 到 MC 的聊天中继。
# 角色别名允许您在 Discord->MC 聊天中继格式中将角色名称替换为其他内容。
# 如果您使用角色别名,请确保移除开头的 '#' 以允许读取此设置。
discord-roles-aliases:
# "123456789012345678": "&c&lAdmin"
# "Members": "Member"
其他新增内容
- 翻译已更新,包含来自 Crowdin 的最新社区贡献。
- 我们的功能提供者系统已完全重写。(#5087, #6081)
- 我们的依赖项和构建工具已更新到最新版本。(#5685, #5704)
- Kits 现在支持带有自定义模型数据的物品。(#5433)
- 没有
essentials.editsign.waxed.exempt权限时,无法再使用/editsign编辑涂蜡标志。(#5492) /pay命令现在支持千 (k)、百万 (m)、十亿 (b) 和万亿 (t) 的缩写。(#5457)/whois和/seen命令现在显示玩家是否在白名单中。(#5486)tpr.yml中的excluded-biomes设置现在支持自定义生物群系。(#5703)- 启用
jail-online-time选项后监禁离线玩家,现在会正确监禁玩家相应的时间。(#5701) /fireball命令可用于发射风弹。(#5951)/delhome命令现在支持*通配符。(#5919)- 您现在可以使用
/skull将头颅目录给予其他玩家。需要essentials.skull.spawn.others权限。(#5822, #6008) - 为
/alts添加了翻译键以自定义其输出。(#5595) /ess dump命令现在使用 pastes.dev。(#6011)- 聊天格式现在可以按类型(普通/问题/喊叫)分别自定义。(#5337)
- Discord: Discord 模块现在也支持 Paper 的聊天事件。(#5908)
- Discord:
/discord中的链接现在可点击。(#5934) - Discord:
server-start消息现在有一个{starttimeseconds}占位符以显示服务器启动时间。(#5686) - Spawn:
/spawn命令不再在传送发生前发送其消息。(#6025)
错误修复
修复了 2.20.1 及更早版本中的错误
- 解决了
/clearinventory的复制漏洞。(#5899, #5901) - 解决了交易标志的各种问题。(#5574, #5874, #6076)
/potion中现在使用正确的权限节点来处理药水。(#5552)- 玩家不能再
/ignore自己。(#5488) - 从 book.txt 文件给予的书籍不再产生无效书籍。(#4920)
- 自定义退出消息现在显示正确的在线玩家数量。(#5541)
- 修复了由注销命令引起的潜在内存泄漏。(#5572)
- 当尝试给予箭矢时,give 命令不再给予药水。(#5627)
- 旗帜图案不再在 kits 中被忽略。(#5723)
- 治疗标志现在考虑玩家的最大生命值属性。(#5752)
/eco give命令现在有更一致的配色方案。(#5738)/pay命令现在根据玩家的区域设置支持逗号/句点。(#5962)- 解决了启用
respawn-at-home-bed时重生逻辑的问题。(#5825) - 移除了命令预处理中的多余代码。(#5981)
- 跨世界传送时飞行再次得以保留。(#6012)
- 即使玩家拥有
essentials.keepinv,玩家战利品表现在也会掉落。(#6036) /book命令现在可以在 1.20+ 上再次锁定/解锁书籍。(#6064)- 过期的
/mail消息不再在加入时显示在警报中。(#6063) - AntiBuild: 摧毁末影水晶现在在 1.8.8 上受到保护。(#6009)
修复了 2.21.0 开发版本中的回归问题
以下来自 2.21.0 开发版本的错误已修复:
- 修复了 Adventure 重构带来的各种问题。(#5632, #5635, #5636, #5637, #5648, #5650, #5659, #5666, #5687, #5688, #5692, #5705, #5700, #5699, #5698, #5702, #5711, #5719, #5722, #5726, #5740, #5737, #5739, #5736, #5761, #5769, #5771, #5776, #5819, #5872, #5913, #5952, #5957, #5956, #5967, #5972, #5921, #6015, #6018, #6076)
- 修复了与 Spigot 不兼容的各种问题。(#5820, #5872, #5934, #5934)
/pay中的面额缩写现在被更严格地解析以防止捣乱。(#5638)- 首次安装 EssentialsX 时,如果没有现有的
tpr.yml文件,不再失败。(#6004) - 在 1.8.8 中尝试使用带有喷溅药水的 kit 不再导致错误。(#6047, #6055)
- 对于在目标世界没有飞行权限的人,飞行不再被保留。(#6065, #6079, #6079)
/baltop命令在某些条件下不再隐藏所有玩家。(#6074)- 现在为 1.21+ 选择了正确的 SpawnerBlockProvider。(#6080)
- 聊天: 修复了 Paper 聊天事件重构带来的各种问题。(#6060, #6067, #6075)
面向开发者的变更
同步传送 API 已被移除。
EssentialsX 2.18.0 用新的异步替代品替换了旧版的同步 Teleport、TimedTeleport、IUser#getTeleport 和 IJails#sendToJail(IUser, String) API,这些替代品支持 Paper 的异步区块加载。
旧版的同步传送 API 已经有一段时间不完全功能正常,在 2.21.0 中,它们现已被移除。
任何依赖这些的插件可能早已损坏,但这些插件将不再能与 2.21.0 编译或工作。
InvalidWorldException 已被弃用以待移除。(#5984)
此异常不再由 Essentials API 中的任何方法抛出,并将在未来版本中移除。请更新您的代码。
新事件
EssentialsX 2.21.0 引入了一个新事件:
- 当玩家通过
/helpop发送消息时,会触发HelpopMessageSentEvent(#5490)
新方法
- DiscordLink: 现在有一种方法可以获取 linked Discord 账户的玩家列表:
DiscordLinkService#getAllLinkedPlayers。(#5896)
如需完整的提交日志,请点击此处。
🎉 EssentialsX 2.20.1 现已发布,带来了 1.20.1 版本支持以及多项错误修复。
感谢所有为本版本贡献代码的开发者(其中许多人列在本发布说明的底部),同时也感谢所有在 Crowdin 上贡献翻译的朋友们!
此外,我们要特别感谢我们的社区成员,他们在 GitHub 和 MOSS 上帮助了无数人使用 EssentialsX,包括 @triagonal、@JasonHorkles、@Evidentsinger14、@ImDarkLaw、@Chew、@Laarryy 以及许多其他人。
EssentialsX 项目由社区驱动。如果您想帮助我们,可以通过以下方式贡献:
最后,向我们在 Patreon 和 GitHub Sponsors 上的支持者致以谢意!
特别感谢我们的 Hero 层级支持者:
- AKP
- Vestria MC
- @aternosorg
- @pebblehost
你们的支持使我们能够继续花费大量空闲时间来开发和改进 EssentialsX,造福所有人。如果您有余力,可以点击下方的按钮,通过一次性或每月捐款来支持 EssentialsX 项目:
支持的服务器版本
EssentialsX 官方支持 CraftBukkit、Spigot 和 Paper 服务器软件。具体而言,EssentialsX 旨在适用于以下 Minecraft 版本:
- ✅
1.19.4和1.20.1- EssentialsX 积极针对这些版本进行开发并提供支持。 - ⚠️
1.8.8、1.9.4、1.10.2、1.11.2、1.12.2、1.13.2、1.14.4、1.15.2、1.16.5、1.17.1和1.18.2- 这些版本仍受支持,但并非我们的优先事项,并可能在未来版本中被弃用。
我们建议使用最新版本的 Paper。EssentialsX 包含一些需要 Paper 的重大改进,包括:
- Paper 的异步区块加载减少了玩家传送时的延迟峰值。
CraftBukkit 和 Spigot 不支持插件进行的异步区块加载。 /anvil、/grindstone、/cartographytable、/loom、/smithingtable和/stonecutter仅在 Paper 上受支持。
CraftBukkit 和 Spigot 不支持这些功能所需的 API。- 1.12+ 版本中的
/recipe命令需要 Paper 以避免由 CraftBukkit 和 Spigot 引入的物品复制漏洞。 - 与 CraftBukkit 和 Spigot 相比,Paper 包含了无数的整体性能优化。
EssentialsX 不支持以下 Minecraft 版本或服务器软件:
- ℹ️ 尚不支持 Folia。 我们正在努力实现对 Folia 的proper支持。 请勿尝试在当前版本的 EssentialsX 或其分支上使用 Folia - 您可能会丢失用户数据。
- 🛑 “超高性能”Paper 分支,包括 Akarin、Yatopia 及类似项目。
这些项目通常执行非标准行为,可能会破坏您的世界和已安装的插件。 - 🛑 Mohist - Mohist 项目已知存在可疑行为,过去曾诱骗用户删除官方的 EssentialsX jar 文件并安装非官方构建版本。
我们无法保证非官方构建版本的 EssentialsX 的安全性或功能性;您应尽可能避免使用 Mohist。 - 🛑 其他 Forge/Bukkit 混合服务器,包括 Cauldron、Thermos、Magma、CatServer - EssentialsX 是为 Bukkit API 构建的,而该 API 并不能properly支持模组。
对于模组服务器,请使用 SpongeForge 和 Nucleus,或为 Forge 或 Fabric 选择替代模组。 - 🛑
1.7.10或更低版本。
升级到 2.20.1
如果您是从 2.20.0 升级,可以保留当前的 EssentialsX 配置文件。本版本中没有对配置文件进行任何新的更改。
如果是从 2.19.7 或更早版本的 EssentialsX 升级?请参阅 之前的更新日志。
已知问题
即使 EssentialsX Spawn 覆盖了重生位置,锚点电荷在 Spigot 上仍会耗尽
在 CraftBukkit 和 Spigot 上,无论 respawn-at-anchor 设置如何,锚点电荷都会耗尽,这是由于 CraftBukkit 中一个未修复的错误 所致。此错误已在 Paper 中修复。
在不同世界间传送时飞行模式会被重置。(#4325)
在 Minecraft 1.17.1 及更高版本中,由于原版行为的变化,无论 world-change-fly-reset 设置如何,玩家的飞行模式都会被重置。这将在未来的 Essentials 版本中修复。
新功能
EssentialsX 现在支持 1.20.1(#5389)
EssentialsX 现在正式支持 Paper、Spigot 和 CraftBukkit 1.20.1。
其他新增内容
- 翻译已根据来自 Crowdin 的最新社区贡献进行了更新。
- 我们的依赖项和构建工具已更新至最新版本。(#5383)
- 添加了通过
/recipe hand获取手中物品配方功能。(#5346)
错误修复
修复了自 2.20.0 及更早版本以来的错误
- 使用 LuckPerms 上下文时,新玩家加入不再抛出异常。(#5364)
- 使用
/toggleshout命令时,喊话和问题前缀现在可以正常工作。(#5367) - 套件占位符中的下划线在接收套件时不再被移除。(#5366)
- 配置文件中提供的无效十进制值现在会返回正确的默认值。(#5373)
- 对某些离线玩家执行操作时不再抛出异常。(#5375, #5466)
- /unlimited 用户数据值中的无效材料名称不再阻止用户数据加载。(#5438)
- 当在配置中将
currency-symbol-suffix设置为true时,交易招牌不再失效。(#5441) - enchant 命令现在支持副手持有的物品。(#5449)
- book 命令现在能正确处理副手持有的其他物品。(#5449)
- 修复了各种与离线玩家查询相关的问题。(#5462)
- AntiBuild:不再对 NPC 运行 AntiBuild 检查。(#5365)
- Discord:控制台消息和 Webhook 消息不再刷屏控制台或在刷屏后消失。(#4786)
- Discord:退出消息中的在线玩家数量占位符不再偏移一位。(#5440)
- Discord:控制台转发现在能正确过滤所有格式代码。(#5454)
- Discord Link:当数据未发生变化时,玩家链接数据不再保存到磁盘。(#5388)
- Discord Link:取消链接时,Discord 角色和 Minecraft 群组现在会立即移除。(#5388)
修复了自 2.20.1 开发版本以来的回归问题
以下来自 2.20.1 开发版本的错误已得到修复:
- 套件中的命令不再将空格替换为下划线。(#5377)
- 套件中的空行不再抛出异常。(#5378)
- 套件不再仅在命令中将空格替换为下划线。(#5379)
面向开发者的变更
新事件
EssentialsX 2.20.1 引入了一个新事件:
KitPreExpandItemsEvent在玩家即将接收套件物品之前触发。(#5407)
如需查看完整的提交日志,请点击此处。
经过我们贡献者数月的辛勤工作,EssentialsX 2.20.0 正式发布!🎉
本次更新包含全新的 Discord 链接插件、1.19.4 版本支持、若干新功能、错误修复以及内部改进。请继续阅读以查看所有新增内容!
感谢所有为本版本做出贡献的贡献者(名单列于本发布说明底部),同时也感谢所有在 Crowdin 上协助翻译的朋友们!
此外,特别感谢我们的社区成员,他们在 GitHub 和 MOSS 上无私地帮助了无数人使用 EssentialsX,包括 @triagonal、@JasonHorkles、@Evidentsinger14、@ImDarkLaw、@Chew、@Laarryy 以及许多其他人。
EssentialsX 项目由社区驱动。如果您想帮助我们,可以通过以下方式参与贡献:
最后,向我们在 Patreon 和 GitHub Sponsors 上的支持者致以谢意!
特别感谢我们的 Hero 层级支持者:
- AKP
- Vestria MC
- @aternosorg
- @pebblehost
您的支持使我们能够继续投入大量空闲时间来开发和改进 EssentialsX,造福所有人。如果您有多余的零钱,可以点击下方的按钮,通过一次性或每月捐赠来支持 EssentialsX 项目:
支持的服务器版本
EssentialsX 官方支持 CraftBukkit、Spigot 和 Paper 服务器软件。具体而言,EssentialsX 旨在适用于以下 Minecraft 版本:
-
✅
1.18.2和1.19.4- EssentialsX 积极针对这些版本进行开发并提供支持。 -
⚠️
1.8.8、1.9.4、1.10.2、1.11.2、1.12.2、1.13.2、1.14.4、1.15.2、1.16.5和1.17.1- 这些版本仍受支持,但并非我们的优先事项,未来版本中可能会停止支持。
我们建议使用最新版本的 Paper。EssentialsX 包含多项需要 Paper 才能生效的重大改进,包括:
- Paper 的异步区块加载减少了玩家传送时的卡顿峰值。
CraftBukkit 和 Spigot 不支持插件进行的异步区块加载。 /anvil、/grindstone、/cartographytable、/loom、/smithingtable、/stonecutter仅在 Paper 上受支持。
CraftBukkit 和 Spigot 不支持这些功能所需的 API。- 1.12+ 版本中的
/recipe命令需要 Paper,以避免由 CraftBukkit 和 Spigot 引入的物品复制漏洞。 - 相比 CraftBukkit 和 Spigot,Paper 包含了无数整体性能优化。
EssentialsX 不支持以下 Minecraft 版本或服务器软件:
- 🛑 “超高性能”Paper 分支,包括 Akarin、Yatopia 及类似项目。
这些项目通常表现出非标准行为,可能导致您的世界和已安装插件损坏。 - 🛑 Mohist - Mohist 项目已知存在可疑行为,过去曾诱骗用户删除官方 EssentialsX jar 文件并安装非官方构建版本。
我们无法保证非官方 EssentialsX 构建版本的安全性或功能性;您应尽可能避免使用 Mohist。 - 🛑 其他 Forge/Bukkit 混合服务器,包括 Cauldron、Thermos、Magma、CatServer - EssentialsX 是为 Bukkit API 构建的,而该 API 并不能properly 支持模组。
对于模组服务器,请使用 SpongeForge 和 Nucleus,或选择适用于 Forge 或 Fabric 的其他模组。 - 🛑
1.7.10或更低版本。
升级至 2.20.0
如果您是从 2.19.3 或更高版本升级,可以保留当前的 EssentialsX 配置文件。然而,2.20.0 添加了若干新选项,您可能希望进行配置,为此您需要更新配置文件或在现有配置中添加新设置。请继续阅读以查看变更列表和新配置选项。
从 2.19.2 或更早版本的 EssentialsX 升级?请参阅 之前的更新日志。
新模块:EssentialsX Discord Link!🎉
EssentialsX Discord 现在拥有 Discord Link 插件,可让用户轻松关联其 Discord 和 Minecraft 账户!您可以将 Discord 角色与 Vault 群组同步,并可选项要求玩家在游玩前必须关联 Discord,所有这一切都通过无冗余且易于理解的配置实现!
您可以在此处阅读更多关于 EssentialsX Discord Link 的信息并查看如何开始使用:此处。
已知问题
即使 EssentialsX Spawn 覆盖了重生位置,锚点充能在 Spigot 上仍会耗尽
在 CraftBukkit 和 Spigot 上,无论 respawn-at-anchor 设置如何,锚点充能都会耗尽,这是由于 CraftBukkit 中一个未修复的错误。此错误已在 Paper 中修复。
Minecraft: Trails and Tales 内容尚未在命令中受支持
EssentialsX 2.20.0 尚未支持 Minecraft: Trails and Tales 在 1.19.x 或 1.20 版本中的方块、物品和生物。因此,某些命令和功能(包括 /give、/spawnmob 和 /editsign)暂时无法识别新内容。
我们计划在 Minecraft 1.20 正式发布后推出 2.20.1 更新,以添加对新内容的支持。
重要变更
用户映射存储和缓存变更
EssentialsX 2.20 彻底重构了用户缓存系统,修复了与 Towny 等第三方插件相关的问题。
由于数据格式进行了大规模重构,一旦您升级到 2.20.0,您将无法将用户数据降级回旧版本。如果您未来可能希望降级,我们强烈建议在从 2.19.7 升级到 2.20.0 之前,完整备份您的 plugins/Essentials/usermap.csv 文件。
新功能
EssentialsX 现在支持 1.19.4
EssentialsX 现在正式支持 1.19.4 版本的 CraftBukkit、Spigot 和 Paper。
新 /renamehome 命令
您现在可以使用 /renamehome 更改现有家的名称。如果您拥有 essentials.renamehome.others 权限,还可以重命名其他玩家的家。
新 /bottom 命令
您现在可以使用 /bottom 传送到当前位置最低的 безопасн 地点。
Discord:新的 first-join 消息类型
新增一种 Minecraft -> Discord 消息类型,当玩家首次加入服务器时发送。
# 配置不同消息将发送到哪些 Discord 频道。
# 您可以使用上述列出的频道名称,或仅使用频道 ID。
# 如果使用了无效的频道,则将改用主频道。
#
# 若要禁用某条消息的显示,请将频道名称设为 'none'。
message-types:
...
# 当玩家首次加入 Minecraft 服务器时发送的加入消息。此类型将替代 join 类型。
first-join: primary
# 以下条目允许您自定义插件发送消息的格式。
# 每条消息都附有使用说明及可用的占位符。
messages:
...
# 这是当玩家首次加入 Minecraft 服务器时发送到 Discord 的消息。
# 此处可使用以下占位符:
# - {username}: 加入用户的名称
# - {displayname}: 加入用户的显示名称
# - {joinmessage}: 游戏中使用的完整默认加入消息
# - {online}: 在线玩家数量
# - {unique}: 曾经加入服务器的唯一玩家数量
# ... 此处也支持 PlaceholderAPI 占位符!
first-join: ":arrow_right: :first_place: {displayname} has joined the server for the first time!"
Discord:新的 local、question 和 shout 消息类型
为支持本地聊天、提问聊天和喊话聊天,新增了几种 Minecraft -> Discord 消息类型及配置选项。
# 是否使用 Essentials 聊天事件而非普通聊天事件。
# 这使您能够根据聊天类型(local、question、shout)进行过滤。
use-essentials-events: false
# 配置不同消息将发送到哪些 Discord 频道。
# 您可以使用上述列出的频道名称,或仅使用频道 ID。
# 如果使用了无效的频道,则将改用主频道。
#
# 若要禁用某条消息的显示,请将频道名称设为 'none'。
message-types:
...
# 当玩家在本地聊天中发言时发送的消息。
# 要使此功能生效,必须将 use-essentials-events 设置为 "true"。
local: none
# 当玩家在全局聊天中提问时发送的消息。
# 要使此功能生效,必须将 use-essentials-events 设置为 "true"。
question: primary
# 当玩家在全局聊天中发言时发送的消息。
# 要使此功能生效,必须将 use-essentials-events 设置为 "true"。
shout: primary
# 以下条目允许您自定义插件发送消息的格式。
# 每条消息都附有使用说明及可用的占位符。
messages:
...
# 这是用于在 Discord 中转接 Minecraft 本地聊天的消息。
# 此处可使用以下占位符:
# - {username}: 发送消息玩家的用户名
# - {displayname}: 发送消息玩家的显示名称(即其昵称)
# - {message}: 发送消息的内容
# - {world}: 发送消息玩家所在世界的名称
# - {prefix}: 发送消息玩家的前缀
# - {suffix}: 发送消息玩家的后缀
# ... 此处也支持 PlaceholderAPI 占位符!
mc-to-discord-local: "**[Local]** {displayname}: {message}"
# 这是用于在 Discord 中转接 Minecraft 聊天中提问的消息。
# 此处可使用以下占位符:
# - {username}: 发送消息玩家的用户名
# - {displayname}: 发送消息玩家的显示名称(即其昵称)
# - {message}: 发送消息的内容
# - {world}: 发送消息玩家所在世界的名称
# - {prefix}: 发送消息玩家的前缀
# - {suffix}: 发送消息玩家的后缀
# ... 此处也支持 PlaceholderAPI 占位符!
mc-to-discord-question: "**[Question]** {displayname}: {message}"
# 这是用于在 Discord 中转接 Minecraft 全局聊天的消息。
# 此处可使用以下占位符:
# - {username}: 发送消息玩家的用户名
# - {displayname}: 发送消息玩家的显示名称(即其昵称)
# - {message}: 发送消息的内容
# - {world}: 发送消息玩家所在世界的名称
# - {prefix}: 发送消息玩家的前缀
# - {suffix}: 发送消息玩家的后缀
# ... 此处也支持 PlaceholderAPI 占位符!
mc-to-discord-shout: "**[Shout]** {displayname}: {message}"
Discord:可配置的 Webhook 名称
您现在可以更改发送到 Discord 的消息的 Webhook 名称格式。
# 以下条目允许您自定义插件发送消息的格式。
# 每条消息都附有使用说明及可用的占位符。
messages:
...
# 这是在 Discord 中发送特定于玩家的消息时显示的机器人名称。
# 此处可使用以下占位符:
# - {username}: 发送消息玩家的用户名
# - {displayname}: 发送消息玩家的显示名称(即其昵称)
# - {world}: 发送消息玩家所在世界的名称
# - {prefix}: 发送消息玩家的前缀
# - {suffix}: 发送消息玩家的后缀
# - {botname}: Discord 机器人的名称
# ... 此处也支持 PlaceholderAPI 占位符!
mc-to-discord-name-format: "{botname}"
其他新增内容
- 翻译已更新,包含来自 Crowdin 的最新社区贡献。
- 为
/mail clear命令添加了标签补全功能。 - 添加了
essentials.nick.hideprefix权限,使拥有该权限的用户隐藏昵称前缀。 - 添加了每命令冷却时间权限:
essentials.commandcooldowns.bypass.<command name>。
错误修复
修复自 2.19.7 及更早版本的错误
/recipe命令中进一步修复了物品复制漏洞。- 修复了与 NPC 和监狱相关的各种性能问题。
/whois中的游戏时间统计不再溢出。- 修复了各种副手和库存相关问题。
- 控制台中的
/tppos命令现在支持坐标的双精度浮点数。 - 交易告示牌不再接受水瓶作为药水的有效交易物品。
- 当玩家最后位置未知时,
/tpoffline不再抛出异常。 - 潜声传感器不再检测到隐身玩家。
/top命令再次发送反馈信息。/editsign命令现在会调用SignChangeEvent事件。- 对离线玩家执行的命令在某些情况下不再抛出
NullPointerException。 - Discord:在某些情况下,控制台转发不再因
/ess reload而停止工作。 - Discord:在某些情况下,Webhook 不再在服务器关闭时导致挂起。
- Discord:翻译后的 Discord 命令描述现在会正确截断,以适应 Discord 的字符限制。
修复自 2.20.0 开发版本的回归问题
以下来自 2.20.0 开发版本的错误已修复:
- NPC 用户再次被正确添加到 UserMap 中。
- 拥有大量用户数据的服务器不再在启动时挂起数分钟。
/hat命令不再使用副手。/createkit命令在 1.8.8 版本中再次正常工作。- 向所有在线玩家发送邮件的功能再次正常运作。
- 用户映射现在会在一段时间后正确地将用户从缓存中移除。
- Discord:Webhook 名称不再因 Markdown 而被清理。
- Discord Link:
/linkDiscord 命令不再需要管理员权限。 - Discord Link:同步离线玩家时不再抛出
NullPointerException。
开发者变更
现在可以修改 DiscordRelayEvent 的查看者列表
DiscordRelayEvent 现在拥有 getViewers() 方法,返回一个可变的查看者列表,用于转发的消息。
Discord Link 模块 API
随着 Discord Link 模块的加入,现在提供了一个 API 服务,用于访问玩家已关联的 Discord 账户信息。您可以获取该实例并与 Discord 模块 API 配合使用,如下所示:
// 获取 EssentialsX Discord Link 的 API 服务
final DiscordLinkService linkApi = Bukkit.getServicesManager().load(DiscordLinkService.class);
final String discordId = linkApi.getDiscordId(player.getUniqueId());
if (discordId == null) {
// 该玩家未关联任何 Discord 账户。
return;
}
// 获取 EssentialsX Discord 的 API 服务,用于获取实际用户
final DiscordService discordApi = Bukkit.getServicesManager().load(DiscordService.class);
final InteractionMember member = discordApi.getMemberById(discordId).join();
final String userTag = member == null ? null : member.getTag();
新事件
EssentialsX 2.20.0 引入了若干新事件:
- 当玩家在全局聊天中发送消息时,触发
GlobalChatEvent。 - 当玩家在本地聊天中发送消息时,触发
LocalChatEvent。 - 当家被创建、更新或删除时,触发
HomeModifyEvent。
如需查看完整的提交日志,请点击此处。
EssentialsX 2.19.7 现已发布! 🎉 此版本修复了聊天及其他问题的多个漏洞。请继续阅读以查看所有变更!
感谢所有为本版本做出贡献的贡献者(他们均列在本发布说明的底部),以及所有在 Crowdin 上协助翻译的朋友们!
最后,衷心感谢我们的社区成员,他们在 GitHub 和 MOSS 上帮助了无数人,包括 @triagonal、@JasonHorkles、@Evidentsinger14、@Chew、@Laarryy 以及许多其他人。
此外,特别鸣谢我们在 Patreon、GitHub Sponsors 和 Ko-fi 上的支持者。特别感谢我们的 Hero 层级支持者:
- AKP
- Vestria MC
- @aternosorg
- @pebblehost
想在这里列出您的名字吗?您可以通过上述链接在 Patreon 或 GitHub 上加入我们的 Hero 层级!
您的支持帮助我们继续投入大量空闲时间来开发和改进 EssentialsX,造福所有人。如果您有多余的资金,可以点击下方的任一按钮来支持 EssentialsX 项目:
支持的服务器版本
EssentialsX 官方支持 CraftBukkit、Spigot 和 Paper 服务器软件。具体而言,EssentialsX 旨在适用于以下 Minecraft 版本:
- ✅
1.18.2和1.19.2- EssentialsX 积极针对这些版本进行开发并提供支持。 - ⚠️
1.8.8、1.9.4、1.10.2、1.11.2、1.12.2、1.13.2、1.14.4、1.15.2、1.16.5和1.17.1- 这些版本仍受支持,但并非我们的优先事项,未来版本中可能会停止支持。
我们建议使用最新版本的 Paper。EssentialsX 包含多项需要 Paper 的重大改进,包括:
- Paper 的异步区块加载减少了玩家传送时的卡顿峰值。 CraftBukkit 和 Spigot 不支持插件进行的异步区块加载。
/anvil、/grindstone、/cartographytable、/loom、/smithingtable、/stonecutter仅在 Paper 上受支持。 CraftBukkit 和 Spigot 不支持这些功能所需的 API。- 1.12+ 版本中的
/recipe命令需要 Paper 以避免由 CraftBukkit 和 Spigot 引入的物品复制漏洞。 - Paper 能正确显示 EssentialsX 控制台日志消息中的颜色,包括 EssentialsX Chat 的消息。
- 相比 CraftBukkit 和 Spigot,Paper 包含了无数的整体性能优化。
- Paper 支持所有为 CraftBukkit 和 Spigot 正确编写的插件。
EssentialsX 不支持以下 Minecraft 版本或服务器软件:
- 🛑 “超高性能”Paper 分支,包括 Akarin、Yatopia 及类似项目——这些项目通常表现出非标准行为,可能导致您的世界和已安装的插件损坏。
- 🛑 Mohist - Mohist 项目已知存在可疑行为,过去曾诱骗用户删除官方的 EssentialsX jar 文件并安装非官方构建版本。 我们无法保证非官方 EssentialsX 构建版本的安全性或功能性;您应尽可能避免使用 Mohist。
- 🛑 其他 Forge/Bukkit 混合服务器,包括 Cauldron、Thermos、Magma、CatServer - EssentialsX 是为 Bukkit API 构建的,而该 API 并不能properly 支持模组。对于模组服务器,请使用 SpongeForge 和 Nucleus,或使用 Forge 或 Fabric 的替代模组。
- 🛑
1.7.10或更低版本。
升级到 2.19.7
如果您是从 2.19.3 或更高版本升级,可以保留当前的 EssentialsX 配置文件。自该版本以来,配置没有任何更改。
从 2.19.2 或更旧版本的 EssentialsX 升级?请参阅 之前的更新变更日志。
已知问题
即使 EssentialsX Spawn 覆盖了重生位置,锚点充能在 Spigot 上仍会消耗
在 CraftBukkit 和 Spigot 上,无论 respawn-at-anchor 设置如何,锚点充能都会消耗,这是由于 CraftBukkit 中一个未修复的漏洞 所致。此漏洞已在 Paper 中修复。
在 1.19.1+ 版本中,原版签名聊天命令可能会显示 EssentialsX 格式
如果您使用任何发送安全聊天消息的原版命令(包括 /minecraft:msg 或 /minecraft:me),您可能会在这些消息中看到来自 EssentialsX Chat 的格式。这是由于 Spigot 中的一个实现怪癖,它强制插件将所有原版聊天命令的安全预览视为公共聊天消息进行处理。目前尚无已知的解决方法,但您可以继续正常使用 EssentialsX 和其他插件提供的未签名命令。
漏洞修复
修复了 2.19.6 及更早版本中的漏洞
- 使用
/sudo以另一用户身份发送聊天消息时,不再发送其预览消息。(#5062) - 为防止物品丢失,用户不能再对自己使用
/invsee。(#5061) /ess dump命令在 1.8.8 上不再报错。(#5067)- 各种通知(包括封禁/踢出/禁言和
/helpop)现在能在控制台中正确显示颜色。(#5075) - 拥有 RGB 权限但没有颜色权限的用户现在可以正确使用 RGB 颜色代码。(#5076)
- 备份脚本现在再次正确记录错误。(#5077)
/baltop命令现在可在命令方块中工作。(#5078)- 聊天: 本地聊天消息不再全局发送。(#5062)
修复了 2.19.7 开发版本中的回归问题
2.19.7 开发版本中没有已知的回归问题。
面向开发者的变更
本版本中没有 API 变更!
如需查看完整的提交日志,请点击此处。
EssentialsX 2.19.6 正式发布! 🎉 此版本包含少量新增功能、对 Minecraft 1.19.2 的支持以及若干错误修复。请继续阅读以查看所有变更!
感谢所有为本版本做出贡献的贡献者(名单列于本发布说明底部),以及所有在 Crowdin 上协助翻译的朋友们!
最后,衷心感谢我们的社区成员,他们在 GitHub 和 MOSS 上帮助了无数人,包括 @triagonal、@JasonHorkles、@Evidentsinger14、@Chew、@Laarryy 以及许多其他人。
此外,特别鸣谢我们在 Patreon、GitHub Sponsors 和 Ko-fi 上的支持者。特别感谢我们的 Hero 层级支持者:
- AKP
- @aternosorg
- @pebblehost
想在此处留名吗?您可以通过上述链接在 Patreon 或 GitHub 上加入我们的 Hero 层级!
您的支持使我们能够继续投入大量空闲时间来开发和改进 EssentialsX,造福所有人。如果您有余力,可以点击下方的任一按钮来支持 EssentialsX 项目:
支持的服务器版本
EssentialsX 官方支持 CraftBukkit、Spigot 和 Paper 服务器软件。具体而言,EssentialsX 专为以下 Minecraft 版本设计:
- ✅
1.18.2和1.19.2- EssentialsX 积极针对这些版本进行开发并提供支持。 - ⚠️
1.8.8、1.9.4、1.10.2、1.11.2、1.12.2、1.13.2、1.14.4、1.15.2、1.16.5和1.17.1- 这些版本仍受支持,但并非我们的优先事项,未来版本中可能会停止支持。
我们建议使用最新版本的 Paper。EssentialsX 包含多项需要 Paper 才能生效的重大改进,包括:
- Paper 的异步区块加载可减少玩家传送时的卡顿峰值。 CraftBukkit 和 Spigot 不支持插件进行的异步区块加载。
/anvil、/grindstone、/cartographytable、/loom、/smithingtable、/stonecutter仅在 Paper 上受支持。 CraftBukkit 和 Spigot 不支持这些命令所需的 API。- 1.12+ 版本中的
/recipe命令需要 Paper,以避免由 CraftBukkit 和 Spigot 引入的物品复制漏洞。 - Paper 能正确显示 EssentialsX 控制台日志消息中的颜色,包括 EssentialsX Chat 的消息。
- 相比 CraftBukkit 和 Spigot,Paper 包含了无数的整体性能优化。
- Paper 支持所有为 CraftBukkit 和 Spigot 正确编写的插件。
EssentialsX 不支持以下 Minecraft 版本或服务器软件:
- 🛑 “超高性能”版的 Paper 分支,包括 Akarin、Yatopia 及类似项目——这些项目通常执行非标准行为,可能导致您的世界和已安装插件损坏。
- 🛑 Mohist - Mohist 项目已知存在可疑行为,过去曾诱骗用户删除官方 EssentialsX jar 文件并安装非官方构建版本。 我们无法保证非官方 EssentialsX 构建版本的安全性或功能性;您应尽可能避免使用 Mohist。
- 🛑 其他 Forge/Bukkit 混合服务器,包括 Cauldron、Thermos、Magma、CatServer —— EssentialsX 是为 Bukkit API 构建的,而该 API 并不能properly 支持模组。对于模组服务器,请使用 SpongeForge 和 Nucleus,或选用适用于 Forge 或 Fabric 的替代模组。
- 🛑
1.7.10或更低版本。
升级到 2.19.6
如果您是从 2.19.3 或更高版本升级,可以保留当前的 EssentialsX 配置文件。自该版本以来,配置没有任何更改。
从 2.19.2 或更旧版本的 EssentialsX 升级?请参阅 之前的更新 changelogs。
重要变更:EssentialsX Chat 现在支持安全聊天 (#5030)
Minecraft 1.19.1 在客户端引入了新的玩家举报功能,允许玩家在游戏内将聊天消息举报给 Mojang。服务器现在拥有安全聊天系统,允许玩家预览并“签名”其聊天消息,从而确保玩家无法利用客户端模组伪造带有虚假消息的举报。如果游戏无法验证某条消息,则会显示黄色警告指示器。
自 2.19.6 起,EssentialsX Chat 支持聊天预览。一旦您在 server.properties 文件中启用聊天预览,EssentialsX Chat 将向玩家返回预览内容,以便他们能够发送安全的“已签名”消息,而不会出现黄色警告指示器。
玩家在加入服务器时需要接受预览。此外,他们需要在完成消息输入后等待一秒再按回车键,以确保消息被预览并签名。
已知问题
即使 EssentialsX Spawn 覆盖了重生位置,锚点电荷在 Spigot 上仍会耗尽
在 CraftBukkit 和 Spigot 上,无论 respawn-at-anchor 设置如何,锚点电荷都会耗尽,这是由于 CraftBukkit 中一个尚未修复的漏洞 所致。该漏洞已在 Paper 中修复。
在 1.19.1+ 版本中,原版已签名聊天命令可能显示 EssentialsX 格式
如果您使用任何发送安全聊天消息的原版命令(包括 /minecraft:msg 或 /minecraft:me),您可能会在这些消息中看到来自 EssentialsX Chat 的格式。这是由于 Spigot 实现中的一个怪癖,它强制插件将所有原版聊天命令的安全预览视为公共聊天消息进行处理。目前尚无已知解决方法,但您可以继续正常使用 EssentialsX 及其他插件提供的未签名命令。
新功能
EssentialsX 现在支持 1.19.2 (#4932, #4966, #5026, #5027, #5035)
EssentialsX 现已全面支持 Minecraft 1.19.2,包括在 /give、/item 和工具包中支持新的荒野更新物品、新生物,以及用于访问内部 CraftBukkit 代码的新 NMS/OBC 映射。
EssentialsX 在 1.19.2 服务器上安装时也不再发出警告。
其他新增内容
- 翻译已根据 Crowdin 上最新的社区贡献进行了更新。(#4823)
- Paper 上再次支持控制台颜色。(#4941)
- 减少了 LuckPerms 上下文计算过程中的用户查找次数。(#4869)
/playtime命令现在不再显示已隐身用户的进度。(#4918)
错误修复
修复了 2.19.4 及更早版本中的错误
/tpa命令在启用/tpauto on时不再对用户重复扣费。(#4862)- 仅拥有
essentials.nick.changecolors权限的用户现在可以使用/nick off命令。(#4876) TeleportWarmupEvent事件现在具有正确的传送者。(#4913)- 当
freeze-afk-players设置为true时,处于飞行状态的 AFK 用户将不再被传送到地面。(#4944) - 路径块和耕地块不再被视为固体方块。(#4915)
/give命令中minecraft:命名空间不再报错。(#4960)/unlimited命令在更改堆叠大小时不再填满用户背包。(#4877)- 在某些情况下,结束 AFK 状态的用户不再无法计入睡眠计数。(#4985)
- 即使在配置中禁用了
change-displayname,/nick命令现在也会显示您的昵称。(#4980) /ess dump不再将在 Paper 1.19 及以上版本中位于 Velocity 后面的服务器报告为离线模式。(#5052)- Discord: Paper 1.18.2+ 中的控制台消息再次正确过滤 ANSI 颜色代码。(#4942)
- Discord: 修复了与斜杠命令相关的众多 Discord 格式问题。(#4945)
- Discord: 配置中
allowed-roles部分定义的角色将不再解析为与其他角色 ID 同名的角色。(#4983) - Discord: 当用户处于隐身状态时,不再向 Discord 发送离开消息。(#5009)
修复了 2.19.5 和 2.19.6 开发版本中的回归问题
- Essentials 不再在 1.8.8 至 1.12.2 版本上加载失败。(#4975)
- 本地聊天允许您发送长度为 1 个字符的消息,而无需在公共聊天中发送。(#5041)
面向开发者的变更
此版本中没有 API 变更!
注意:2.19.5 在 Paper 上存在代理检测问题。2.19.6 的发布旨在解决此问题。
如需查看完整的提交日志,请点击此处。

Bukkit
Paper
Spigot

