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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user