
EcoTale 随机奖励
每日随机奖励板 — 玩家每天可挑选一个神秘方块,赢取随机奖品。完全由管理员配置。
查看大图🎲EcoTale RandomReward
每日神秘面板 · 权重战利品 · 管理员GUI
为Hytale服务器提供引人入胜的每日奖励小游戏。
概述
EcoTale RandomReward 为你的服务器添加了一个每日神秘面板 —— 一个包含隐藏方格的网格,玩家每天可以选择一个格子来获得随机奖励。奖励从具有5个稀有度等级的权重战利品池中抽取。所有内容均可通过JSON或游戏内管理员GUI完全配置,无需重启服务器。
功能
神秘瓷砖面板
- 可配置的网格大小(最大6×6)
- 每天一次选择 —— 玩家选择一个神秘瓷砖
- 带有稀有度颜色反馈的动画揭示效果
- 每日首次登录时自动打开GUI
- 最低在线时间要求(防滥用)
权重战利品系统
- 4种奖励类型:硬币、经验、物品、混合
- 每个条目的概率权重(越高越常见)
- 5个稀有度等级:普通、罕见、稀有、史诗、传说
- UI中按稀有度颜色编码
- 混合奖励组合了硬币 + 经验 + 物品
游戏内管理员GUI
- 完整的奖励池编辑器 —— 添加、编辑、删除条目
- 直接文本输入名称、概率、硬币、经验值
- 类型和稀有度循环按钮
- 通过可搜索下拉菜单选择物品(所有服务器物品)
- 网格大小、语言、调试模式设置
- 无需离开游戏即可保存并重新加载配置
软依赖
- EcotaleAPI —— 硬币存入(可选)
- RPG Leveling —— 经验集成(可选)
- Endless Leveling —— 经验集成(可选)
- LuckPerms —— 权限解析(可选)
- 缺少任何依赖时都会优雅降级
其他
- 多语言 —— 内置英语、俄语、德语、西班牙语、法语、葡萄牙语
- 玩家数据 —— 总领取次数、上次奖励、今日已领取状态
- JSON存储 —— 每个玩家独立文件,自动保存
- 权限系统 —— 三层解析:LuckPerms → HyperPerms → permissions.json 后备
项目结构
EcoTaleRandomReward/
├── src/main/java/com/crystalrealm/ecotalerandomreward/
│ ├── EcoTaleRandomRewardPlugin.java — 插件生命周期与事件注册
│ ├── commands/
│ │ └── RandomRewardCommandCollection.java — /randomreward 命令树
│ ├── config/
│ │ ├── ConfigManager.java — JSON配置加载/保存
│ │ └── RandomRewardConfig.java — 配置POJO
│ ├── gui/
│ │ ├── AdminRewardGui.java — 管理员面板(奖励编辑器 + 设置)
│ │ ├── DailyRewardGui.java — 面向玩家的神秘面板
│ │ ├── PageOpenHelper.java — ECS页面打开工具
│ │ └── ReflectiveCodecBuilder.java — 通过反射构建UI编解码器
│ ├── lang/
│ │ └── LangManager.java — 支持每个玩家语言设置的国际化
│ ├── model/
│ │ └── PlayerRewardData.java — 每个玩家的持久数据
│ ├── provider/
│ │ ├── EconomyBridge.java — 基于反射的经济适配器
│ │ └── leveling/
│ │ ├── LevelProvider.java — 等级提供者接口
│ │ ├── LevelBridge.java — 自动检测提供者路由
│ │ ├── RPGLevelingProvider.java — Zuxaw RPG Leveling 适配器
│ │ └── EndlessLevelingProvider.java — Airijko EndlessLeveling 适配器
│ ├── reward/
│ │ └── RewardService.java — 随机选择与奖励发放
│ ├── storage/
│ │ ├── JsonRewardStorage.java — 每个玩家的JSON持久化
│ │ └── RewardStorage.java — 存储接口
│ └── util/
│ ├── MessageUtil.java — 聊天消息工具类
│ ├── MiniMessageParser.java — MiniMessage格式化
│ ├── PermissionHelper.java — 三层权限解析
│ └── PluginLogger.java — 结构化日志
├── src/main/resources/
│ ├── default-config.json — 默认配置(13个奖励)
│ ├── manifest.json — Hytale插件清单
│ └── lang/
│ ├── en.json — 英语
│ ├── ru.json — 俄语
│ ├── de.json — 德语
│ ├── es.json — 西班牙语
│ ├── fr.json — 法语
│ └── pt_br.json — 葡萄牙语(巴西)
└── src/stubs/java/ — Hytale API 编译时存根
命令
| 命令 | 权限 | 描述 |
|---|---|---|
/randomreward |
ecotalerandomreward.use |
打开神秘面板GUI |
/randomreward open |
ecotalerandomreward.use |
打开神秘面板GUI |
/randomreward pick |
ecotalerandomreward.use |
选择一个随机瓷砖(命令行) |
/randomreward info |
ecotalerandomreward.use |
查看你的奖励统计 |
/randomreward admin |
ecotalerandomreward.admin |
打开管理员GUI |
/randomreward reload |
ecotalerandomreward.admin |
重新加载配置 |
/randomreward langen |
ecotalerandomreward.use |
切换到英语 |
/randomreward langru |
ecotalerandomreward.use |
切换到俄语 |
/randomreward help |
ecotalerandomreward.use |
命令参考 |
权限
| 权限 | 描述 | 默认 |
|---|---|---|
ecotalerandomreward.use |
面板访问、选择、信息、语言 | 所有玩家 |
ecotalerandomreward.admin |
管理员GUI、重载 | OP |
依赖
| 插件 | 类型 | 用途 |
|---|---|---|
| Ecotale ≥1.0.0 | 必需 | 核心服务器插件 |
| EcotaleAPI | 可选 | 经济集成(硬币奖励) |
| RPG Leveling | 可选 | 经验奖励集成 |
| Endless Leveling | 可选 | 经验奖励集成 |
| LuckPerms | 可选 | 基于组的权限解析 |
所有可选的API均通过反射访问 —— 插件没有它们也能运行。
安装
- 将
EcoTaleRandomReward-1.0.0.jar复制到服务器的Mods/文件夹。 - 启动服务器 —— 默认配置会自动生成并包含13个示例奖励。
- 使用
/randomreward admin在游戏中管理奖励,或直接编辑JSON文件。 - 使用
/randomreward reload应用配置更改。
配置
配置文件在首次运行时自动生成。
常规设置
{
"General": {
"DebugMode": false,
"Language": "en",
"MessagePrefix": "<gold>[DailyReward]</gold> ",
"AutoSaveIntervalMinutes": 5,
"EconomyProvider": "ecotale",
"LevelProvider": "",
"AutoOpenGuiOnJoin": true,
"GridRows": 5,
"GridColumns": 5,
"MinOnlineMinutes": 0,
"GuiTitle": "DAILY REWARD"
}
}
| 字段 | 描述 |
|---|---|
Language |
默认语言 (en, ru, de, es, fr, pt_br) |
EconomyProvider |
使用的经济API (ecotale 或留空自动检测) |
LevelProvider |
经验提供者 (rpgleveling, endlessleveling, 或留空自动检测) |
AutoOpenGuiOnJoin |
每日首次登录时自动打开面板 |
GridRows / GridColumns |
面板大小 (每个1-6) |
MinOnlineMinutes |
领取前的最低在线时间 |
奖励条目格式
{
"Id": "coins_jackpot",
"DisplayName": "Jackpot!",
"Type": "coins",
"Coins": 2000.0,
"Xp": 0,
"Item": "",
"Weight": 2,
"Rarity": "legendary",
"IconColor": "#ffaa00"
}
| 字段 | 描述 |
|---|---|
Type |
奖励类型:coins, xp, item, mixed |
Coins |
硬币数量(用于 coins 和 mixed 类型) |
Xp |
经验值(用于 xp 和 mixed 类型) |
Item |
物品ID,格式为 namespace:item:count(用于 item 和 mixed 类型) |
Weight |
概率权重 —— 越高越容易被选中 |
Rarity |
common, uncommon, rare, epic, legendary |
IconColor |
瓷砖显示的十六进制颜色 |
物品格式
物品使用Hytale的内部标识符:
hytale:weapon_sword_wood:1
hytale:tool_pickaxe_iron:1
hytale:armor_bronze_head:1
LuckPerms 集成
插件按以下顺序检查权限:LuckPerms API → HyperPerms → permissions.json 后备。
示例设置:
/lp group default permission set ecotalerandomreward.use true
/lp group admin permission set ecotalerandomreward.admin true
正在加载版本记录…


正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。