Skip to content

Commit 44f363a

Browse files
committed
バージョン命名規則変更+バグ修正
1 parent c6af63f commit 44f363a

File tree

4 files changed

+35
-3
lines changed

4 files changed

+35
-3
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>dev.felnull</groupId>
88
<artifactId>BetterStorage</artifactId>
9-
<version>1.0.7-SNAPSHOT</version>
9+
<version>1.1.0-SNAPSHOT</version>
1010
<packaging>jar</packaging>
1111

1212
<name>BetterStorage</name>

src/main/java/dev/felnull/Data/InventoryData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class InventoryData {
1212
public Set<String> requirePermission; // インベントリを開くのに必要な最低限の権限
1313
public Map<Integer, ItemStack> itemStackSlot; // スロットに対応するアイテム
1414
public boolean fullyLoaded = true;
15-
public long version = 0;
15+
public long version = 0L;
1616

1717
public InventoryData(String displayName, int rows, Set<String> requirePermission, Map<Integer, ItemStack> itemStackSlot) {
1818
this.displayName = displayName;

src/main/java/dev/felnull/Data/StorageData.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,15 @@ public boolean isFullyLoaded() {
4040
public void loadPage(Connection conn, String pluginName, String pageId) throws SQLException {
4141
InventoryData inv = storageInventory.get(pageId);
4242
if (inv != null && !inv.isFullyLoaded()) {
43-
DataIO.loadPageItems(conn, groupUUID, pluginName, inv, pageId); // ← UUIDに変更
43+
// ページ内のアイテムを読み込み
44+
DataIO.loadPageItems(conn, groupUUID, pluginName, inv, pageId);
45+
46+
// ← versionが未設定だったらここで取得しておく(重要!)
47+
if (inv.version == 0L) {
48+
inv.version = DataIO.getInventoryPageVersion(conn, groupUUID, pageId);
49+
}
50+
51+
inv.setFullyLoaded(true);
4452
}
4553
}
4654

@@ -53,5 +61,24 @@ public void attach(GroupData group) {
5361
this.groupUUID = group.groupUUID;
5462
this.groupData.storageData = this;
5563
}
64+
65+
/**
66+
* 指定されたページIDに対応するInventoryDataを更新する。
67+
* nullチェック付きで安全に置き換える。
68+
*/
69+
public void updateInventoryData(String pageId, InventoryData newData) {
70+
if (pageId == null || newData == null) {
71+
throw new IllegalArgumentException("pageId または newData が null です");
72+
}
73+
74+
storageInventory.put(pageId, newData);
75+
}
76+
77+
/**
78+
* 指定されたページIDのInventoryDataを取得する(存在しない場合はnull)。
79+
*/
80+
public InventoryData getInventoryData(String pageId) {
81+
return storageInventory.get(pageId);
82+
}
5683
}
5784

src/main/java/dev/felnull/DataIO/DataIO.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,13 @@ public static boolean saveInventoryOnly(GroupData g, StorageData storageData, St
245245
if (!inv.isFullyLoaded()) {
246246
Bukkit.getLogger().warning("ロードされていないデータをセーブしようとしました");
247247
g.storageData.loadPage(conn, g.ownerPlugin, pageId);
248+
inv = g.storageData.storageInventory.get(pageId);
248249
}
249250

250251
long dbPageVersion = getInventoryPageVersion(conn, g.groupUUID, pageId);
251252
if (dbPageVersion != inv.version) {
253+
Bukkit.getLogger().warning("[BetterStorage]Error:InventoryDataVersion不一致:" + g.groupName);
254+
Bukkit.getLogger().warning("[BetterStorage]DB上のVer:" + dbPageVersion + "保存しようとしたVer:" + inv.version);
252255
return false;
253256
}
254257
inv.version = dbPageVersion + 1;
@@ -553,6 +556,7 @@ public static void loadPageItems(Connection conn, UUID groupUUID, String pluginN
553556

554557
inv.itemStackSlot = slotMap;
555558
inv.setFullyLoaded(true);
559+
inv.version = getInventoryPageVersion(conn, groupUUID, pageId);
556560
}
557561

558562
/** inventory_item_table からアイテムを読み込み */
@@ -625,6 +629,7 @@ public static long getInventoryPageVersion(Connection conn, UUID groupUUID, Stri
625629
}
626630
}
627631

632+
628633
// ===========================================================
629634
// ===== 3. DELETE ==========================================
630635
// ===========================================================

0 commit comments

Comments
 (0)