Warning: file_put_contents(/www/wwwroot/nmbt.106988770/cache/modrinth_versions_97T4Tdh3.json): Failed to open stream: Permission denied in /www/wwwroot/nmbt.106988770/resource_detail.php on line 53
UltraEconomy - 墨喵 Minecraft 资源

UltraEconomy

作者:rebot | 分类:模组

价格:0 墨喵币 下载量:0 点赞:0 版本 1.2.1
本资源为搬运资源,原资源地址: https://modrinth.com/mod/ultraeconomy
资源信息

Minecraft 版本: 1.21.1

平台: fabric

资源介绍

💰 UltraEconomy

🧱 Advanced Multi-Currency Economy System for Minecraft (Fabric 1.21.1)

Minecraft
Java
License

UltraEconomy is a high-performance, multi-currency economy system designed for modern Minecraft servers. Built on Fabric, it features multi-database persistence, automated backups, an in-game graphical interface (GUI) for logs and backups, and a built-in web server with a secure HTTP API.


⚙️ Key Features

  • 💱 Multi-Currency Support
    Define as many currencies as you want! Each currency is highly configurable (custom symbols, formatting patterns, singular/plural names, and short suffix formatting).
  • 🗄️ Multi-Database Compatibility
    Supports SQLite (default), MongoDB, MySQL, and generic SQL databases for cross-server setups.
  • 🌐 Built-in Web UI & HTTP API
    Includes a built-in Jetty web server to host a dashboard or query economy data externally. Features rate-limiting, IP auto-banning, and bearer-token authentication.
  • 🔁 Economy Migration Support
    Easily migrate balances from other mods or plugins (e.g., Impactor) directly into UltraEconomy.
  • 📦 Automated Backup & Restore
    Automated hourly backups with configurable retention policies and a visual in-game restore manager.
  • 🧩 Placeholders Integration
    Compatible with the standard Placeholder API to display player stats on menus, scoreboards, and tab lists.
  • ⚡ High-Performance Caching
    Uses Caffeine Cache to minimize database operations and guarantee sub-millisecond response times.
  • 🪟 Rich In-Game GUIs
    Includes dedicated GUI menus to view transaction logs, browse/restore backups, and view the balance leaderboards.

📁 Configuration Structure

The configuration files are created under config/ultraeconomy/.

1. Main Configuration (config.json)

{
  "debug": false,
  "notifications": true,
  "queueMessages": false,
  "commandCooldown": "500ms",
  "retentionBackUps": "7d",
  "betweenMessagesDelay": "1s",
  "lang": "en_us",
  "commands": [
    "money",
    "balance",
    "bal",
    "eco",
    "ultraeconomy"
  ],
  "database": {
    "type": "SQLITE",
    "url": "jdbc:sqlite:./config/ultraeconomy/ultraeconomy.db",
    "user": "",
    "password": "",
    "poolSize": 10
  },
  "migration": {
    "active": false,
    "migrations": [
      {
        "economyId": "IMPACTOR",
        "migrationFromCurrencyId": "impactor:dollars",
        "migrationToCurrencyId": "dollars"
      }
    ]
  },
  "limitTopPlayers": 10,
  "adjustmentShortName": 3,
  "balTopCooldown": "10s",
  "cacheTtlSeconds": 60,
  "web": false,
  "webSecurity": {
    "enabled": true,
    "port": 8080,
    "apiToken": "YOUR-RANDOM-API-TOKEN-HERE",
    "apiRateLimit": 20,
    "apiBurstCapacity": 40,
    "staticRateLimit": 60,
    "staticBurstCapacity": 120,
    "banThreshold": 10,
    "banDurationMinutes": 15,
    "trustProxy": false,
    "idleTimeoutSeconds": 30,
    "maxRequestBodyBytes": 8192
  }
}

2. Currencies Config (currencys/<currency_id>.json)

Each currency file lives in config/ultraeconomy/currencys/. For example, dollars.json:

{
  "primary": true,
  "transferable": true,
  "defaultBalance": 500.00,
  "decimals": 2,
  "symbol": "$",
  "format": "<symbol>&6<amount> <name>",
  "singular": "Dollar",
  "plural": "Dollars",
  "suffixes": ["", "K", "M", "B", "T"],
  "currencyIds": [
    "impactor:dollars"
  ]
}

💬 Commands & Permissions

Player Commands

