新星生态

新星生态

NovaEco是一个为Hytale服务器设计的完整经济系统模组

实用

NovaEco - Hytale 经济系统模组

Hytale Java Maven License


项目概览

NovaEco 是一个为 Hytale 服务器设计的完整经济系统模组,提供多货币管理、玩家交易、财富排行榜等功能。基于 Hytale 服务器插件 API 构建,使用 Maven 进行依赖管理,用 Java 25 及以上版本编译。

功能特点

多货币系统

  • 支持多种货币(金币、宝石等)
  • 可自定义货币名称、符号和默认余额
  • 每种货币支持独立的前缀/后缀符号

玩家钱包

  • 每位玩家拥有独立钱包
  • 支持同时管理多种货币
  • 线程安全的数据管理(使用 ConcurrentHashMap)

玩家交易

  • 通过 /pay 实现玩家间转账功能
  • 自动记录交易历史
  • 实时交易金额验证

财富排行榜

  • 通过 /balancetop 查看服务器富豪榜
  • 支持分页查看
  • 按指定货币排序

管理功能

  • 完整的管理员指令集
  • 动态创建/删除货币
  • 一键重载配置
  • 手动保存数据

数据持久化

  • 自动 JSON 格式保存
  • 货币配置和玩家数据分开存储
  • 服务器关闭时自动保存

快速开始

指令

玩家指令

指令 描述 别名
/balance [currency] 查看当前余额 bal
/pay <player> <amount> 转账给玩家 transfer
/balancetop [page] 查看财富排行榜 baltop, rich
/transaction [count] 查看交易历史 tx, history

管理员指令

指令 描述 别名
/economy 经济管理菜单 eco
/economy info 查看经济统计 -
/economy reload 重载配置 -
/economy create <name> <symbol> [default] 创建新货币 -
/economy delete <name> 删除货币 -
/economy save 立即保存数据 -
/givecoins <player> <amount> 给玩家发货币 gc, addcoins
/takecoins <player> <amount> 从玩家扣除货币 tc, removecoins
/setcoins <player> <amount> 设置玩家余额 sc, setcoin

API 使用

基本操作

import cmtn.hytale.mods.nova_eco.economy.api.EconomyAPI;
import java.util.UUID;

// 获取玩家余额
double balance = EconomyAPI.getBalance(playerUUID, "coins");

// 增加货币
EconomyAPI.addCurrency(playerUUID, "coins", 100);

// 扣除货币
boolean success = EconomyAPI.removeCurrency(playerUUID, "coins", 50);

// 设置余额
EconomyAPI.setBalance(playerUUID, "coins", 1000);

转账操作

// 玩家间转账
boolean success = EconomyAPI.transfer(fromUUID, toUUID, "coins", 100);

// 检查余额是否充足
if (EconomyAPI.hasEnough(playerUUID, "coins", 100)) {
    // 执行操作
}

货币管理

// 检查货币是否存在
boolean exists = EconomyAPI.currencyExists("gems");

// 获取所有货币
List<Currency> currencies = EconomyAPI.getAllCurrencies();

// 格式化金额
String formatted = EconomyAPI.format("coins", 1234.56);
// 输出:"1,234.56 Coins"

添加新货币

import cmtn.hytale.mods.nova_eco.economy.NovaEcoEconomy;
import cmtn.hytale.mods.nova_eco.economy.currencies.Currency;
import cmtn.hytale.mods.nova_eco.economy.currencies.CurrencySymbol;

// 创建货币
Currency gems = new Currency(
    "gems",                    // 货币名称
    new CurrencySymbol("💎", "", false),  // 货币符号
    0.0,                       // 默认余额
    true,                      // 可删除
    "游戏内货币"                // 描述
);

// 注册货币
NovaEcoEconomy.addCurrency(gems);

配置

数据存储结构

NovaEco/
└── economy/
    ├── currencies.json       # 货币配置
    └── players/
        └── {player_uuid}.json  # 玩家钱包数据

currencies.json 示例

{
  "currencies": [
    {
      "name": "coins",
      "symbol": {
        "prefix": "",
        "suffix": " Coins",
        "useSymbolAsPrefix": false
      },
      "defaultBalance": 0.0,
      "canDelete": false,
      "description": "默认金币"
    }
  ]
}

玩家数据示例

{
  "uuid": "玩家UUID",
  "balances": {
    "coins": 1000.0,
    "gems": 50.0
  },
  "transactions": [
    {
      "type": "RECEIVE",
      "currency": "coins",
      "amount": 100.0,
      "from": "system",
      "reason": "新手奖励",
      "timestamp": 1704067200000
    }
  ]
}

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

联系方式


感谢您使用 NovaEco!

献给 Hytale 社区的 ❤️