Bank
基本信息
| 属性 | 值 |
|---|---|
| 类名 | mytown.entities.Bank |
| 文件 | src/main/java/mytown/entities/Bank.java |
| 行数 | 90 |
| 启用版本 | Minecraft 1.7.10 |
功能
城镇银行,每个 Town 恰有一个
(Town.bank = new Bank(this),构造时传入 Town 自身)。
与 EconomyProxy 的区别:本类是城镇内部账本(存 int),
而 EconomyProxy 走 MyEssentials 的外部经济系统(可能是物品也可能是 Vault 货币)。
结构
| 成员 | 类型 | 初值 |
|---|---|---|
town |
private Town |
构造器传入 |
amount |
private int |
0 |
daysNotPaid |
private int |
0 |
⚠️ amount 初值是硬编码的 0,不是 Config 的
defaultBankAmount(默认 5)。后者是新建城镇时写入的额度,
不是本字段的声明初值 —— 两者不可混淆。
关键方法
| 方法 | 返回 | 说明 |
|---|---|---|
makePayment(int) |
boolean |
余额足够则扣款返回 true,否则 false 且不扣 |
payUpkeep() |
void |
支付维护费 |
getNextPaymentAmount() |
int |
下次应缴额(payUpkeep() 的依据) |
实现要点
makePayment是先判后扣:if (this.amount >= amount)才this.amount -= amount, 余额不足时直接返回false,余额不变。daysNotPaid记录连续未缴维护费的天数, 与 Config 的upkeepTownDeletionDays(默认 7 天) 配合判定是否删除城镇。Town↔Bank互相持有引用,序列化时需注意递归深度。
相关条目
- Town - 持有者
- EconomyProxy - 外部经济(与本类不同)
- Config -
defaultBankAmount/upkeepTownDeletionDays - CommandsAdmin -
/mytownadmin bank命令