EconomyProxy
基本信息
| 属性 | 值 |
|---|---|
| 类名 | mytown.proxies.EconomyProxy |
| 文件 | src/main/java/mytown/proxies/EconomyProxy.java |
| 类型 | 纯静态工具类,私有构造 |
| 启用版本 | Minecraft 1.7.10 |
功能
建城、圈地、传送等一切需要扣费的操作所依赖的经济后端。费用不是自己实现的,而是直接包一层
MyEssentials 的 myessentials.economy.api.Economy。
由 MyTown 的 serverStarting 调用 EconomyProxy.init() 建立。
关键方法
| 方法 | 返回 | 说明 |
|---|---|---|
init() |
void |
用 Config.instance.costItemName 的值构造 Economy,并打日志 |
getEconomy() |
Economy |
返回 Economy 实例 |
isItemEconomy() |
boolean |
判断当前是否走物品经济(而非 ForgeEssentials / Vault 货币) |
getCurrency(int) |
String |
格式化金额,如 32 Diamonds 或 15 $ |
实现要点
isItemEconomy() 的判定是三段否定——只有三者全不成立才返回 true:
if (config.equals(Economy.CURRENCY_FORGE_ESSENTIALS)) return false;
else if (config.equals(Economy.CURRENCY_VAULT)) return false;
else if (config.startsWith(Economy.CURRENCY_CUSTOM)) return false;
return true;
即:币种不是 ForgeEssentials、不是 Vault、也不是 Custom 前缀时,才算物品经济。
getCurrency() 的格式化规则值得注意:它先取 economy.getCurrency(amount),
若返回串的首字符或末字符不是数字,就拼成 amount + " " + currency;
否则原样返回。这是为兼容 Vault 返回的 $32 这类带前后缀金额的写法。
依赖
- MyEssentials-Core - 提供
EconomyAPI(已收录)