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

allow to delete skin from disk and remove skin without saving

This commit is contained in:
2024-07-01 18:53:34 +03:00
parent ca55fe845d
commit b3c4340b89
4 changed files with 33 additions and 12 deletions

View File

@@ -38,7 +38,7 @@ public final class Config {
config = new Config();
}
FileUtils.writeFile(path, Config.CONFIG_FILENAME, JsonUtils.toJson(config));
FileUtils.writeFile(path.resolve(Config.CONFIG_FILENAME), JsonUtils.toJson(config));
return config;
}

View File

@@ -20,12 +20,12 @@ public class SkinIO {
}
public boolean skinExists(UUID uuid) {
return Files.exists(savePath.resolve(uuid + FILE_EXTENSION));
return Files.exists(savePath.resolve(SkinIO.uuidToFilename(uuid)));
}
public SkinValue loadSkin(UUID uuid) {
try {
var value = SkinIO.loadSkin(savePath.resolve(uuid + FILE_EXTENSION));
var value = SkinIO.loadSkin(savePath.resolve(SkinIO.uuidToFilename(uuid)));
Objects.requireNonNull(value.provider());
return value;
} catch (Exception e) {
@@ -44,11 +44,15 @@ public class SkinIO {
}
public void saveSkin(UUID uuid, SkinValue skin) {
FileUtils.writeFile(savePath, uuid + FILE_EXTENSION, JsonUtils.toJson(skin));
FileUtils.writeFile(savePath.resolve(SkinIO.uuidToFilename(uuid)), JsonUtils.toJson(skin));
}
public void removeSkin(UUID uuid) {
public void deleteSkin(UUID uuid) {
FileUtils.deleteFile(savePath.resolve(SkinIO.uuidToFilename(uuid)));
}
private static String uuidToFilename(UUID uuid) {
return uuid + FILE_EXTENSION;
}
private static SkinValue convertFromOldFormat(Property property) {

View File

@@ -26,12 +26,20 @@ public class SkinStorage {
return skinMap.get(uuid);
}
public void removeSkin(UUID uuid) {
public void removeSkin(UUID uuid, boolean save) {
var skin = skinMap.remove(uuid);
if (skin != null)
if (skin != null && save)
skinIO.saveSkin(uuid, skin);
}
public void removeSkin(UUID uuid) {
this.removeSkin(uuid, true);
}
public void deleteSkin(UUID uuid) {
this.skinIO.deleteSkin(uuid);
}
public void setSkin(UUID uuid, SkinValue skin) {
if (skin == null)
skin = SkinValue.EMPTY;

View File

@@ -62,11 +62,11 @@ public final class FileUtils {
}
}
public static void writeFile(Path path, String fileName, String content) {
public static void writeFile(Path file, String content) {
try {
Files.createDirectories(path);
var file = path.resolve(fileName);
var root = file.getRoot();
if (root != null)
Files.createDirectories(root);
if (!Files.exists(file))
Files.createFile(file);
@@ -76,4 +76,13 @@ public final class FileUtils {
SkinRestorer.LOGGER.error("failed to write file", e);
}
}
public static void deleteFile(Path file) {
try {
if (Files.exists(file))
Files.delete(file);
} catch (IOException e) {
SkinRestorer.LOGGER.error("failed to delete file", e);
}
}
}