Command Description Permission
/<cmd> [player] Check your balance or another player's balance ultraeconomy.command.balance
ultraeconomy.command.balance.other
/pay <currency> <amount> <player> Pay another player a specific amount ultraeconomy.command.pay
/baltop [currency] [page] View the leaderboard for a currency in chat ultraeconomy.command.baltop
/baltopmenu [currency] Open the leaderboard in a GUI menu ultraeconomy.command.baltopmenu
/withdraw <amount> [currency] Withdraw money from your account ultraeconomy.command.withdraw
/deposit <amount> [currency] Deposit money to your account ultraeconomy.command.deposit
/set <amount> [currency] Set your own balance ultraeconomy.command.set
/reset [currency] Reset your balance to default ultraeconomy.command.reset

Admin Commands (Permission: ultraeconomy.admin / OP 2)

  • /eco admin reload - Reloads all configuration and currency files.
  • /eco admin deposit <player> <amount> [currency] - Deposits currency into a player's account.
  • /eco admin withdraw <player> <amount> [currency] - Withdraws currency from a player's account.
  • /eco admin set <player> <amount> [currency] - Sets a player's balance.
  • /eco admin reset <player> [currency] - Resets a player's balance.
  • /eco admin transactions <player> - Opens the GUI to view a player's transaction history. (Permission: ultraeconomy.admin.transactions)
  • /eco admin backup <create/restore/list> - Manage database backups. /list opens a GUI menu in-game. (Permission: ultraeconomy.admin.backup)

🧩 Placeholders

Use these Placeholders (via Placeholder API) to display economy stats:

  • %ultraeconomy:balance <currency_id>% - Returns the formatted balance (e.g. $1,250.50 Dollars).
  • %ultraeconomy:symbol <currency_id>% - Returns the currency symbol (e.g. $).
  • %ultraeconomy:amount <currency_id>% - Returns the raw formatted amount without the symbol (e.g. 1,250.50).
  • %ultraeconomy:short_amount <currency_id>% - Returns the shortened amount with suffixes (e.g. 1.2K, 5.4M).

🧠 Developer API

Add UltraEconomy to your dependencies to interact with the economy programmatically.

API Usage Example

import com.kingpixel.ultraeconomy.api.UltraEconomyApi;
import com.kingpixel.ultraeconomy.models.Account;
import com.kingpixel.ultraeconomy.models.Currency;
import net.minecraft.server.network.ServerPlayerEntity;

import java.math.BigDecimal;
import java.util.UUID;

public class EconomyExample {

    public void handleEconomy(ServerPlayerEntity player, UUID targetPlayerUUID) {
        UUID playerId = player.getUuid();
        String currencyId = "dollars";

        // 1. Get a player's balance
        BigDecimal balance = UltraEconomyApi.getBalance(playerId, currencyId);

        // 2. Check if player has enough money
        boolean hasEnough = UltraEconomyApi.hasEnoughBalance(playerId, currencyId, new BigDecimal("100.00"));

        if (hasEnough) {
            // 3. Withdraw money
            boolean successWithdraw = UltraEconomyApi.withdraw(playerId, currencyId, new BigDecimal("100.00"));

            // 4. Deposit money
            boolean successDeposit = UltraEconomyApi.deposit(targetPlayerUUID, currencyId, new BigDecimal("100.00"));
        }

        // 5. Transfer directly between player accounts (handles thread-safety and deadlocks internally)
        boolean successTransfer = UltraEconomyApi.transfer(playerId, targetPlayerUUID, currencyId, new BigDecimal("50.00"));

        // 6. Set balance directly
        UltraEconomyApi.setBalance(playerId, currencyId, new BigDecimal("1000.00"));

        // 7. Get currency object and format values using the player's client language locale
        Currency currency = UltraEconomyApi.getCurrency(currencyId);
        String formatted = currency.format(new BigDecimal("15000.50"), UltraEconomyApi.getLocale(player)); // Output example: "$15,000.50 Dollars"

        // 8. Access the raw Account model
        Account account = UltraEconomyApi.getAccount(playerId);
        if (account != null) {
            System.out.println("Player account name: " + account.getPlayerName());
        }
    }
}
下载与版本
评论(0)
请 登录 后发表评论。

暂无评论,抢个沙发吧~

举报此资源

请登录后举报

赞助作者

请 登录 后赞助作者。

🔥 相关推荐
CBCModernWarfare

价格:0 墨喵币
下载量:0

查看详情
Bedrock Sorcerer Rp

价格:0 墨喵币
下载量:0

查看详情
littletiles-create-compat

价格:0 墨喵币
下载量:0

查看详情
3D Exclamation Powdered Snow

价格:0 墨喵币
下载量:0

查看详情