d5bc819684f6acb9a37b44d5cbacd44f13c3c82b
Adds configurable fees, transaction history, chat amount input, and v1.1.0 release documentation.
🏦 CraftBank(工艺银行)
适用于 Folia 1.21.8 的全能经济与银行核心插件 —— 旨在完全替代 XConomy 等传统经济插件。
CraftBank 内置完善的「个人钱包 / 现金」系统,并引入深度模拟的银行系统:实体银行卡、可交易支票、活期储蓄与严格的定期存款(带利息)。全程遵循 Folia 多核服务端的线程模型,使用 AsyncScheduler / GlobalRegionScheduler / RegionScheduler 调度,绝不使用已弃用的 Bukkit.getScheduler()。
✨ 核心功能
| 模块 | 说明 |
|---|---|
| 💵 核心经济 | 每位玩家独立现金账户;实现 Vault Economy 接口并以 Highest 优先级注册,接管全服扣款 |
| 💳 银行卡 | 实体物品,PDC 绑定 UUID + 序列号;右键指定方块开柜;丢失可挂失补办(旧卡作废) |
| 📜 支票 | /cheque <金额> 具现化为可流通实体物品;右键兑现入钱包;PDC 防伪 + 防刷 |
| 💰 活期储蓄 | 存取自由,按真实时间戳逐日复利结算(含离线补偿,带封顶) |
| ⏳ 定期存款 | 7/15/30 天可选,到期前任何情况不可提前支取;到期本息自动入活期 |
| 📒 交易流水 | 记录转账、存取、支票、定期、利息与管理操作;管理员可分页查询 |
| 🧾 手续费 | 转账与活期取现可按配置收取固定 / 百分比手续费 |
| 💬 自定义金额输入 | 银行 GUI 左键进入聊天输入自定义金额,右键保留「全部」快捷操作 |
🛠️ 依赖
- 必须:Vault(CraftBank 作为其 Service Provider 注入)
- 可选:PlaceholderAPI
MySQL 驱动默认未内置;若使用 MySQL,请将驱动放入服务端
libraries,或在build.gradle.kts中取消相应依赖注释后自行打包。
💻 指令与权限
基础经济(所有人)
| 指令 | 说明 |
|---|---|
/money [玩家] |
查看现金余额(查他人需 craftbank.money.others) |
/pay <玩家> <金额> |
现金转账 |
/baltop [页码] |
现金排行榜 |
银行玩家(craftbank.use)
| 指令 | 说明 |
|---|---|
/bank open |
打开银行 GUI(可配置是否允许) |
/bank card apply |
申请新银行卡 |
/bank card revoke |
挂失并作废当前银行卡 |
/bank deposit <金额> |
现金 → 活期 |
/bank withdraw <金额> |
活期 → 现金 |
/cheque <金额> |
开具支票 |
管理员(craftbank.admin)
| 指令 | 说明 |
|---|---|
/bankadmin reload |
重载配置 |
/bankadmin give/take/set <玩家> <金额> |
增加 / 扣除 / 设置现金 |
/bankadmin setinterest <savings|term_7d|term_15d|term_30d> <利率> |
动态修改利率 |
/bankadmin log <玩家> [页码] |
分页查看玩家交易流水 |
🔌 PlaceholderAPI 变量
| 变量 | 含义 |
|---|---|
%craftbank_cash% |
现金(纯数字) |
%craftbank_cash_formatted% |
现金(含货币符号) |
%craftbank_bank_saving% |
活期(纯数字) |
%craftbank_bank_saving_formatted% |
活期(含货币符号) |
%craftbank_total% |
现金 + 活期总额(纯数字) |
%craftbank_total_formatted% |
现金 + 活期总额(含货币符号) |
%craftbank_has_card% |
是否持有有效银行卡 |
%craftbank_savings_rate% |
当前活期日利率百分比 |
⚙️ 配置文件
详见生成的 config.yml,涵盖:数据库(SQLite/MySQL)、货币设置、利率(活期 / 各定期)、银行交互方块、转账 / 取现手续费、交易流水开关、银行卡与支票的自定义材质 / CustomModelData / 名称 / Lore、以及全部消息文案。
🔨 从源码构建
# 需要 JDK 21+(已用 JDK 25 验证通过)
./gradlew shadowJar
产物位于 build/libs/CraftBank-<version>.jar,已内置 SQLite 与 HikariCP 驱动,可直接丢进 plugins/ 目录。
🤖 Folia 线程安全设计
- 后台任务(数据库、
/baltop排序、利息扫描)走AsyncScheduler。 - 玩家相关操作(扣物品、开 GUI、发消息)从异步切回时调度到
player.getScheduler()(实体区域线程)。 - 经济数据缓存使用
ConcurrentHashMap,单账户余额变更用synchronized保证原子,抵御来自其它插件异步线程(经 Vault)的并发刷钱。 - 支票兑现在玩家区域线程独占操作物品栏;定期领取用数据库
UPDATE ... WHERE claimed = 0原子置位防重复发放。
📄 许可证
见 LICENSE。
Releases
2
CraftBank v1.1.0
Latest
Languages
Java
100%