API 参考 / capability 包:服务、状态与游玩访问
ModService
模组暴露给其它模组按名读写的状态控制器。它提供与具体类型解耦的原语面:把一组「读数据的口子 / 改状态的开关」定义为若干命名键(key),任何模组都能经 ModServiceRegistry 按全局 id 查到服务后用统一方法读写。
方法速览
| 方法 | 用途 |
|---|---|
has(String) | 该键是否受支持 |
boolValue(String, boolean) | 读布尔值(带 fallback) |
intValue(String, int) | 读整数值(带 fallback) |
doubleValue(String, double) | 读浮点值(带 fallback) |
stringValue(String, String) | 读字符串值(带 fallback) |
setBoolean(String, boolean) | 写布尔值 |
setInt(String, int) | 写整数值 |
setDouble(String, double) | 写浮点值 |
setString(String, String) | 写字符串值 |
完整签名
java
public interface ModService {
boolean has(String key);
boolean boolValue(String key, boolean fallback);
int intValue(String key, int fallback);
double doubleValue(String key, double fallback);
String stringValue(String key, String fallback);
void setBoolean(String key, boolean value);
void setInt(String key, int value);
void setDouble(String key, double value);
void setString(String key, String value);
}has(String key)
签名:
java
boolean has(String key);行为:本服务是否支持指定键。返回 false 表示该键不受支持,读写均无意义。键名与语义由服务提供方约定。
示例:
java
if (svc.has("darkness")) {
double d = svc.doubleValue("darkness", 0.0);
}boolValue(String key, boolean fallback)
签名:
java
boolean boolValue(String key, boolean fallback);行为:读取布尔值;键不存在、类型不符或不受支持时返回 fallback。
示例:
java
boolean visible = svc.boolValue("visible", true);intValue(String key, int fallback)
签名:
java
int intValue(String key, int fallback);行为:读取整数值;键不存在、类型不符或不受支持时返回 fallback。
示例:
java
int count = svc.intValue("count", 0);doubleValue(String key, double fallback)
签名:
java
double doubleValue(String key, double fallback);行为:读取浮点值;键不存在、类型不符或不受支持时返回 fallback。
示例:
java
double darkness = svc.doubleValue("darkness", 0.0);stringValue(String key, String fallback)
签名:
java
String stringValue(String key, String fallback);行为:读取字符串值;键不存在、类型不符或不受支持时返回 fallback(可为 null)。
示例:
java
String mode = svc.stringValue("mode", "default");setBoolean(String key, boolean value)
签名:
java
void setBoolean(String key, boolean value);行为:写入布尔值。是否即时生效、是否持久化、键不受支持时是否忽略,均由服务提供方约定;实现方须保证线程安全。
示例:
java
svc.setBoolean("visible", false);setInt(String key, int value)
签名:
java
void setInt(String key, int value);行为:写入整数值,语义同 setBoolean。
示例:
java
svc.setInt("count", 3);setDouble(String key, double value)
签名:
java
void setDouble(String key, double value);行为:写入浮点值,语义同 setBoolean。
示例:
java
svc.setDouble("darkness", 0.65);setString(String key, String value)
签名:
java
void setString(String key, String value);行为:写入字符串值,语义同 setBoolean。
示例:
java
svc.setString("mode", "hardcore");线程:跨模组调用可能发生在任意线程,实现方须保证 has / 读取 / 写入的线程安全(源码未对调用方声明额外约束)。
稳定性:2.0 起冻结:2.x 内只增不破。