Skip to content

Commit d2ea812

Browse files
committed
GroupDataのcloneも追加
1 parent e179cd9 commit d2ea812

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,14 @@ public GroupData(@NotNull OfflinePlayer player, StorageData storageData, String
9393
}
9494
return result;
9595
}
96+
97+
public GroupData deepClone(StorageData storageData) {
98+
// ここではdeepClone時に groupData は引数で渡される
99+
Set<OfflinePlayer> clonedPlayerList = new HashSet<>(this.playerList);
100+
Map<OfflinePlayer, String[]> clonedPlayerPermission = new HashMap<>(this.playerPermission);
101+
102+
return new GroupData(this.groupName, this.displayName, clonedPlayerList, clonedPlayerPermission, this.isPrivate, storageData, this.ownerPlugin, this.groupUUID);
103+
}
104+
105+
96106
}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public void updateInventoryData(String pageId) {
7878
public InventoryData getInventoryData(String pageId) {
7979
return storageInventory.get(pageId);
8080
}
81-
public StorageData deepClone() {
81+
public StorageData deepClone(GroupData groupData) {
8282
Map<String, InventoryData> clonedInventoryMap = new HashMap<>();
8383
for (Map.Entry<String, InventoryData> entry : this.storageInventory.entrySet()) {
8484
clonedInventoryMap.put(entry.getKey(), entry.getValue().deepClone());
@@ -91,6 +91,9 @@ public StorageData deepClone() {
9191
clone.groupUUID = this.groupUUID; // UUIDは共有で問題なし
9292
clone.fullyLoaded = this.fullyLoaded; // 同期状態も継承
9393

94+
// 引数で渡された groupData をそのまま代入
95+
clone.groupData = groupData;
96+
9497
return clone;
9598
}
9699
}

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,8 +467,14 @@ private static StorageData loadStorageMetaOnly(Connection conn, UUID groupUUID)
467467

468468
Map<String, InventoryData> invMap = loadInventoryMetaOnly(conn, groupUUID, pluginName);
469469
StorageData storageData = new StorageData(requireBankPerm, invMap, bankMoney);
470-
storageData.groupData = GroupManager.getGroupByUUID(groupUUID);
470+
storageData.groupData = loadGroupData(groupUUID);
471471
storageData.groupUUID = groupUUID;
472+
if(storageData.groupData == null){
473+
Bukkit.getLogger().warning("StorageMetaのGroupDataNull");
474+
}else {
475+
Bukkit.getLogger().warning("StorageMetaのGroupData有効!");
476+
}
477+
472478

473479
storageData.setFullyLoaded(false);
474480
return storageData;

0 commit comments

Comments
 (0)