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!"