diff --git a/src/main/java/com/fibermc/essentialcommands/playerdata/PlayerDataFactory.java b/src/main/java/com/fibermc/essentialcommands/playerdata/PlayerDataFactory.java index a2f0e138..5c1d5cf2 100644 --- a/src/main/java/com/fibermc/essentialcommands/playerdata/PlayerDataFactory.java +++ b/src/main/java/com/fibermc/essentialcommands/playerdata/PlayerDataFactory.java @@ -65,6 +65,15 @@ private static PlayerData create(ServerPlayer player, File playerDataFile) { public static PlayerData create(NamedLocationStorage homes, File saveFile) { String fileName = saveFile.getName(); UUID playerUuid = UUID.fromString(fileName.substring(0, fileName.indexOf(".dat"))); + + if (PlayerDataManager.exists()) { + PlayerData activePlayerData = PlayerDataManager.getInstance().getByUuid(playerUuid); + if (activePlayerData != null) { + activePlayerData.homes.putAll(homes); + activePlayerData.setDirty(); + return activePlayerData; + } + } PlayerData playerData = null; if (Files.exists(saveFile.toPath()) && saveFile.length() != 0) { try { @@ -98,6 +107,7 @@ public static PlayerData create(NamedLocationStorage homes, File saveFile) { if (playerData == null) { playerData = new PlayerData(saveFile); + playerData.homes.putAll(homes); } playerData.setDirty();