
JobsFabric
这是一个综合性的服务器端职业系统,包含职业进阶、经济奖励和自定义职业功能,适用于Minecraft 1.20.1。
JobsFabric - Minecraft Fabric 模组
一套全面的服务端职业系统,具备成长、经济奖励和可自定义任务,适用于 Minecraft 1.20.1 Fabric 服务器。
🌟 特性
- 多职业系统: 玩家可同时拥有最多 3 个活跃职业。
- 渐进式等级: 基于自定义公式的成长系统,需求可配置。
- 经济集成: 集成 Impactor Economy 模组,发放金币奖励。
- 反作弊保护: 防止刷玩家放置的方块和滥用骨粉。
- 模组内容支持: 完全兼容模组中的方块和物品。
- 自动检测: 服务器启动时自动检测所有矿石、作物和方块。
- 仅服务端: 不需要客户端模组,原版客户端即可运行。
- 可自定义职业: 基于 JSON 的配置,方便创建和修改职业。
- 交互式 GUI: 服务端 GUI 菜单,用于职业管理和进度追踪。
📋 可用职业
第一阶段 (已实现)
- ⛏️ 矿工: 挖掘矿石和石头以升级
- 🌾 农夫: 收获作物和植物
- 🏗️ 建筑师: 放置方块以获得进度
第二阶段 (计划中)
超过 17 个额外职业,包括战士、渔夫、猎人、驯兽师等等!
🔧 依赖项
- Impactor Economy: 5.3.0+ (用于经济奖励)
已内置 (模组已包含)
- SgUi: 1.2.2+1.20 (用于服务端 GUI) - 无需单独安装
注意: 这些库已内置以便使用。如果与其他使用这些库的模组发生冲突,请在 GitHub 上报告问题。
可选
- LuckPerms: 用于基于权限的功能 (计划中)
📥 安装
- 下载最新发布版本:
JobsFabric-0.1-1.20.1.jar - 将其放入服务器的
mods/文件夹 - 安装必需的依赖项:
- Fabric API (0.92.6+1.20.1)
- Impactor Economy (5.3.0+)
- 启动你的服务器
- 在
config/jobs/中配置职业
⚙️ 配置
配置文件位于 config/jobs/:
主配置文件 (config.json)
{
"jobs": {
"maxActiveJobs": 3,
"leaveCooldownMinutes": 15,
"saveProgressOnLeave": true
},
"storage": {
"autoSaveIntervalSeconds": 180
},
"autoDetection": {
"enabled": true,
"defaultOreProgress": 1.0,
"defaultCropProgress": 1.0,
"defaultBlockProgress": 1.0
}
}
自动检测设置:
enabled: 启动时自动扫描注册表以查找矿石/作物/方块defaultOreProgress: 自动检测到的矿石的默认进度值defaultCropProgress: 自动检测到的作物的默认进度值defaultBlockProgress: 自动检测到的可放置方块的默认进度值
注意: 手动配置条目始终会覆盖自动检测的值!
职业定义 (jobs/*.json)
每个职业都有自己的 JSON 配置文件,包含:
- 进度公式: 自定义数学表达式 (例如
100 * (level^2)) - 动作类型:
break,harvest,place等。 - 特殊进度: 特定材质的倍率
- 奖励: 每级的经济奖励
- GUI 配置: 自定义图标和描述
示例职业结构:
{
"id": "miner",
"name": "&6&lMiner",
"progressFormula": "100 * (level^2)",
"actionType": "break",
"xpReward": 0,
"xpRewardFormula": "",
"specialProgress": {
"_ore": 5.0,
"stone": 1.0
}
}
🎮 使用说明
玩家指令
/jobs- 打开职业菜单 (GUI)- 在 GUI 中点击加入职业
- 查看进度和统计数据
- 离开职业,进度得以保留
管理员指令
(即将在第二阶段推出)
🚀 性能优化
本模组包含多项性能增强:
- 公式缓存: 减少 50-80% 的数学计算
- 内存管理: 每 5 分钟自动清理追踪数据
- 脏数据追踪: 仅保存已修改的玩家数据
- 异步操作: 经济交易异步运行
- 基于时间的过期: 旧条目 10 分钟后自动过期
有关详细分析,请参阅 OPTIMIZATION_REPORT.md。
🔒 反作弊特性
- 方块放置追踪: 玩家放置的方块不会提供挖掘进度
- 骨粉冷却: 1 秒冷却防止刷骨粉
- 时间戳追踪: 自动清理防止内存泄漏
- 验证系统: 动作类型白名单防止无效进度
🧩 模组内容支持
本模组完全支持模组中的方块和物品:
- 使用完整的资源标识符 (例如
modname:copper_ore) - 支持通配符 (例如
_ore匹配所有矿石) - 自动兼容任何模组
- 无需额外配置
详情请参阅 MODDED_CONTENT_SUPPORT.md。
🏗️ 开发
从源码构建
# 克隆仓库
git clone https://github.com/Toastie0/Jobs.git
cd Jobs
# 使用 Gradle 构建
./gradlew build
# 输出: build/libs/JobsFabric-0.1-1.20.1.jar
项目结构
src/main/java/net/advancedjobs/
├── AdvancedJobsMod.java # 模组主入口点
├── config/
│ └── ConfigManager.java # 配置加载器
├── controller/
│ └── JobController.java # 核心职业逻辑
├── economy/
│ └── ImpactorEconomyHandler.java
├── gui/
│ ├── JobListMenu.java # 主要职业 GUI
│ └── JobProgressMenu.java # 职业详情 GUI
├── handlers/
│ ├── BlockBreakHandler.java # 矿工职业
│ ├── CropHarvestHandler.java # 农夫职业
│ └── BlockPlaceHandler.java # 建筑师职业
├── objects/
│ ├── Job.java # 职业数据模型
│ ├── User.java # 玩家数据模型
│ └── UserJobInfo.java # 职业进度数据
└── storage/
└── JsonStorageManager.java # JSON 持久化
技术栈
- 语言: Java 21
- 构建工具: Gradle 8.8
- 模组加载器: Fabric
- GUI 库: SgUi (服务端)
- 经济: Impactor API
- 存储: 带脏数据追踪的 JSON
📊 路线图
第一阶段:核心系统 ✅
- 职业框架
- 进度追踪
- 经济集成
- 基础职业 (矿工、农夫、建筑师)
- 反作弊系统
- 性能优化
第二阶段:扩展 🚧
- 超过 17 个额外职业
- 职业专属成就
- 排行榜
- 加成和倍率
- 权限集成
第三阶段:高级功能 📋
- 自定义职业创建 GUI
- 职业奖励 (物品、指令)
- 职业任务/里程碑
- 统计仪表盘
- 开发者 API
🤝 贡献
欢迎贡献!请随时提交拉取请求或为错误和功能请求开启议题。
📄 许可证
本项目采用 CC0 1.0 通用 (公共领域) 许可证 - 详情请参阅 LICENSE 文件。
这意味着你可以自由使用、修改和分发此模组,无需任何限制或署名要求。
👤 作者
Toastie
- GitHub: @Toastie0
🙏 致谢
- Fabric 团队: 感谢优秀的模组框架
- Impactor: 感谢经济 API
- SgUi: 感谢服务端 GUI 功能
- Minecraft 模组社区: 感谢资源和帮助
📞 支持
如有问题、疑问或建议:
- 在 GitHub Issues 上开启议题
注意: 此模组仅为服务端。运行原版 Minecraft 客户端的玩家无需安装任何内容即可加入并使用所有功能。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。