跳到正文

Treasury

作者:lijinhong11

An bridge layer to provide economy and points implementations

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

Treasury

A simple economy & points API for Minecraft mods.
Inspired by the Bukkit Vault plugin.
It is not an economy implementation.
Instead, like Vault, other mods provide economy/points implementations, and Treasury acts as a bridge layer.

We need a good logo lmao, my art sucks —— the author

What can it do?

  • Hold server economy (multi-currency supported)
  • Access points / premium currency
  • Allow mods to interact economy system without depending on specific implementations

How it works

Treasury defines two main provider types:

  • EconomyProvider for normal currency
  • PointsProvider for points (most for premium currency)

Other mods register their implementation, and other developers who use the API can get them.
See more below.

Registry

Economy

  • Stored in EconomyServiceRegistry
  • Supports multiple providers
  • One provider is selected as primary

Selection rules:

  1. Using primaryEconomy which defined in config if specified
  2. Otherwise, use the first registered provider

Points

  • Stored in PointsServiceRegistry
  • Only one provider allowed

Registering another provider will throw an exception.

Register Providers

Economy

Treasury.economy().register(new ExampleEconomyProvider());

Points

Treasury.points().register(new ExamplePointsProvider());

Notes:

  • Only one points provider allowed
  • Please register during mod initialization

Fabric Entrypoints

Treasury supports register providers via Fabric entrypoints:

  • treasury-economy
  • treasury-points

Example:

{
  "entrypoints": {
    "treasury-economy": [
      "com.example.mod.ExampleEconomyProvider"
    ],
    "treasury-points": [
      "com.example.mod.ExamplePointsProvider"
    ]
  }
}

Usage

Economy

if (Treasury.economy().hasPrimary()) {
    EconomyProvider economy = Treasury.economy().getPrimary();
    double balance = economy.getBalance(playerUuid);
}

Points

if (Treasury.points().isRegistered()) {
    PointsProvider points = Treasury.points().get();
    int balance = points.getBalance(playerUuid);
}

Commands

  • /treasury info
  • /treasury balance <player>

Required permission level: 2

Requirements

  • Fabric: Minecraft 1.20.1+, any Fabric version, Fabric API is not required
  • NeoForge: Minecraft 1.20.4+, any NeoForge version
  • Java: 17 or higher

Don’t ask for Forge!

Build

./gradlew build

Import

dependencies {
    compileOnly("io.github.lijinhong11:treasury:VERSION")
}

常见问题

Treasury 支持哪些 Minecraft 版本?

Treasury 支持 Minecraft Java 版 1.20–26.1.2,共 22 个版本,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。

Treasury 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。

评论

登录后评论和评分

lijinhong11 的其他作品

查看全部 →