开发者 API
plugin.yml 加 softdepend: [StarBag],编译时引用 StarBag 的 jar(compileOnly)。
import dev.starplugins.bag.api.StarBagAPI;
if (StarBagAPI.ready()) {
StarBagAPI.open(player); // 打开行囊(有云界面时是全屏画面)
int slots = StarBagAPI.capacity(player.getUniqueId()); // 容量
int used = StarBagAPI.used(player.getUniqueId()); // 已用格数
// 增加(负数 = 减少)额外格数;回传新的额外格数,-1 = 已达上限
StarBagAPI.addSlots(uuid, name, 9).thenAccept(bonus -> { ... });
// 把物品直接放进行囊(玩家离线也可以,一笔交易);回传放不下的物品(行囊满了、被限制、正在别的子服使用中)
StarBagAPI.give(uuid, name, List.of(reward)).thenAccept(left -> { ... });
}
- 每个方法都可以在任何线程调用;
give/addSlots回传CompletableFuture; give放不下的物品会原样回传,由你的插件决定怎么处理(例如改寄星月邮箱);- 授权版未授权、插件停用时
ready()回传false。