From e6f2e2c25a4d2c4df2a89b0d5cc4dc68159ce334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathias=20Lystb=C3=A6k?= Date: Mon, 11 Mar 2024 01:16:49 +0100 Subject: [PATCH] Fix an issue where config.yml was no longer being created... --- pom.xml | 2 +- .../mathiasl/legacychatfix/LegacyChatFix.java | 9 ++++- .../LegacyChatFixPacketAdapter.java | 2 ++ .../legacychatfix/config/ConfigManager.java | 35 +++++++++++++++++++ 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 4420c25..65e4dc5 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ eu.mathiasl LegacyChatFix - 0.1-SNAPSHOT + 0.5-SNAPSHOT jar LegacyChatFix diff --git a/src/main/java/eu/mathiasl/legacychatfix/LegacyChatFix.java b/src/main/java/eu/mathiasl/legacychatfix/LegacyChatFix.java index 623c851..3a18994 100644 --- a/src/main/java/eu/mathiasl/legacychatfix/LegacyChatFix.java +++ b/src/main/java/eu/mathiasl/legacychatfix/LegacyChatFix.java @@ -6,12 +6,16 @@ import org.bukkit.plugin.java.JavaPlugin; public final class LegacyChatFix extends JavaPlugin { - ConfigManager configManager = new ConfigManager(this); + ConfigManager configManager; LegacyChatFixPacketAdapter adapter; @Override public void onEnable() { + configManager = new ConfigManager(this); + configManager.saveDefaultConfig("config.yml"); + configManager.checkAndUpdateConfig("config.yml"); + adapter = new LegacyChatFixPacketAdapter(this, configManager); ProtocolLibrary.getProtocolManager().addPacketListener(adapter); } @@ -20,5 +24,8 @@ public final class LegacyChatFix extends JavaPlugin { public void onDisable() { // Plugin shutdown logic ProtocolLibrary.getProtocolManager().removePacketListener(adapter); + configManager.saveConfig("config.yml"); } + + } diff --git a/src/main/java/eu/mathiasl/legacychatfix/LegacyChatFixPacketAdapter.java b/src/main/java/eu/mathiasl/legacychatfix/LegacyChatFixPacketAdapter.java index 4c63a95..d05fb57 100644 --- a/src/main/java/eu/mathiasl/legacychatfix/LegacyChatFixPacketAdapter.java +++ b/src/main/java/eu/mathiasl/legacychatfix/LegacyChatFixPacketAdapter.java @@ -103,6 +103,8 @@ public class LegacyChatFixPacketAdapter extends PacketAdapter { */ @Override public void onPacketSending(PacketEvent event) { + if (legacyColors == null) return; + // Get the chat components from the packet StructureModifier chatComponents = event.getPacket().getChatComponents(); // If there are no chat components, return diff --git a/src/main/java/eu/mathiasl/legacychatfix/config/ConfigManager.java b/src/main/java/eu/mathiasl/legacychatfix/config/ConfigManager.java index b9481ff..810bc9e 100644 --- a/src/main/java/eu/mathiasl/legacychatfix/config/ConfigManager.java +++ b/src/main/java/eu/mathiasl/legacychatfix/config/ConfigManager.java @@ -6,6 +6,7 @@ import org.bukkit.plugin.java.JavaPlugin; import java.io.File; import java.io.IOException; +import java.nio.file.Files; import java.util.HashMap; import java.util.Map; @@ -61,4 +62,38 @@ public class ConfigManager { } return configFiles.get(configName); } + + + public void checkAndUpdateConfig(String configName) { + File configFile = new File(plugin.getDataFolder(), configName); + if (!configFile.exists()) { + plugin.saveResource(configName, false); + return; + } + + FileConfiguration config = YamlConfiguration.loadConfiguration(configFile); + String configVersion = config.getString("ConfigVersion", "0"); // Default to "0" if not found + if (!"1.0".equals(configVersion)) { + backupAndReplaceConfig(configName); + + // After backing up and copying new ones, you might want to reload these configs into your ConfigManager + // assuming you have such a method in your ConfigManager + reloadConfig(configName); + } + } + + private void backupAndReplaceConfig(String fileName) { + File configFile = new File(plugin.getDataFolder(), fileName); + File backupFile = new File(plugin.getDataFolder(), fileName + ".BACKUP"); + + // Backup the old file + try { + Files.move(configFile.toPath(), backupFile.toPath()); + } catch (IOException e) { + plugin.getLogger().warning("Could not backup " + fileName + ": " + e.getMessage()); + } + + // Copy new file from resources + plugin.saveResource(fileName, false); + } }