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