## 🌸 FloralSMP 插件
一个由 **Abusefully** 创建的强大 Bukkit/Spigot 插件,将简单的花朵(以及蘑菇!)变成独特的魔法能力。 每次最多装备两朵“花朵”,以获得被动加成或释放壮观的激活力量。
---
### 📦 安装
1. **下载** 编译后的 JAR 文件,并将其放入服务器的 `plugins/` 文件夹中。
2. **重启** 或 **重新加载** 服务器。
3. 服务器启动时,插件将自动注册其命令、事件监听器,并开始其后台任务(动作栏更新器、被动效果施加器、清理例程)。
---
### ⚙️ 核心概念
- **花朵类型**
在 `initializeFlowers()` 中定义。 每种花朵都有:
- 一个独特的 **名称** 和 **图标** (`Material`)
- **显示名称** & **lore**(鼠标悬停时显示)
- 一种 **能力类型**:
- **PASSIVE** → 始终开启 (`INFINITE_DURATION` 药水效果或自动增强)
- **ACTIVE** → 通过潜行点击触发 (`triggerActiveAbility()`),具有单独的冷却时间
- **冷却时间** (毫秒),可选 **药水效果**,**放大器**,**值**(例如,治疗 %),以及—如果“独特”—则需要一个 Minecraft **成就**
- **玩家数据** (`PlayerFlowerData`)
跟踪装备的花朵 (`flower1`, `flower2`),每朵花朵的冷却计时器,以及特殊能力的标志(例如,催眠状态,伪装)。 存储速率限制时间戳和飞行/皮肤的原始状态。
- **所有权**
(与成就相关的)独特的花朵每次只能存在一次。 所有权存储在 `flowerOwners` 中,并在死亡或掉落时释放。
- **清理例程**
每隔 24 小时异步地,在 7 天后清除离线玩家的数据,并释放孤立的独特花朵所有权。
---
### ✨ 花朵能力
- **风之花** (ACTIVE)
• 将自己向上发射
• 白色螺旋 + 云/烟花粒子
• 25 秒冷却时间
• **解锁**: `minecraft:adventure/sleep_in_bed`
- **催眠蘑菇** (ACTIVE)
• 使附近持有可编写书籍的玩家“签名”并掉落书籍,并附带击退效果
• 60 秒冷却时间
• **解锁**: `minecraft:story/enchant_item`
- **暗影花** (ACTIVE)
• 隐身 + 飞行 15 秒
• 深色烟雾/法术粒子
• 180 秒冷却时间
• **解锁**: `minecraft:nether/get_wither_skull`
- **传送花** (ACTIVE)
• 传送到目标方块(射线达到 100 个方块)
• 紫色传送门/龙息效果
• 45 秒冷却时间
• **解锁**: `minecraft:end/enter_end_gateway`
- **法师花** (ACTIVE)
• 在光标处召唤闪电(最多 50 个方块)
• 附魔命中和暴击效果
• 20 秒冷却时间
• **解锁**: `minecraft:adventure/lightning_rod_with_villager_no_fire`
- **伪装花** (ACTIVE)
• 伪装自己(以及附近的盟友)为“未知”(Steve 皮肤)180 秒
• 5 分钟冷却时间
• **解锁**: `minecraft:nether/find_fortress`
- **力量玫瑰** (PASSIVE)
• 力量 I 加成(无限)
• **解锁**: 无
- **战士花** (PASSIVE)
• 力量 II 加成(无限)
• **解锁**: `minecraft:adventure/kill_all_mobs`
- **速度花** (PASSIVE)
• 速度 III 加成(无限)
• **解锁**: `minecraft:story/deflect_arrow`
- **吸血花** (PASSIVE)
• 治疗 30% 的近战伤害,并带有心脏/血液粒子
• **解锁**: `minecraft:story/enter_the_nether`
- **效果花** (PASSIVE)
• 将 **所有** 药水效果的放大器翻倍(上限为 amp 10)以及新应用的药水效果
• **解锁**: `minecraft:nether/all_potions`
> _被动效果在登录和插件重新加载时通过计划的更新器 (重新) 应用._
---
### 🎮 命令 & 权限
- `/floral help` (`floral.use`)
显示游戏内使用指南。
- `/floral list` (`floral.use`)
列出所有花朵,它们的解锁以及当前的所有权状态。
- `/floral bypass` (`floral.bypass`)
切换激活能力冷却时间绕过(仅限自己)。
- `/floral give ` (`floral.admin`)
将任何花朵物品授予玩家(独特的花朵仅在未拥有时)。
- `/floral reload` (`floral.admin`)
重新加载花朵定义并重新将被动效果应用于在线玩家。
- `/unequip ` (`floral.use`)
取消装备一个花朵插槽,并将该物品返回到您的背包中。
### 🙏 鸣谢
- **作者**: Abusefully