mirror of
https://github.com/exituser/Brewery.git
synced 2026-09-17 07:49:03 +00:00
Only reload config if valid yml
This commit is contained in:
@@ -16,6 +16,7 @@ import org.apache.commons.lang.math.NumberUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
@@ -313,7 +314,8 @@ public class P extends JavaPlugin {
|
||||
|
||||
// load the Config
|
||||
try {
|
||||
if (!BConfig.readConfig()) {
|
||||
FileConfiguration cfg = BConfig.loadConfigFile();
|
||||
if (cfg == null || !BConfig.readConfig(cfg)) {
|
||||
p = null;
|
||||
getServer().getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
@@ -463,6 +465,12 @@ public class P extends JavaPlugin {
|
||||
if (sender != null && !sender.equals(getServer().getConsoleSender())) {
|
||||
BConfig.reloader = sender;
|
||||
}
|
||||
FileConfiguration cfg = BConfig.loadConfigFile();
|
||||
if (cfg == null) {
|
||||
// Could not read yml file, do not proceed
|
||||
return;
|
||||
}
|
||||
|
||||
// clear all existent config Data
|
||||
BRecipe.getConfigRecipes().clear();
|
||||
BRecipe.numConfigRecipes = 0;
|
||||
@@ -486,7 +494,7 @@ public class P extends JavaPlugin {
|
||||
|
||||
// load the Config
|
||||
try {
|
||||
if (!BConfig.readConfig()) {
|
||||
if (!BConfig.readConfig(cfg)) {
|
||||
p = null;
|
||||
getServer().getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
@@ -510,6 +518,8 @@ public class P extends JavaPlugin {
|
||||
}
|
||||
if (!successful && sender != null) {
|
||||
msg(sender, p.languageReader.get("Error_Recipeload"));
|
||||
} else {
|
||||
p.msg(sender, p.languageReader.get("CMD_Reload"));
|
||||
}
|
||||
BConfig.reloader = null;
|
||||
}
|
||||
|
||||
@@ -119,13 +119,31 @@ public class BConfig {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean readConfig() {
|
||||
public static FileConfiguration loadConfigFile() {
|
||||
File file = new File(P.p.getDataFolder(), "config.yml");
|
||||
if (!checkConfigs()) {
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
FileConfiguration config = YamlConfiguration.loadConfiguration(file);
|
||||
|
||||
try {
|
||||
YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
|
||||
if (cfg.contains("version") && cfg.contains("language")) {
|
||||
return cfg;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// Failed to load
|
||||
if (p.languageReader != null) {
|
||||
P.p.errorLog(p.languageReader.get("Error_YmlRead"));
|
||||
} else {
|
||||
P.p.errorLog("Could not read file config.yml, please make sure the file is in valid yml format (correct spaces etc.)");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean readConfig(FileConfiguration config) {
|
||||
// Set the Language
|
||||
p.language = config.getString("language", "en");
|
||||
|
||||
@@ -139,6 +157,7 @@ public class BConfig {
|
||||
String version = config.getString("version", null);
|
||||
if (version != null) {
|
||||
if (!version.equals(configVersion) || (oldMat && P.use1_13)) {
|
||||
File file = new File(P.p.getDataFolder(), "config.yml");
|
||||
copyDefaultConfigs(true);
|
||||
new ConfigUpdater(file).update(version, oldMat, p.language);
|
||||
P.p.log("Config Updated to version: " + configVersion);
|
||||
@@ -199,7 +218,7 @@ public class BConfig {
|
||||
openEverywhere = config.getBoolean("openLargeBarrelEverywhere", false);
|
||||
MCBarrel.maxBrews = config.getInt("maxBrewsInMCBarrels", 6);
|
||||
|
||||
Brew.loadSeed(config, file);
|
||||
Brew.loadSeed(config, new File(P.p.getDataFolder(), "config.yml"));
|
||||
|
||||
PluginItem.registerForConfig("brewery", BreweryPluginItem::new);
|
||||
PluginItem.registerForConfig("mmoitems", MMOItemsPluginItem::new);
|
||||
|
||||
@@ -104,6 +104,7 @@ public class LanguageReader {
|
||||
defaults.add(new Tuple<>("Error_NoBrewName", "&cNo Recipe with Name: '&v1&c' found!"));
|
||||
defaults.add(new Tuple<>("Error_Recipeload", "&cNot all recipes could be restored: More information in the server log!"));
|
||||
defaults.add(new Tuple<>("Error_ConfigUpdate", "Unknown Brewery config version: v&v1, config was not updated!"));
|
||||
defaults.add(new Tuple<>("Error_YmlRead", "Could not read File config.yml, please make sure the file is in valid yml format (correct spaces etc.)"));
|
||||
|
||||
/* Permissions */
|
||||
defaults.add(new Tuple<>("Error_NoPermissions", "&cYou don't have permissions to do this!"));
|
||||
|
||||
@@ -36,7 +36,6 @@ public class CommandListener implements CommandExecutor {
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.reload")) {
|
||||
p.reload(sender);
|
||||
p.msg(sender, p.languageReader.get("CMD_Reload"));
|
||||
} else {
|
||||
p.msg(sender, p.languageReader.get("Error_NoPermissions"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user