简单工作

简单工作

一个全面的Hytale服务器职业插件,为玩家提供不同类型的职业。它还可以通过Cassaforte接口与其他经济插件集成。

游戏玩法

SimpleJobs

适用于 Hytale 服务器的综合性职业与经济插件

SimpleJobs 是一款专为 Hytale 服务器设计的功能丰富的职业系统插件。玩家可以加入各种职业,通过猎杀怪物、开采矿石、砍伐树木和种植农作物等活动来赚取经验、提升技能等级并获取金钱。非常适合 RPG 服务器、以经济为核心的社区,或任何希望添加成长系统的服务器。


功能特性

多职业系统

  • 四种已实现职业 - 猎人、矿工、伐木工和农民,各有独特的游戏循环
  • 升级与成长 - 每个职业都有独立的经验条和等级(1-100)
  • 职业切换 - 玩家可以随时加入或离开任何职业
  • 进度持久化 - 所有职业数据保存到数据库并自动缓存

猎人职业

  • 怪物猎杀 - 通过击杀敌对生物和怪物来赚取金钱
  • 分层奖励 - 不同怪物提供不同的基础奖励
  • 等级要求 - 更高级的怪物需要更高的职业等级
  • 智能 NPC 检测 - 仅奖励自然生成的攻击性生物

矿工职业

  • 矿石开采奖励 - 通过破坏有价值的矿石来赚取金钱和经验
  • 自动矿石检测 - 通过名称模式智能识别矿石方块
  • 六个品级 - 普通、罕见、稀有、史诗和传说级矿石,奖励按比例递增
  • 工具品质加成 - 更好的工具 = 更好的奖励
  • 方块品质缩放 - 高品质方块提供更高的奖励

伐木工职业

  • 砍树奖励 - 通过收获原木来赚取金钱和经验
  • 原木检测 - 自动识别所有类型的木头/原木方块
  • 六个木材品级 - 从普通原木到传说中的古木
  • 斧头品质加成 - 更好的斧头 = 更好的奖励
  • 渐进式缩放 - 奖励随工具品质和玩家等级增长

农民职业

  • 作物收获 - 通过拾取已采收的作物来赚取金钱
  • 作物识别 - 识别胡萝卜、小麦、土豆、西瓜、南瓜等农耕物品
  • 六个作物品级 - 从普通作物到传说级品种
  • 智能分类 - 根据名称模式自动分类作物
  • 农场服务器完美适配 - 奖励你的农业玩家

性能与可靠性

  • 极速缓存 - 使用 Caffeine 进行内存缓存,实现即刻查找
  • 异步操作 - 所有数据库操作使用 Kotlin 协程在后台运行
  • 双数据库支持 - SQLite 适用于简单配置,PostgreSQL 适用于大型网络
  • 智能经济集成 - 通过 Cassaforte Economy API 实现无缝存款
  • 线程安全设计 - 不可变数据模型确保一致性

开发者友好

  • 清晰的架构 - 遵循最佳实践的现代代码库
  • 全面的 API - 易于其他插件集成
  • 模块化设计 - 用例、服务和系统完全解耦
  • 文档完善 - 包含完整的架构文档

命令

玩家命令

命令 描述 权限
/jobs help 显示职业帮助信息和可用职业 jobs.user
/jobs join <职业> 加入一个职业 (hunter, miner, woodcutter, farmer) jobs.join
/jobs leave <职业> 离开当前职业 jobs.leave
/jobs info 查看你所有的职业及其进度 jobs.info
/jobs info <职业> 查看特定职业的详细信息 jobs.info

可用职业类型

  • 猎人 - 通过猎杀怪物来赚取金钱
  • 矿工 - 通过开采矿石来赚取金钱
  • 伐木工 - 通过砍伐树木来赚取金钱
  • 农民 - 通过种植作物来赚取金钱

配置

SimpleJobs 在首次启动时会创建配置文件:

数据库配置 (jobs_config.json)

SQLite (默认) - 适用于大多数服务器

{
  "database": {
    "type": "SQLITE",
    "sqlite": {
      "path": "jobs_data/jobs.db"
    }
  }
}
  • 无需额外设置
  • 文件存储在 jobs_data/jobs.db
  • 适用于小型到中型服务器

PostgreSQL - 适用于高性能网络

