Move ConfigHelper to new config module and deprecate it

This commit is contained in:
Oliver
2025-07-19 19:03:30 +02:00
parent 54a45ef827
commit a2f61b6215
8 changed files with 7 additions and 2 deletions

View File

@@ -1,16 +0,0 @@
package de.oliver.fancylib;
import org.bukkit.configuration.file.FileConfiguration;
public class ConfigHelper {
public static Object getOrDefault(FileConfiguration config, String path, Object defaultVal) {
if (!config.contains(path)) {
config.set(path, defaultVal);
return defaultVal;
}
return config.get(path);
}
}

View File

@@ -1,38 +0,0 @@
package de.oliver.fancylib.featureFlags;
public class FeatureFlag {
private final String name;
private final String description;
private boolean enabled;
private final boolean forceDisabled;
public FeatureFlag(String name, String description, boolean forceDisabled) {
this.name = name;
this.description = description;
this.forceDisabled = forceDisabled;
this.enabled = false;
}
public boolean isEnabled() {
if(forceDisabled) return false;
return enabled;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public boolean isForceDisabled() {
return forceDisabled;
}
}

View File

@@ -1,78 +0,0 @@
package de.oliver.fancylib.featureFlags;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FeatureFlagConfig {
private final Plugin plugin;
private final File configFile;
private final List<FeatureFlag> featureFlags;
public FeatureFlagConfig(Plugin plugin) {
this.plugin = plugin;
this.configFile = new File("plugins" + File.separator + plugin.getName() + File.separator + "featureFlags.yml");
this.featureFlags = new ArrayList<>();
}
public void load() {
if (!configFile.exists()) {
try {
new File(configFile.getParent()).mkdirs();
configFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
YamlConfiguration config = YamlConfiguration.loadConfiguration(configFile);
for (FeatureFlag featureFlag : featureFlags) {
if (config.isSet("feature-flags." + featureFlag.getName())) {
continue;
}
config.set("feature-flags." + featureFlag.getName(), false);
config.setInlineComments("feature-flags." + featureFlag.getName(), List.of(featureFlag.getDescription()));
}
for (String flagName : config.getConfigurationSection("feature-flags").getKeys(false)) {
boolean enabled = config.getBoolean("feature-flags." + flagName, false);
FeatureFlag flag = getFeatureFlag(flagName);
if (flag == null) {
flag = new FeatureFlag(flagName, "", false);
featureFlags.add(flag);
}
flag.setEnabled(enabled);
}
try {
config.save(configFile);
} catch (IOException e) {
e.printStackTrace();
}
}
public FeatureFlag getFeatureFlag(String name) {
for (FeatureFlag featureFlag : featureFlags) {
if (featureFlag.getName().equalsIgnoreCase(name.toLowerCase())) {
return featureFlag;
}
}
return null;
}
public void addFeatureFlag(FeatureFlag featureFlag) {
if (!featureFlags.contains(featureFlag)) {
featureFlags.add(featureFlag);
}
}
}