Karta EmeraldCurrency

一个使用原版翠玉作为核心货币的PaperMC服务器经济插件。

资源图片
# KartaEmeraldCurrency KartaEmeraldCurrency 是一个为 PaperMC 服务器设计的现代、高性能经济插件,以原版翡翠物品为核心货币。它具有虚拟银行系统、交互式 GUI 和强大的开发者 API,使其成为任何服务器的通用且稳定的选择。 它专为高效和安全而设计,所有数据库操作均以异步方式处理,以防止服务器卡顿。 **兼容性:** PaperMC 1.21 – 1.21.8 (Java 21+) ## 特性 - **翡翠经济:** 使用实物翡翠进行存款和取款。 - **虚拟银行:** 在安全的虚拟银行账户中存储你的翡翠,免受物品栏丢失的困扰。 - **交互式 GUI:** 用于所有常见操作的现代化且易于使用的 GUI,可通过 `/emerald` 访问。 - **主菜单:** 显示你的账户余额摘要。 - **银行 GUI:** 专用的界面,用于存款和取款翡翠。 可以单击一次性从你的物品栏中存入所有翡翠,或者通过在聊天中输入数值来存入/取出一个自定义金额。 - **Vault 集成:** 可以作为任何 Vault 兼容插件的主要经济提供者。 - **PlaceholderAPI 支持:** 一套完整的占位符,用于在积分板、聊天等处显示经济数据。 - **开发者 API:** 用于其他插件与经济交互的干净、异步 API。 - **异步 & 高性能:** 所有数据库 I/O 都是异步的,以确保你的服务器保持流畅运行。 - **可配置:** 几乎每个方面,从费用到消息,都可以进行自定义。 ## 安装 1. 从 [Releases](https://github.com/your-repo-link/releases) 页面下载最新版本。 2. 将 `KartaEmeraldCurrency-x.x.x.jar` 文件放入服务器的 `/plugins` 目录中。 3. 重启你的服务器。 默认配置文件将生成在 `/plugins/KartaEmeraldCurrency/` 目录中。 ## 命令 & 权限 ### 用户命令 (`/emerald` 或 `/kec`) 与经济交互的主要方式是通过主 GUI (`/emerald`)。 虽然可能存在一些直接命令,但 GUI 提供了访问所有功能,包括银行、转账和排行榜。 | 命令 | 权限 | 描述 | |---|---|---| | `/emerald` | `kec.gui` | 打开主交互式 GUI。 | | `/emerald balance` | `kec.balance` | 显示你的当前银行、钱包和总余额。 | | `/emerald pay ` | `kec.pay` | 从你的银行账户向其他玩家付款。 | | `/emerald deposit ` | `kec.deposit` | 将实物翡翠存入你的银行。 | | `/emerald withdraw ` | `kec.withdraw` | 将翡翠从你的银行取出到你的物品栏。 | | `/emerald top` | `kec.top` | 显示最富有的玩家排行榜。 | | `/emerald help` | `kec.help` | 显示帮助消息。 | ### 管理员命令 (`/emeraldadmin` 或 `/kecadmin`) 所有管理员命令都需要基础权限 `kec.admin` 或分层权限。 | 命令 | 权限 | 描述 | |---|---|---| | `/kecadmin set ` | `kec.admin.set` | 设置玩家的银行余额。 | | `/kecadmin add ` | `kec.admin.add` | 增加玩家的银行余额。 | | `/kecadmin remove ` | `kec.admin.remove` | 减少玩家的银行余额。 | | `/kecadmin give ` | `kec.admin.give` | 给玩家实物翡翠。 | | `/kecadmin take ` | `kec.admin.take` | 从玩家那里拿走实物翡翠。 | | `/kecadmin reload` | `kec.admin.reload` | 重新加载配置文件。 | | `/kecadmin migrate ` | `kec.admin.migrate` | 将数据从一种存储类型迁移到另一种存储类型(例如,SQLITE 到 MYSQL)。 | ## 占位符 需要 [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.624/)。 - `%kartaemerald_balance%` - 玩家的总银行余额。 - `%kartaemerald_balance_formatted%` - 玩家的银行余额,带后缀(例如,1.2k)。 - `%kartaemerald_balance_comma%` - 玩家的银行余额,带逗号(例如,1,234,567)。 - `%kartaemerald_bank%` - `%kartaemerald_balance%` 的别名。 - `%kartaemerald_wallet%` - 玩家在物品栏中拥有的实物翡翠数量。 - `%kartaemerald_top_<1-10>_name%` - **(尚未实现)** 排行榜上第 N 名玩家的姓名。 - `%kartaemerald_top_<1-10>_amount%` - **(尚未实现)** 排行榜上第 N 名玩家的余额。 **关于自定义占位符的说明:** 在配置文件 (`gui.yml`、`messages.yml`) 中,你可以使用上下文特定占位符。 这些占位符使用 `` 格式,与 [MiniMessage](https://docs.adventure.kyori.net/minimessage/format.html#placeholder) 库兼容。 例如,在排行榜 GUI 中,你可以使用 ``、`` 和 ``。 ## 开发者 API KartaEmeraldCurrency 提供了一个干净、易于使用的 API,供开发者使用。 所有数据相关的函数都是异步的,并返回一个 `CompletableFuture`。 ### 访问 API 首先,从 Bukkit 的 `ServicesManager` 获取服务。 ```java import com.minekarta.kec.api.KartaEmeraldService; import org.bukkit.Bukkit; import org.bukkit.plugin.RegisteredServiceProvider; public class MyPlugin { private KartaEmeraldService economyService; public void onEnable() { RegisteredServiceProvider rsp = Bukkit.getServicesManager().getRegistration(KartaEmeraldService.class); if (rsp != null) { this.economyService = rsp.getProvider(); } } } ``` ### 使用示例:向玩家付款 ```java import com.minekarta.kec.api.TransferReason; public void rewardPlayer(Player player, long amount) { if (economyService != null) { // 使用空 UUID 作为 'from' 参数来转账给无人 (服务器) 不支持。 // 而是使用 addBankBalance 方法进行服务器到玩家的交易。 economyService.addBankBalance(player.getUniqueId(), amount).thenAccept(success -> { if (success) { player.sendMessage("你获得了 " + amount + " 翡翠!"); } }); } } ```