- 版权类型
- 原创
- 插件中文名称
- 魔法飞行日
- 插件英文名称
- MagicFlyDay
- 原帖地址
- #
- 支持的核心(服务端)
- Paper
- Purpur
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 26.x
- 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
[MD]
# MagicFlyDay 魔法飞行日插件
> 每周指定日期开放飞行 · 时间段 · 时长配额 · 权限分层
**作者** Aisen | **联系 QQ** 1797950 | **插件交流群** 974349582
原创玩法、功能扩展、插件定制,欢迎联系 QQ 1797950 洽谈。

---
## 简介
MagicFlyDay 是一款面向生存/RPG 服的飞行日插件。每周哪几天开放飞行、每天能飞多久、哪个组哪天能飞,全部可配。
适合做**周末福利**、**晚间特权**、**会员差异化**。
> 纯 Bukkit API 开发,兼容 1.8.8 ~ 1.21.x / 26.x,无需前置、无授权验证。
---
## 功能特性
- **飞行日** — 周一 ~ 周日自由勾选
- **假日日期** — 指定日期(如节日)单独开放/关闭
- **时间段** — 全局统一时段,或单日单独设置(支持跨天)
- **时长配额** — 每天可飞 N 分钟,用完自动收回
- **权限分层** — 不同组不同星期、不同配额
- **开始/结束播报** — 连续飞行日不打断
- **世界白名单** — 仅指定世界可开飞行
- **PAPI 变量** — 状态/剩余时长对外暴露
- **颜色** — 支持 `&` 色码、`&#RRGGBB`、`<#RRGGBB>`
---
## 命令
- `/flyd` — 开启/关闭飞行 — 权限 `magicflyday.use`
- `/mfd` — 查看帮助
- `/mfd status` — 查看今日状态 — 权限 `magicflyday.use`
- `/mfd reload` — 重载配置 — 权限 `magicflyday.reload`
> 别名:`/magicflyday`(等同 `/mfd`)
---
## 权限
- `magicflyday.use` — 默认**不给**,需手动授权
- `magicflyday.reload` — 默认 OP
### 权限分层(可选)
- `magicflyday.days.monday` ~ `sunday` — 覆盖可飞星期
- `magicflyday.quota.30` / `60` / `120` — 覆盖每日配额(分钟)
- `magicflyday.quota.unlimited` — 不限时长
> 优先级:指定日期 `date-fly-days` > 权限星期 > 配置 `fly-days`
### 示例(LuckPerms)
```
# vip:周六周日可飞,每天 2 小时
/lp group vip permission set magicflyday.use true
/lp group vip permission set magicflyday.days.saturday true
/lp group vip permission set magicflyday.days.sunday true
/lp group vip permission set magicflyday.quota.120 true
# svip:不限时长
/lp group svip permission set magicflyday.quota.unlimited true
```
---
## PlaceholderAPI 变量
- `%magicflyday_can_fly%` — 现在能不能飞
- `%magicflyday_is_flyday%` — 今天是不是飞行日
- `%magicflyday_in_time%` — 是否在时间段内
- `%magicflyday_flying%` — 是否已开启飞行
- `%magicflyday_time_left%` — 剩余时长(分钟)
- `%magicflyday_quota%` — 每日配额(分钟)
- `%magicflyday_today%` — 今天星期
- `%magicflyday_status%` — 状态文案
---
## 配置示例
完整配置见插件生成的 `plugins/MagicFlyDay/config.yml`,注释齐全。
```yaml
fly-days:
saturday: true
sunday: true
date-fly-days:
"2026-01-01": true
day-times:
saturday:
start: "18:00"
end: "22:00"
options:
enable-worlds:
- world
cancel-on-world-change: true
time:
enable: false
start: "00:00"
end: "23:59"
quota:
enable: true
minutes: 60
levels: [30, 60, 120, 180, 360]
announce:
enable: true
remind-before: 15
```
> 播报说明:周六+周日都是飞行日时,只算一段,中间不打断。
---
## 安装说明
1. 下载 `MagicFlyDay-2.0.1.jar`,放入 `plugins/`
2. 启动服务器,自动生成 `plugins/MagicFlyDay/config.yml`
3. 配置飞行日 / 日期 / 时间段 / 配额
4. 给玩家授权 `magicflyday.use`
5. 执行 `/mfd reload` 或重启服务器
---
## 兼容性
- **游戏版本** — 1.8.8 ~ 1.21.x / 26.x(hex 颜色建议 1.16+)
- **服务端** — Paper / Purpur / Spigot
- **Java** — 8+
- **前置依赖** — 无
- **可选依赖** — PlaceholderAPI
---
## 常见问题
**Q:配额怎么算?**
开启飞行后开始计时,关闭则暂停。退出自动保存,跨天清零。
**Q:连续两天飞行日怎么播报?**
只算一段,中间不打断。
**Q:权限分层和配置冲突?**
有 `magicflyday.days.*` 任意节点则按权限算星期。`date-fly-days` 最高优先。
**Q:颜色怎么写?**
`&f`、`D87FF`、`<#5D87FF>` 都可以,hex 建议 1.16+。
**Q:从 1.0 升级?**
配置不兼容,删旧 `config.yml` 重新生成再填。
---
感谢使用,欢迎反馈建议!
[/MD]