1
0
mirror of https://github.com/Suiranoil/SkinRestorer.git synced 2026-01-16 04:42:12 +00:00

use java nio api for files

This commit is contained in:
2024-07-01 18:44:29 +03:00
parent 8280c501cf
commit ca55fe845d
3 changed files with 51 additions and 49 deletions

View File

@@ -25,22 +25,20 @@ public final class Config {
}
public static Config load(Path path) {
var configFile = path.resolve(Config.CONFIG_FILENAME).toFile();
var configFile = path.resolve(Config.CONFIG_FILENAME);
Config config = null;
if (configFile.exists()) {
try {
config = JsonUtils.fromJson(FileUtils.readFile(configFile), Config.class);
} catch (Exception e) {
SkinRestorer.LOGGER.warn("Could not load config", e);
}
try {
config = JsonUtils.fromJson(FileUtils.readFile(configFile), Config.class);
} catch (Exception e) {
SkinRestorer.LOGGER.warn("Could not load config", e);
}
if (config == null) {
config = new Config();
}
FileUtils.writeFile(path.toFile(), Config.CONFIG_FILENAME, JsonUtils.toJson(config));
FileUtils.writeFile(path, Config.CONFIG_FILENAME, JsonUtils.toJson(config));
return config;
}

View File

@@ -4,7 +4,7 @@ import com.mojang.authlib.properties.Property;
import net.lionarius.skinrestorer.util.FileUtils;
import net.lionarius.skinrestorer.util.JsonUtils;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Objects;
import java.util.UUID;
@@ -20,12 +20,12 @@ public class SkinIO {
}
public boolean skinExists(UUID uuid) {
return savePath.resolve(uuid + FILE_EXTENSION).toFile().exists();
return Files.exists(savePath.resolve(uuid + FILE_EXTENSION));
}
public SkinValue loadSkin(UUID uuid) {
try {
var value = SkinIO.loadSkin(savePath.resolve(uuid + FILE_EXTENSION).toFile());
var value = SkinIO.loadSkin(savePath.resolve(uuid + FILE_EXTENSION));
Objects.requireNonNull(value.provider());
return value;
} catch (Exception e) {
@@ -33,7 +33,7 @@ public class SkinIO {
}
}
private static SkinValue loadSkin(File file) {
private static SkinValue loadSkin(Path file) {
var json = FileUtils.readFile(file);
try {
return JsonUtils.fromJson(json, SkinValue.class);
@@ -44,7 +44,11 @@ public class SkinIO {
}
public void saveSkin(UUID uuid, SkinValue skin) {
FileUtils.writeFile(savePath.toFile(), uuid + FILE_EXTENSION, JsonUtils.toJson(skin));
FileUtils.writeFile(savePath, uuid + FILE_EXTENSION, JsonUtils.toJson(skin));
}
public void removeSkin(UUID uuid) {
}
private static SkinValue convertFromOldFormat(Property property) {

View File

@@ -4,7 +4,9 @@ import net.lionarius.skinrestorer.SkinRestorer;
import net.lionarius.skinrestorer.config.Config;
import net.lionarius.skinrestorer.skin.SkinIO;
import java.io.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -16,25 +18,24 @@ public final class FileUtils {
public static void tryMigrateOldSkinDirectory(Path newDirectory) {
try {
File newDirectoryFile = newDirectory.toFile();
if (!newDirectoryFile.exists())
newDirectoryFile.mkdirs();
if (!Files.exists(newDirectory))
Files.createDirectories(newDirectory);
File configDirectory = SkinRestorer.getConfigDir().toFile();
File[] files = configDirectory.listFiles(
(root, name) -> !name.startsWith(Translation.LEGACY_TRANSLATION_FILENAME)
&& !name.startsWith(Config.CONFIG_FILENAME)
&& name.endsWith(SkinIO.FILE_EXTENSION)
);
if (files == null)
return;
var configDirectory = SkinRestorer.getConfigDir();
try (var stream = Files.list(configDirectory)) {
var files = stream.filter(file -> {
var name = file.getFileName();
return Files.isRegularFile(file)
&& !name.startsWith(Translation.LEGACY_TRANSLATION_FILENAME)
&& !name.startsWith(Config.CONFIG_FILENAME)
&& name.endsWith(SkinIO.FILE_EXTENSION);
}).toList();
for (File file : files) {
if (file.isFile())
Files.move(file.toPath(), newDirectory.resolve(file.getName()), StandardCopyOption.REPLACE_EXISTING);
for (var file : files)
Files.move(file, newDirectory.resolve(file.getFileName()), StandardCopyOption.REPLACE_EXISTING);
}
} catch (Exception e) {
SkinRestorer.LOGGER.error("Could not migrate skin directory", e);
SkinRestorer.LOGGER.error("could not migrate skin directory", e);
}
}
@@ -47,33 +48,32 @@ public final class FileUtils {
return StringUtils.readString(reader);
}
} catch (IOException e) {
SkinRestorer.LOGGER.error("failed to read resource", e);
return null;
}
}
public static String readFile(File file) {
try (BufferedReader reader = new BufferedReader(new FileReader(file, StandardCharsets.UTF_8))) {
return StringUtils.readString(reader);
} catch (IOException e) {
return null;
}
}
public static boolean writeFile(File path, String fileName, String content) {
public static String readFile(Path file) {
try {
if (!path.exists())
path.mkdirs();
return Files.readString(file);
} catch (Exception e) {
SkinRestorer.LOGGER.error("failed to read file", e);
return null;
}
}
File file = new File(path, fileName);
if (!file.exists())
file.createNewFile();
public static void writeFile(Path path, String fileName, String content) {
try {
Files.createDirectories(path);
try (FileWriter writer = new FileWriter(file, StandardCharsets.UTF_8)) {
writer.write(content);
}
return true;
var file = path.resolve(fileName);
if (!Files.exists(file))
Files.createFile(file);
Files.writeString(file, content);
} catch (IOException e) {
return false;
SkinRestorer.LOGGER.error("failed to write file", e);
}
}
}