Skip to content

Commit f8dd8c8

Browse files
committed
バグ修正
1 parent e3c638e commit f8dd8c8

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public void loadPage(Connection conn, String pluginName, String pageId) throws S
4545

4646
// ← versionが未設定だったらここで取得しておく(重要!)
4747
if (inv.version == 0L) {
48-
inv.version = DataIO.getInventoryPageVersion(conn, groupUUID, pageId);
48+
inv.version = DataIO.getInventoryPageVersion(conn, groupUUID, pluginName, pageId);
4949
}
5050

5151
inv.setFullyLoaded(true);

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

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,13 @@ public static boolean saveGroupData(GroupData g) {
6666

6767
private static boolean saveSinglePage(Connection conn, GroupData g, String pageId, InventoryData inv) throws SQLException {
6868
// 🔁 versionチェック
69-
long dbPageVersion = getInventoryPageVersion(conn, g.groupUUID, pageId);
70-
if (dbPageVersion != inv.version) {
69+
long dbPageVersion = getInventoryPageVersion(conn, g.groupUUID, g.ownerPlugin, pageId);
70+
Bukkit.getLogger().info("[Debug] pageId=" + pageId + ", client=" + inv.version + ", db=" + dbPageVersion);
71+
if (dbPageVersion != 0 && dbPageVersion != inv.version) {
7172
Bukkit.getLogger().warning("[BetterStorage] ページバージョン不一致: " + pageId);
7273
return false;
7374
}
74-
inv.version = dbPageVersion + 1;
75+
7576

7677
// ---------- inventory_table ----------
7778
String invSql = "REPLACE INTO inventory_table " +
@@ -183,6 +184,8 @@ private static boolean saveSinglePage(Connection conn, GroupData g, String pageI
183184
ps.executeBatch();
184185
}
185186
}
187+
188+
inv.version = dbPageVersion + 1;
186189
return true;
187190
}
188191

@@ -248,13 +251,12 @@ public static boolean saveInventoryOnly(GroupData g, StorageData storageData, St
248251
inv = g.storageData.storageInventory.get(pageId);
249252
}
250253

251-
long dbPageVersion = getInventoryPageVersion(conn, g.groupUUID, pageId);
254+
long dbPageVersion = getInventoryPageVersion(conn, g.groupUUID, g.ownerPlugin, pageId);
252255
if (dbPageVersion != inv.version) {
253256
Bukkit.getLogger().warning("[BetterStorage]Error:InventoryDataVersion不一致:" + g.groupName);
254257
Bukkit.getLogger().warning("[BetterStorage]DB上のVer:" + dbPageVersion + "保存しようとしたVer:" + inv.version);
255258
return false;
256259
}
257-
inv.version = dbPageVersion + 1;
258260

259261
saveSinglePage(conn, g, pageId, inv);
260262
saveGroupTable(conn, g); // group_tableは必須(versionが無くても更新してOK)
@@ -366,6 +368,7 @@ public static GroupData loadGroupData(String groupName) {
366368
String sql = "SELECT group_uuid FROM group_table WHERE group_name = ?";
367369
try (PreparedStatement ps = conn.prepareStatement(sql)) {
368370
ps.setString(1, input);
371+
Bukkit.getLogger().info("🔍 group_name lookup: '" + input + "'");
369372
try (ResultSet rs = ps.executeQuery()) {
370373
if (rs.next()) {
371374
return UUID.fromString(rs.getString("group_uuid"));
@@ -418,10 +421,10 @@ private static Map<String, InventoryData> loadInventoryData(Connection conn, UUI
418421
InventoryData inv = new InventoryData(display, rows, reqPerm, slotMap);
419422
inv.version = version; // ← version設定!
420423
map.put(pageId, inv);
424+
Bukkit.getLogger().info(pageId + "loadinvdata:"+ version);
421425
}
422426
}
423427
}
424-
425428
loadTags(conn, groupUUID, pluginName, map);
426429
return map;
427430
}
@@ -556,7 +559,6 @@ public static void loadPageItems(Connection conn, UUID groupUUID, String pluginN
556559

557560
inv.itemStackSlot = slotMap;
558561
inv.setFullyLoaded(true);
559-
inv.version = getInventoryPageVersion(conn, groupUUID, pageId);
560562
}
561563

562564
/** inventory_item_table からアイテムを読み込み */
@@ -618,11 +620,12 @@ private static String loadOwnerPlugin(Connection conn, UUID groupUUID) throws SQ
618620
* @return
619621
* @throws SQLException
620622
*/
621-
public static long getInventoryPageVersion(Connection conn, UUID groupUUID, String pageId) throws SQLException {
622-
String sql = "SELECT version FROM inventory_table WHERE group_uuid = ? AND page_id = ?";
623+
public static long getInventoryPageVersion(Connection conn, UUID groupUUID, String pluginName, String pageId) throws SQLException {
624+
String sql = "SELECT version FROM inventory_table WHERE group_uuid = ? AND plugin_name = ? AND page_id = ?";
623625
try (PreparedStatement ps = conn.prepareStatement(sql)) {
624626
ps.setString(1, groupUUID.toString());
625-
ps.setString(2, pageId);
627+
ps.setString(2, pluginName);
628+
ps.setString(3, pageId);
626629
try (ResultSet rs = ps.executeQuery()) {
627630
return rs.next() ? rs.getLong("version") : 0;
628631
}

0 commit comments

Comments
 (0)