- ◆ 游戏版本
- 1.12.2
- ◆ 服务端核心
- CatServer
- ◆ 前置/依赖
- PlaceholderAPI
YanFly — 高度自定义的飞行能量系统
YanFly 是一款适用于 Minecraft 1.12.2 生存服务器的飞行能量插件。
玩家开启飞行功能后,实际飞行、空中悬浮以及从高处落地都会消耗对应的飞行能量。插件支持世界黑白名单、无限数量的 VIP 容量权限组、玩家数据持久化以及 PlaceholderAPI 变量,可配合计分板、菜单和信息显示插件使用。
功能特色
- 支持生存模式与冒险模式飞行
- 默认每飞行一格消耗 1 点能量
- 按玩家实际三维飞行距离精确计算消耗
- 玩家悬浮不动时每秒消耗能量
- 支持从空中落地后按坠落高度扣除能量
- 能量耗尽后自动关闭飞行
- 支持世界白名单和黑名单
- 进入禁止世界时自动关闭飞行功能
- 支持自定义普通玩家的初始能量与最大能量
- 支持无限添加 VIP 容量权限组
- 玩家拥有多个容量权限时自动采用最高上限
- 永久记录玩家的累计飞行距离
- 自动保存玩家能量与飞行状态
- 支持自定义中文提示消息
- 支持 PlaceholderAPI 变量
- 支持指令 Tab 补全
- 创造模式和旁观模式默认不消耗能量
能量消耗方式
按飞行距离消耗
普通模式下,插件会根据玩家实际飞行的三维距离扣除能量。
energy:
movement-cost-per-block: 1.0
默认数值为 1.0,表示玩家每飞行一格消耗 1 点能量。该数值可以自由调整,也支持小数。
插件会累计玩家每次移动产生的小数距离,不会因为移动事件频繁触发而重复计算或丢失距离。
悬浮消耗
当玩家处于实际飞行状态,但基本没有移动时,插件会每秒扣除一次悬浮能量。
energy:
hover-cost-per-second: 1.0
hover-movement-threshold: 0.05
hover-movement-threshold 用于过滤客户端产生的轻微位置抖动。玩家一秒内的移动距离没有超过该数值时,会被判定为悬浮。
纯时间消耗模式
如果不想按照飞行距离计算,也可以开启纯时间消耗模式:
energy:
time-only-mode: true
flying-cost-per-second: 1.0
开启后,玩家每飞行一秒都会扣除固定能量,不再使用飞行距离消耗和悬浮消耗设置。
坠落消耗
玩家从空中落地时,可以根据有效坠落高度扣除能量。
fall:
enabled: true
safe-height: 3.0
cost-per-block: 1.0
计算方式:
能量消耗 = max(0, 坠落高度 - 安全高度) × 每格消耗
例如玩家从 10 格高度落下,安全高度为 3 格,每格消耗为 1,则落地后扣除 7 点能量。
正常传送、重生以及切换世界不会被错误计算为飞行距离或坠落距离。玩家飞行下降的距离和关闭飞行后的自由落体距离也不会重复扣除。
世界限制
YanFly 支持黑名单和白名单两种世界限制模式。
worlds:
mode: BLACKLIST
list:
- world_nether
- world_the_end
BLACKLIST:禁止在列表中的世界使用飞行能量功能。WHITELIST:只允许在列表中的世界使用飞行能量功能。
玩家进入禁止世界后,YanFly 会立即关闭其飞行状态和飞行能量功能。离开禁止世界后不会自动恢复,需要玩家重新使用 /yfly 开启。
拥有 yanfly.world.bypass 权限的玩家可以绕过世界限制。
默认能量上限
没有任何容量权限的普通玩家使用默认最大能量。
energy:
default: 1000.0
maximum: 1000.0
default:新玩家首次生成数据时拥有的初始能量。maximum:没有容量权限的普通玩家最大能量。
VIP 容量权限
插件支持添加任意数量的容量权限组,每个权限都可以单独设置最大能量。
energy:
capacity-groups:
vip:
permission: yanfly.capacity.vip
maximum: 2000.0
svip:
permission: yanfly.capacity.svip
maximum: 5000.0
custom:
permission: server.fly.custom
maximum: 10000.0
分组名称、权限节点和最大能量都可以自由修改,也可以继续添加任意数量的分组。
如果玩家同时拥有多个容量权限,插件会自动采用最大能量最高的容量组。玩家失去容量权限后,超过新上限的当前能量会自动降低到新的最大能量。
玩家指令
| 指令 | 说明 |
|---|---|
/yfly |
切换飞行能量功能 |
/yfly on |
开启飞行能量功能 |
/yfly off |
关闭飞行能量功能 |
/yfly status |
查看当前能量、最大能量、飞行状态和累计距离 |
完整指令 /yanfly 与快捷指令 /yfly 的功能相同。
管理员指令
| 指令 | 说明 |
|---|---|
/yfly admin set <玩家> <数量> |
设置玩家当前能量 |
/yfly admin add <玩家> <数量> |
增加玩家当前能量 |
/yfly admin take <玩家> <数量> |
扣除玩家当前能量 |
/yfly admin resetdistance <玩家> |
重置玩家累计飞行距离 |
/yfly reload |
重新加载配置文件和语言文件 |
管理员设置或增加的能量不会超过目标玩家当前权限对应的最大能量。
权限节点
| 权限 | 说明 | 默认拥有者 |
|---|---|---|
yanfly.use |
使用和切换 YanFly 飞行功能 | 所有玩家 |
yanfly.status |
查看自己的飞行能量状态 | 所有玩家 |
yanfly.admin |
管理玩家能量和累计飞行距离 | OP |
yanfly.reload |
重新加载插件配置 | OP |
yanfly.world.bypass |
绕过世界黑白名单限制 | OP |
yanfly.energy.bypass |
飞行、悬浮和坠落时不消耗能量 | OP |
yanfly.capacity.vip |
默认示例:最大能量 2000 | 无 |
yanfly.capacity.svip |
默认示例:最大能量 5000 | 无 |
容量权限节点由配置文件动态定义,不强制使用 yanfly.capacity. 前缀。例如将权限配置为 server.fly.legend 后,只需要通过权限插件授予玩家 server.fly.legend 即可。
PlaceholderAPI 变量
安装 PlaceholderAPI 后可以使用以下变量:
| 变量 | 说明 |
|---|---|
%yanfly_energy% |
玩家当前能量 |
%yanfly_max_energy% |
根据玩家容量权限动态计算的最大能量 |
%yanfly_fly_enabled% |
玩家是否开启 YanFly 飞行功能 |
%yanfly_is_flying% |
玩家当前是否真的处于飞行状态 |
%yanfly_total_distance% |
玩家永久累计飞行距离 |
fly_enabled 表示插件的飞行功能是否已经开启,is_flying 表示玩家此刻是否真的正在空中飞行。
安装方法
- 将
YanFly-1.2.0.jar放入服务器的plugins文件夹。 - 如果需要使用变量,请安装 PlaceholderAPI。
- 启动或重启服务器,等待插件生成配置文件。
- 根据服务器需要修改
plugins/YanFly/config.yml。 - 修改完成后重启服务器,或使用
/yfly reload重新加载配置。