mirror of
https://github.com/LuckPerms/LuckPerms.git
synced 2024-11-06 19:09:31 +01:00
Refactor configurate dao
This commit is contained in:
parent
d992d7f77c
commit
ae8fe0fe1e
@ -57,10 +57,12 @@ import me.lucko.luckperms.common.utils.ImmutableCollectors;
|
|||||||
import ninja.leaping.configurate.ConfigurationNode;
|
import ninja.leaping.configurate.ConfigurationNode;
|
||||||
import ninja.leaping.configurate.SimpleConfigurationNode;
|
import ninja.leaping.configurate.SimpleConfigurationNode;
|
||||||
import ninja.leaping.configurate.Types;
|
import ninja.leaping.configurate.Types;
|
||||||
|
import ninja.leaping.configurate.loader.ConfigurationLoader;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FilenameFilter;
|
import java.io.FilenameFilter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -104,13 +106,21 @@ public abstract class ConfigurateDao extends AbstractDao {
|
|||||||
this.dataFolderName = dataFolderName;
|
this.dataFolderName = dataFolderName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected abstract ConfigurationLoader<? extends ConfigurationNode> loader(Path path);
|
||||||
|
|
||||||
private ConfigurationNode readFile(StorageLocation location, String name) throws IOException {
|
private ConfigurationNode readFile(StorageLocation location, String name) throws IOException {
|
||||||
File file = new File(getDirectory(location), name + fileExtension);
|
File file = new File(getDirectory(location), name + fileExtension);
|
||||||
registerFileAction(location, file);
|
registerFileAction(location, file);
|
||||||
return readFile(file);
|
return readFile(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract ConfigurationNode readFile(File file) throws IOException;
|
private ConfigurationNode readFile(File file) throws IOException {
|
||||||
|
if (!file.exists()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return loader(file.toPath()).load();
|
||||||
|
}
|
||||||
|
|
||||||
private void saveFile(StorageLocation location, String name, ConfigurationNode node) throws IOException {
|
private void saveFile(StorageLocation location, String name, ConfigurationNode node) throws IOException {
|
||||||
File file = new File(getDirectory(location), name + fileExtension);
|
File file = new File(getDirectory(location), name + fileExtension);
|
||||||
@ -118,7 +128,16 @@ public abstract class ConfigurateDao extends AbstractDao {
|
|||||||
saveFile(file, node);
|
saveFile(file, node);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract void saveFile(File file, ConfigurationNode node) throws IOException;
|
private void saveFile(File file, ConfigurationNode node) throws IOException {
|
||||||
|
if (node == null) {
|
||||||
|
if (file.exists()) {
|
||||||
|
file.delete();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
loader(file.toPath()).save(node);
|
||||||
|
}
|
||||||
|
|
||||||
private File getDirectory(StorageLocation location) {
|
private File getDirectory(StorageLocation location) {
|
||||||
switch (location) {
|
switch (location) {
|
||||||
|
@ -29,11 +29,11 @@ import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
|
|||||||
|
|
||||||
import ninja.leaping.configurate.ConfigurationNode;
|
import ninja.leaping.configurate.ConfigurationNode;
|
||||||
import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
|
import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
|
||||||
|
import ninja.leaping.configurate.loader.ConfigurationLoader;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
|
||||||
public class HoconDao extends ConfigurateDao {
|
public class HoconDao extends ConfigurateDao {
|
||||||
|
|
||||||
@ -42,33 +42,10 @@ public class HoconDao extends ConfigurateDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ConfigurationNode readFile(File file) throws IOException {
|
protected ConfigurationLoader<? extends ConfigurationNode> loader(Path path) {
|
||||||
if (!file.exists()) {
|
return HoconConfigurationLoader.builder()
|
||||||
return null;
|
.setSource(() -> Files.newBufferedReader(path, StandardCharsets.UTF_8))
|
||||||
}
|
.setSink(() -> Files.newBufferedWriter(path, StandardCharsets.UTF_8))
|
||||||
|
|
||||||
HoconConfigurationLoader loader = HoconConfigurationLoader.builder()
|
|
||||||
.setSource(() -> Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8))
|
|
||||||
.setSink(() -> Files.newBufferedWriter(file.toPath(), StandardCharsets.UTF_8))
|
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
return loader.load();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void saveFile(File file, ConfigurationNode node) throws IOException {
|
|
||||||
if (node == null) {
|
|
||||||
if (file.exists()) {
|
|
||||||
file.delete();
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
HoconConfigurationLoader loader = HoconConfigurationLoader.builder()
|
|
||||||
.setSource(() -> Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8))
|
|
||||||
.setSink(() -> Files.newBufferedWriter(file.toPath(), StandardCharsets.UTF_8))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
loader.save(node);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,11 +29,11 @@ import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
|
|||||||
|
|
||||||
import ninja.leaping.configurate.ConfigurationNode;
|
import ninja.leaping.configurate.ConfigurationNode;
|
||||||
import ninja.leaping.configurate.gson.GsonConfigurationLoader;
|
import ninja.leaping.configurate.gson.GsonConfigurationLoader;
|
||||||
|
import ninja.leaping.configurate.loader.ConfigurationLoader;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
|
||||||
public class JsonDao extends ConfigurateDao {
|
public class JsonDao extends ConfigurateDao {
|
||||||
|
|
||||||
@ -42,35 +42,11 @@ public class JsonDao extends ConfigurateDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ConfigurationNode readFile(File file) throws IOException {
|
protected ConfigurationLoader<? extends ConfigurationNode> loader(Path path) {
|
||||||
if (!file.exists()) {
|
return GsonConfigurationLoader.builder()
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
GsonConfigurationLoader loader = GsonConfigurationLoader.builder()
|
|
||||||
.setIndent(2)
|
.setIndent(2)
|
||||||
.setSource(() -> Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8))
|
.setSource(() -> Files.newBufferedReader(path, StandardCharsets.UTF_8))
|
||||||
.setSink(() -> Files.newBufferedWriter(file.toPath(), StandardCharsets.UTF_8))
|
.setSink(() -> Files.newBufferedWriter(path, StandardCharsets.UTF_8))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
return loader.load();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void saveFile(File file, ConfigurationNode node) throws IOException {
|
|
||||||
if (node == null) {
|
|
||||||
if (file.exists()) {
|
|
||||||
file.delete();
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
GsonConfigurationLoader loader = GsonConfigurationLoader.builder()
|
|
||||||
.setIndent(2)
|
|
||||||
.setSource(() -> Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8))
|
|
||||||
.setSink(() -> Files.newBufferedWriter(file.toPath(), StandardCharsets.UTF_8))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
loader.save(node);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,12 +30,12 @@ import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
|
|||||||
import org.yaml.snakeyaml.DumperOptions;
|
import org.yaml.snakeyaml.DumperOptions;
|
||||||
|
|
||||||
import ninja.leaping.configurate.ConfigurationNode;
|
import ninja.leaping.configurate.ConfigurationNode;
|
||||||
|
import ninja.leaping.configurate.loader.ConfigurationLoader;
|
||||||
import ninja.leaping.configurate.yaml.YAMLConfigurationLoader;
|
import ninja.leaping.configurate.yaml.YAMLConfigurationLoader;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
|
||||||
public class YamlDao extends ConfigurateDao {
|
public class YamlDao extends ConfigurateDao {
|
||||||
|
|
||||||
@ -44,36 +44,12 @@ public class YamlDao extends ConfigurateDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ConfigurationNode readFile(File file) throws IOException {
|
protected ConfigurationLoader<? extends ConfigurationNode> loader(Path path) {
|
||||||
if (!file.exists()) {
|
return YAMLConfigurationLoader.builder()
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
YAMLConfigurationLoader loader = YAMLConfigurationLoader.builder()
|
|
||||||
.setFlowStyle(DumperOptions.FlowStyle.BLOCK)
|
|
||||||
.setSource(() -> Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8))
|
|
||||||
.setSink(() -> Files.newBufferedWriter(file.toPath(), StandardCharsets.UTF_8))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
return loader.load();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void saveFile(File file, ConfigurationNode node) throws IOException {
|
|
||||||
if (node == null) {
|
|
||||||
if (file.exists()) {
|
|
||||||
file.delete();
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
YAMLConfigurationLoader loader = YAMLConfigurationLoader.builder()
|
|
||||||
.setFlowStyle(DumperOptions.FlowStyle.BLOCK)
|
.setFlowStyle(DumperOptions.FlowStyle.BLOCK)
|
||||||
.setIndent(2)
|
.setIndent(2)
|
||||||
.setSource(() -> Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8))
|
.setSource(() -> Files.newBufferedReader(path, StandardCharsets.UTF_8))
|
||||||
.setSink(() -> Files.newBufferedWriter(file.toPath(), StandardCharsets.UTF_8))
|
.setSink(() -> Files.newBufferedWriter(path, StandardCharsets.UTF_8))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
loader.save(node);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user