From 238ad2b94977d524739f6638abab90af1cf169b7 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 7 Oct 2020 10:59:21 +0100 Subject: [PATCH] Added lang autoupdate --- .../willfp/ecoenchants/v1_16_R1/Cooldown.java | 1 + Plugin/pom.xml | 6 +++ .../ecoenchants/config/ConfigManager.java | 3 +- .../ecoenchants/config/UpdatingLang.java | 52 +++++++++++++++++++ .../ecoenchants/config/configs/Lang.java | 5 +- .../ecoenchants/normal/Succession.java | 1 - Plugin/src/main/resources/lang.yml | 2 - 7 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 Plugin/src/main/java/com/willfp/ecoenchants/config/UpdatingLang.java diff --git a/NMS/v1_16_R1/src/main/java/com/willfp/ecoenchants/v1_16_R1/Cooldown.java b/NMS/v1_16_R1/src/main/java/com/willfp/ecoenchants/v1_16_R1/Cooldown.java index bbeed521..f5e021ef 100644 --- a/NMS/v1_16_R1/src/main/java/com/willfp/ecoenchants/v1_16_R1/Cooldown.java +++ b/NMS/v1_16_R1/src/main/java/com/willfp/ecoenchants/v1_16_R1/Cooldown.java @@ -1,6 +1,7 @@ package com.willfp.ecoenchants.v1_16_R1; import com.willfp.ecoenchants.API.CooldownWrapper; +import org.bukkit.craftbukkit.libs.org.apache.commons.io.FileUtils; import org.bukkit.entity.Player; public class Cooldown implements CooldownWrapper { diff --git a/Plugin/pom.xml b/Plugin/pom.xml index a5f469e0..52d1ec76 100644 --- a/Plugin/pom.xml +++ b/Plugin/pom.xml @@ -157,6 +157,12 @@ 3.0.3 compile + + commons-io + commons-io + 2.8.0 + provided + com.sk89q.worldguard worldguard-bukkit diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/config/ConfigManager.java b/Plugin/src/main/java/com/willfp/ecoenchants/config/ConfigManager.java index 9d785548..8e21ad8a 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/config/ConfigManager.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/config/ConfigManager.java @@ -9,7 +9,6 @@ import java.util.Set; public class ConfigManager { public static final HashMap configVersions = new HashMap() {{ put("config", 5.0); - put("lang", 5.0); put("target", 1.0); put("rarity", 1.0); }}; @@ -25,7 +24,7 @@ public class ConfigManager { * Called on /ecoreload */ public static void updateConfigs() { - LANG.reload(); + LANG.update(); CONFIG.reload(); TARGET.reload(); RARITY.reload(); diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/config/UpdatingLang.java b/Plugin/src/main/java/com/willfp/ecoenchants/config/UpdatingLang.java new file mode 100644 index 00000000..fb2e4fd0 --- /dev/null +++ b/Plugin/src/main/java/com/willfp/ecoenchants/config/UpdatingLang.java @@ -0,0 +1,52 @@ +package com.willfp.ecoenchants.config; + +import com.willfp.ecoenchants.EcoEnchantsPlugin; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.io.*; +import java.nio.charset.StandardCharsets; + +public abstract class UpdatingLang { + public YamlConfiguration config; + private File configFile; + + public UpdatingLang() { + init(); + } + + private void init() { + if (!new File(EcoEnchantsPlugin.getInstance().getDataFolder(), "lang.yml").exists()) { + createFile(); + } + + this.configFile = new File(EcoEnchantsPlugin.getInstance().getDataFolder(), "lang.yml"); + this.config = YamlConfiguration.loadConfiguration(configFile); + + update(); + } + + private void createFile() { + EcoEnchantsPlugin.getInstance().saveResource("lang.yml", false); + } + + public void update() { + try { + InputStream newIn = EcoEnchantsPlugin.getInstance().getResource("lang.yml"); + BufferedReader reader = new BufferedReader(new InputStreamReader(newIn, StandardCharsets.UTF_8)); + YamlConfiguration newConfig = new YamlConfiguration(); + newConfig.load(reader); + + newConfig.getKeys(true).forEach((s -> { + if (!config.getKeys(true).contains(s)) { + config.set(s, newConfig.get(s)); + } + })); + + config.save(configFile); + config.load(configFile); + } catch (IOException | InvalidConfigurationException e) { + e.printStackTrace(); + } + } +} diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Lang.java b/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Lang.java index 64714e5a..aa03fa13 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Lang.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Lang.java @@ -1,5 +1,6 @@ package com.willfp.ecoenchants.config.configs; +import com.willfp.ecoenchants.config.UpdatingLang; import com.willfp.ecoenchants.config.YamlConfig; import org.bukkit.ChatColor; @@ -8,9 +9,9 @@ import java.util.List; /** * Wrapper for lang.yml */ -public class Lang extends YamlConfig { +public class Lang extends UpdatingLang { public Lang() { - super("lang"); + super(); } public String getString(String path) { diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Succession.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Succession.java index 1db60c09..40cf5e12 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Succession.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Succession.java @@ -29,7 +29,6 @@ public final class Succession extends EcoEnchant { boolean fire = EnchantChecks.mainhand(shooter, Enchantment.ARROW_FIRE); - for (int i = 1; i <= number; i++) { Bukkit.getScheduler().scheduleSyncDelayedTask(EcoEnchantsPlugin.getInstance(), () -> { Arrow arrow1 = shooter.launchProjectile(Arrow.class, event.getProjectile().getVelocity()); diff --git a/Plugin/src/main/resources/lang.yml b/Plugin/src/main/resources/lang.yml index b3b75d16..f2944b9c 100644 --- a/Plugin/src/main/resources/lang.yml +++ b/Plugin/src/main/resources/lang.yml @@ -3,8 +3,6 @@ # by Auxilor # -config-version: 5.0 # Don't edit this. - messages: prefix: "&f[&aEcoEnchants&f] " no-permission: "&cYou don't have permission to do this!"