简介
OldCombatMechanics (OCM) 是一款由 kernitus 和 Rayzr522 开发的免费开源插件,适用于 Spigot 和 Paper 服务器。它允许你精细调整 Minecraft 的战斗、移动和物品平衡,让你能够混合 1.8 版本的流畅手感与现代版本的功能,并且可以按世界或按玩家进行配置,而不会破坏你的服务器。
💡为什么选择 OCM
- 模块化:仅启用你需要的功能,例如冷却、工具伤害、击退、盾牌、药水、攻击距离、音效等。
- 高性能:仅在需要时启用轻量级监听器;反射查询会被缓存,并尽可能共享和减少重复任务,以在高负载的 PvP 服务器上保持较低的 Tick 时间。
- 模式集:为不同的世界或玩家设置不同的规则,非常适合混合 PvP/PvE、小游戏或决斗场景。
- 向后兼容:支持 Java 8+ 和 Minecraft 1.9 至最新版本;能与 PlaceholderAPI 和 PacketEvents 无缝集成。
- 经过测试:每次构建都会在多个版本的真实 Paper 服务器上运行集成测试。
- 完全免费:完全开源,仅包含可选的 bStats 基础遥测,没有付费门槛。
🔧快速开始
- 将插件 JAR 文件放入服务器的
plugins/ 文件夹(需要 Spigot 或 Paper 1.9+ 衍生版本)。 - 重启服务器,然后编辑
config.yml 来选择你的模块和模式集。 - 使用
/ocm reload 命令立即应用更改。 - 玩家可以通过
/ocm modeset <名称> 来选择自己的规则集。
[⚑] 模式集
模式集是按玩家或按世界的预设,决定了哪些功能处于活动状态。每个世界都有一个允许的模式集列表和一个默认模式集。
例如,你可以让玩家在竞技场世界中选择 1.8 风格的 PvP 规则,同时在生存世界保持原版规则。
[⚙] 可配置功能
功能按模块分组,可以单独配置和禁用。禁用的模块不会对服务器性能产生任何影响。
战斗 ⚔
调整时机、伤害和攻击距离。
- 攻击冷却:调整或移除 1.9+ 的攻击冷却
- 攻击频率:设置全局攻击延迟
- 工具伤害:使用 1.9 版本前的武器伤害值
- 攻击距离 (Paper 1.21.11+):1.8 风格的攻击距离
- 暴击:控制暴击伤害倍率
- 玩家生命恢复:调整生命恢复速率
盔甲 ❖
平衡防御和耐久消耗。
- 盔甲强度:调整盔甲提供的保护值
- 盔甲耐久:改变耐久度损耗速度
剑与盾 ⚔
控制格挡和横扫攻击行为。
- 剑格挡:恢复旧版的右键格挡功能;在 Paper 1.21.2+ 上,我们还通过消耗品组件添加了原生的剑格挡动画
- 盾牌伤害减免:调整盾牌提供的保护比例
- 剑横扫攻击:启用或禁用横扫攻击
- 剑横扫粒子效果:显示或隐藏横扫攻击的视觉效果
击退 ➜
根据不同来源调整击退效果。
- 玩家击退:调整 PvP 击退
- 钓鱼竿击退:调整钓鱼竿的击退效果
- 钓鱼竿速度:调整拉拽速度
- 抛射物击退:调整箭矢和其他抛射物的击退
金苹果与药水 ✚
调整消耗品的强度。
- 金苹果合成与效果:附魔金苹果和普通金苹果的效果
- 药水效果与持续时间:旧版药水数值
- 紫颂果:传送行为和范围
新功能禁用 ✖
关闭后续版本添加的机制。
- 物品合成:阻止特定的合成配方
- 副手:禁用副手使用
- 新攻击音效:静音新的攻击挥动音效
- 末影珍珠冷却:启用或移除冷却时间
- 酿造台燃料:改变燃料消耗
- 燃烧延迟:调整着火后的燃烧延迟
[✅] 兼容性与测试
- OCM 目标支持 Spigot 1.9+,可在 Java 8 及以上版本运行。
- 我们坚持使用 Spigot/Paper API 以确保向前兼容性;仅在必要时使用 NMS/反射。
- 每次构建都会启动多个版本的真实 Paper 服务器进行集成测试,以验证行为。
- 大多数插件都能与 OCM 良好兼容。经过明确测试的集成包括 PlaceholderAPI(详见 Wiki)。
[✎] 许可证
- GitHub 仓库中的源代码遵循 Mozilla 公共许可证 2.0 (MPL-2.0)。
- 预构建的 JAR 文件捆绑了 PacketEvents (GPLv3)。由于包含了此依赖项,这些二进制分发文件遵循 GPLv3 条款。
- 如果你构建了一个不包含 PacketEvents 的 JAR 文件,你可以根据 MPL-2.0 的条款分发该构建版本。
[⚡] 开发版本
通常,某个特定的错误修复或功能已经实现,但 OCM 的新版本尚未发布。你可以在 Hangar (Snapshot 频道) 找到插件的最新版本。
✨贡献
如果你有兴趣贡献代码,请先查看此页面:CONTRIBUTING.md
⭐其他信息
本插件使用 bStats 收集匿名统计数据。你可以在 bStats 插件文件夹中禁用它。
欢迎留下评论,但问题报告和功能建议将仅在 GitHub 上被考虑。