このドキュメントは BetterStorage の外部連携用APIについて記述しています。
String groupName: グループ名(表示名)String groupUUID: 内部識別用UUID(固定)boolean isPrivate: 個人用グループかどうかString ownerPlugin: このグループを所有するプラグイン名long version: バージョン(保存・競合検出用)StorageData storageData: ストレージ全体のデータ
Map<String, InventoryData> storageInventory: ページIDをキーとしたインベントリ情報double bankMoney: 銀行資金boolean requireBankPermission: 銀行利用に権限が必要かどうか
String pageId: インベントリページのIDString displayName: 表示名int rowCount: 行数(1〜6)boolean requirePermission: 権限が必要かMap<Integer, ItemStack> itemSlot: スロット番号とItemStackのマップList<String> userTags: タグのリストlong version: ページ単位でのバージョン番号
指定したグループ名のデータをデータベースから読み込みます。
UUIDベースでグループデータを読み込みます。
グループ全体のデータを保存します(全ページ・メンバー・タグ含む)。
指定されたバージョンと一致する場合のみ保存します(楽観的排他制御)。
ページ単位でインベントリだけを保存。バージョン整合性チェックも含まれます。
saveRollbackLog(GroupData groupData): グループ全体の完全スナップショットを保存restoreGroupFromRollback(String groupUUID, LocalDateTime timestamp): 指定時点のバックアップから復元getRollbackTimestamps(String groupUUID): すべてのバックアップ時刻を取得
saveDiffLogs(DatabaseManager db, GroupData groupData): 差分ログ(ページごと)を保存restoreGroupFromDiffLog(DatabaseManager db, GroupData groupData, LocalDateTime timestamp): 差分ログから復元(ページごと)
- タグに基づくページフィルタリング
- ユーザーの所属グループ・権限判定
- 他プラグインからのCRUD操作(安全なラッパー)
(詳しくは TableInitializer を参照)
- group_table
- group_member_table
- storage_table
- inventory_table
- inventory_item_table
- tag_table
- inventory_item_log
- rollback_log
- 外部プラグインは
GroupManager.getGroupByUUID(UUID)またはGroupManager.getGroupByName(String)を通じてGroupDataを取得可能。 GroupDataを直接変更した場合、DataIO.saveGroupData()によって保存が必要。- 差分保存の際は
saveInventoryOnlyを使うと効率的。
BetterStorage 1.0.6-SNAPSHOT 用API仕様書