From 0950b1b2dd1c444cc2e4004c2d6e6d4e6e8ca026 Mon Sep 17 00:00:00 2001 From: befaci03 Date: Sat, 17 Jan 2026 18:38:59 +0100 Subject: [PATCH] config woo --- .gitignore | 1 + .../eu/creeper/mc/creeperPit/config/Init.java | 30 +++++++++++ .../creeperPit/config/manager/Directory.java | 40 +++++++++++++++ .../mc/creeperPit/config/manager/JSON.java | 51 +++++++++++++++++++ .../mc/creeperPit/config/manager/YAML.java | 48 +++++++++++++++++ .../mc/creeperPit/worldguard/WGManager.java | 6 +++ 6 files changed, 176 insertions(+) create mode 100644 src/main/java/eu/creeper/mc/creeperPit/config/Init.java create mode 100644 src/main/java/eu/creeper/mc/creeperPit/config/manager/Directory.java create mode 100644 src/main/java/eu/creeper/mc/creeperPit/config/manager/JSON.java create mode 100644 src/main/java/eu/creeper/mc/creeperPit/config/manager/YAML.java diff --git a/.gitignore b/.gitignore index 398577f..54d9d3f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ # Ignore Maven target directory target/ +out/ # Ignore IntelliJ IDEA project files .idea/ diff --git a/src/main/java/eu/creeper/mc/creeperPit/config/Init.java b/src/main/java/eu/creeper/mc/creeperPit/config/Init.java new file mode 100644 index 0000000..49050ed --- /dev/null +++ b/src/main/java/eu/creeper/mc/creeperPit/config/Init.java @@ -0,0 +1,30 @@ +package eu.creeper.mc.creeperPit.config; + +import eu.creeper.mc.creeperPit.config.manager.Directory; +import eu.creeper.mc.creeperPit.config.manager.JSON; +import eu.creeper.mc.creeperPit.config.manager.YAML; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; + +public class Init { + private final Directory dir; + + public final JSON effectShop; + public final JSON itemShop; + public final YAML worldguard; + + public Init(JavaPlugin plugin) { + this.dir = new Directory(plugin); + dir.createFolder("shop"); + + File shopCfgs = dir.getSubFolder("shop"); + + File file = new File(shopCfgs, "effects.json"); + this.effectShop = new JSON(plugin, file); + file = new File(shopCfgs, "items.json"); + this.itemShop = new JSON(plugin, file); + file = new File(dir.getPluginFolder(), "worldguard.yml"); + this.worldguard = new YAML(plugin, file); + } +} diff --git a/src/main/java/eu/creeper/mc/creeperPit/config/manager/Directory.java b/src/main/java/eu/creeper/mc/creeperPit/config/manager/Directory.java new file mode 100644 index 0000000..e218698 --- /dev/null +++ b/src/main/java/eu/creeper/mc/creeperPit/config/manager/Directory.java @@ -0,0 +1,40 @@ +package eu.creeper.mc.creeperPit.config.manager; + +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; + +public class Directory { + private final JavaPlugin plugin; + + public Directory(JavaPlugin plugin) { + this.plugin = plugin; + } + + public File getPluginFolder() { + File folder = plugin.getDataFolder(); + if (!folder.exists()) { + folder.mkdirs(); + } + return folder; + } + public File createFolder(String name) { + File folder = new File(plugin.getDataFolder(), name); + if (!folder.exists()) { + folder.mkdirs(); + } + return folder; + } + + public File getSubFolder(String name) { + File sub = new File(getPluginFolder(), name); + if (!sub.exists()) { + sub.mkdirs(); + } + return sub; + } + + public boolean exists(String name) { + return new File(getPluginFolder(), name).exists(); + } +} diff --git a/src/main/java/eu/creeper/mc/creeperPit/config/manager/JSON.java b/src/main/java/eu/creeper/mc/creeperPit/config/manager/JSON.java new file mode 100644 index 0000000..08dfff1 --- /dev/null +++ b/src/main/java/eu/creeper/mc/creeperPit/config/manager/JSON.java @@ -0,0 +1,51 @@ +package eu.creeper.mc.creeperPit.config.manager; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; + +public class JSON { + private final JavaPlugin plugin; + private final File file; + private final Gson gson; + + public JSON(JavaPlugin plugin, File file) { + this.plugin = plugin; + this.file = file; + this.gson = new GsonBuilder().setPrettyPrinting().create(); + } + + public void save(Object data) { + try { + if (!plugin.getDataFolder().exists()) { + plugin.getDataFolder().mkdirs(); + } + try (FileWriter writer = new FileWriter(file)) { + gson.toJson(data, writer); + } + } catch (Exception e) { + plugin.getLogger().severe("Erreur sauvegarde JSON : " + file.getName()); + e.printStackTrace(); + } + } + + public T load(Class clazz, T defaultValue) { + try { + if (!file.exists()) { + save(defaultValue); + return defaultValue; + } + try (FileReader reader = new FileReader(file)) { + return gson.fromJson(reader, clazz); + } + } catch (Exception e) { + plugin.getLogger().severe("Erreur chargement JSON : " + file.getName()); + e.printStackTrace(); + return defaultValue; + } + } +} diff --git a/src/main/java/eu/creeper/mc/creeperPit/config/manager/YAML.java b/src/main/java/eu/creeper/mc/creeperPit/config/manager/YAML.java new file mode 100644 index 0000000..319dfe9 --- /dev/null +++ b/src/main/java/eu/creeper/mc/creeperPit/config/manager/YAML.java @@ -0,0 +1,48 @@ +package eu.creeper.mc.creeperPit.config.manager; + +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; + +public class YAML { + + private final JavaPlugin plugin; + private final File file; + private FileConfiguration config; + + public YAML(JavaPlugin plugin, File file) { + this.plugin = plugin; + this.file = file; + load(); + } + + public void load() { + try { + if (!plugin.getDataFolder().exists()) { + plugin.getDataFolder().mkdirs(); + } + if (!file.exists()) { + file.createNewFile(); + } + config = YamlConfiguration.loadConfiguration(file); + } catch (Exception e) { + plugin.getLogger().severe("Erreur chargement YAML : " + file.getName()); + e.printStackTrace(); + } + } + + public void save() { + try { + config.save(file); + } catch (Exception e) { + plugin.getLogger().severe("Erreur sauvegarde YAML : " + file.getName()); + e.printStackTrace(); + } + } + + public FileConfiguration get() { + return config; + } +} diff --git a/src/main/java/eu/creeper/mc/creeperPit/worldguard/WGManager.java b/src/main/java/eu/creeper/mc/creeperPit/worldguard/WGManager.java index 1b976ce..98c4a87 100644 --- a/src/main/java/eu/creeper/mc/creeperPit/worldguard/WGManager.java +++ b/src/main/java/eu/creeper/mc/creeperPit/worldguard/WGManager.java @@ -8,10 +8,16 @@ import java.util.List; public class WGManager implements Listener { private static final List regions = new ArrayList<>(); + public static List getRegions() { + return regions; + } public static void registerRegion(Region region) { regions.add(region); } + public static void unregisterRegion(Region region) { + regions.remove(region); + } public static Region getRegionAt(Location loc) { for (Region region : regions) {