{
  "database": {
    "type": "POSTGRESQL",
    "postgresql": {
      "host": "localhost",
      "port": 5432,
      "database": "jobs",
      "username": "jobs_user",
      "password": "your_password",
      "poolSize": 10
    }
  }
}
  • 连接池以实现最佳性能
  • 推荐用于玩家数量众多的服务器

职业设置 (jobs_config.json)

{
  "jobs": {
    "enableLeveling": true,
    "maxLevel": 100,
    "baseExperienceMultiplier": 1.0
  }
}

权限

SimpleJobs 使用直观的权限系统:

玩家权限(默认授予所有玩家)

  • jobs.user - 基础用户权限
  • jobs.join - 加入职业
  • jobs.leave - 离开职业
  • jobs.info - 查看职业信息

管理员权限(自动授予服务器管理员)

  • jobs.admin - 完全管理权限

升级系统

经验公式

升至下一级所需经验:100 × 等级^1.5

示例:

  • 等级 1→2:100 XP
  • 等级 10→11:3,162 XP
  • 等级 50→51:35,355 XP
  • 等级 99→100:98,995 XP

奖励缩放

所有奖励随玩家等级缩放:基础奖励 × (1 + 等级 × 0.05)

示例: 在 10 级时,10 金币的基础奖励变为:10 × (1 + 10 × 0.05) = 15 金币


集成与 API

经济集成

SimpleJobs 实现了 Cassaforte Economy API,确保:

  • 自动将金钱存入玩家账户
  • 跨插件的一致经济行为
  • 对未来经济插件的兼容性

开发者 API

val jobs = SimpleJobs.instance

// 获取玩家职业数据
val jobPlayer = jobs.getJobPlayer(playerUuid, JobType.HUNTER)

// 检查玩家等级
println("Player is Hunter level ${jobPlayer.level}")
println("Progress: ${jobPlayer.getLevelProgress()}%")

快速开始

  1. 安装 - 将 SimpleJobs.jar 放入服务器的 plugins/ 文件夹
  2. 安装经济插件 - 确保同时也安装了 SimpleEconomy 插件
  3. 启动服务器 - 运行你的 Hytale 服务器
  4. 配置 - 编辑 jobs_config.json 以自定义设置
  5. 加入职业 - 玩家使用 /jobs join <职业> 开始赚取收益!

游戏示例

新玩家体验:

玩家: /jobs help
服务器: === SimpleJobs ===
服务器: 通过不同职业赚取金钱和经验!
服务器:
服务器: 可用职业:
服务器:   hunter: 通过猎杀怪物来赚取金钱
服务器:   miner: 通过开采矿石来赚取金钱
服务器:   woodcutter: 通过砍伐树木来赚取金钱
服务器:   farmer: 通过种植作物来赚取金钱

玩家: /jobs join hunter
服务器: 你已加入猎人职业!
服务器: 描述: 通过猎杀怪物来赚取金钱

玩家: /jobs info hunter
服务器: === 猎人职业 ===
服务器: 描述: 通过猎杀怪物来赚取金钱
服务器: 你的进度:
服务器:   等级: 1
服务器:   经验: 0.0 / 100.0
服务器:   进度: 0.0%
服务器:   总收益: 0.00

击杀一只怪物后:

控制台: [猎人] 玩家 击杀 怪物 - +10 XP, +5 金币
玩家: +10 XP (猎人)
玩家: +5 金币已添加到你的余额

需求

  • Java 25+ - Hytale 服务器插件所需
  • SimpleEconomy 插件 - 金钱奖励和存款所需
  • Hytale 服务器 - 推荐使用最新版本

技术细节

  • 语言: Kotlin
  • 架构: 使用用例的整洁架构
  • 数据库: SQLite / PostgreSQL,采用 exposed ORM
  • 缓存: Caffeine(内存缓存)
  • 并发: Kotlin 协程
  • 构建工具: Gradle,附带 Shadow 插件

未来增强

计划在后续版本中推出的功能:

  • 渔夫职业 - 钓鱼并赚取奖励
  • 职业排行榜 - 各职业的顶级玩家
  • 日常任务 - 特定职业的挑战
  • 图形界面 - 可视化的职业选择和进度查看

致谢

为 Hytale 模组社区构建。

集成 Cassaforte 的经济 API,实现无缝的经济管理。