Advertisement
flidiii

Untitled

Feb 20th, 2025
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.12 KB | Gaming | 0 0
  1. package org.example.ecosub;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7.  
  8. public class PlayerDataManager {
  9.     private static final String DATA_FOLDER = "mods/ecosub/playerdata/";
  10.     private static final Map<String, PlayerData> loadedPlayers = new HashMap<>();
  11.  
  12.     // Сохранение данных игрока в файл
  13.     public static void savePlayerData(PlayerData playerData) {
  14.         File folder = new File(DATA_FOLDER);
  15.         if (!folder.exists()) {
  16.             folder.mkdirs();
  17.         }
  18.  
  19.         File file = new File(folder, playerData.getUsername() + ".json");
  20.         try {
  21.             String jsonContent = JsonFileHandler.serializePlayerData(playerData);
  22.             JsonFileHandler.writeToFile(file, jsonContent);
  23.         } catch (IOException e) {
  24.             e.printStackTrace();
  25.         }
  26.     }
  27.  
  28.     public static PlayerData loadPlayerData(String username) {
  29.         // Проверяем, не загружены ли уже данные
  30.         if (loadedPlayers.containsKey(username)) {
  31.             return loadedPlayers.get(username);
  32.         }
  33.  
  34.         File file = new File(DATA_FOLDER + username + ".json");
  35.         System.out.println("Путь к файлу данных игрока: " + file.getAbsolutePath());
  36.  
  37.         if (file.exists()) {
  38.             try {
  39.                 String jsonContent = JsonFileHandler.readFile(file);
  40.                 PlayerData data = JsonFileHandler.deserializePlayerData(jsonContent);
  41.                 loadedPlayers.put(username, data); // Кэшируем загруженные данные
  42.                 return data;
  43.             } catch (IOException e) {
  44.                 System.out.println("Ошибка чтения файла: " + e.getMessage());
  45.             }
  46.         }
  47.  
  48.         System.out.println("Файл не существует, создаем новые данные для игрока: " + username);
  49.         PlayerData newData = new PlayerData(username);
  50.         loadedPlayers.put(username, newData); // Кэшируем новые данные
  51.         return newData;
  52.     }
  53.  
  54.  
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement