src/main/java/viper/ConfigManager.java aktualisiert

This commit is contained in:
2025-08-09 09:52:00 +00:00
parent 82701d2cbe
commit c59c131bcc

View File

@@ -1,65 +1,165 @@
package viper; package viper;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
public class ConfigManager { public class ConfigManager {
private final ButtonControl plugin; private final ButtonControl plugin;
private FileConfiguration config; private FileConfiguration config;
private FileConfiguration lang; private FileConfiguration lang;
private File configFile; private File configFile;
private File langFile; private File langFile;
public ConfigManager(ButtonControl plugin) { public ConfigManager(ButtonControl plugin) {
this.plugin = plugin; this.plugin = plugin;
loadConfig(); loadConfig();
loadLang(); loadLang();
} }
private void loadConfig() { private void loadConfig() {
configFile = new File(plugin.getDataFolder(), "config.yml"); configFile = new File(plugin.getDataFolder(), "config.yml");
if (!configFile.exists()) { if (!configFile.exists()) {
plugin.saveResource("config.yml", false); plugin.saveResource("config.yml", false);
} }
config = YamlConfiguration.loadConfiguration(configFile); config = YamlConfiguration.loadConfiguration(configFile);
} // Setze Standardwerte, falls sie fehlen
setConfigDefaults();
private void loadLang() { }
langFile = new File(plugin.getDataFolder(), "lang.yml");
if (!langFile.exists()) { private void loadLang() {
plugin.saveResource("lang.yml", false); langFile = new File(plugin.getDataFolder(), "lang.yml");
} if (!langFile.exists()) {
lang = YamlConfiguration.loadConfiguration(langFile); plugin.saveResource("lang.yml", false);
} }
lang = YamlConfiguration.loadConfiguration(langFile);
public int getMaxDoors() { // Setze Standardnachrichten, falls sie fehlen
return config.getInt("max-doors", 20); setLangDefaults();
} }
public int getMaxLamps() { private void setConfigDefaults() {
return config.getInt("max-lamps", 50); if (!config.contains("max-doors")) {
} config.set("max-doors", 20);
}
public String getMessage(String key) { if (!config.contains("max-lamps")) {
return lang.getString(key, "Nachricht nicht gefunden: " + key); config.set("max-lamps", 50);
} }
if (!config.contains("max-noteblocks")) {
public void saveConfig() { config.set("max-noteblocks", 10);
try { }
config.save(configFile); if (!config.contains("default-note")) {
} catch (IOException e) { config.set("default-note", "PIANO");
plugin.getLogger().severe("Konnte config.yml nicht speichern: " + e.getMessage()); }
} if (!config.contains("double-note-enabled")) {
} config.set("double-note-enabled", true);
}
public void saveLang() { if (!config.contains("double-note-delay-ms")) {
try { config.set("double-note-delay-ms", 1000);
lang.save(langFile); }
} catch (IOException e) { saveConfig();
plugin.getLogger().severe("Konnte lang.yml nicht speichern: " + e.getMessage()); }
}
} private void setLangDefaults() {
// Standardnachrichten hinzufügen, ohne bestehende zu überschreiben
if (!lang.contains("tueren-geoeffnet")) {
lang.set("tueren-geoeffnet", "§aTüren wurden geöffnet.");
}
if (!lang.contains("tueren-geschlossen")) {
lang.set("tueren-geschlossen", "§cTüren wurden geschlossen.");
}
if (!lang.contains("lampen-eingeschaltet")) {
lang.set("lampen-eingeschaltet", "§aLampen wurden eingeschaltet.");
}
if (!lang.contains("lampen-ausgeschaltet")) {
lang.set("lampen-ausgeschaltet", "§cLampen wurden ausgeschaltet.");
}
if (!lang.contains("bloecke-umgeschaltet")) {
lang.set("bloecke-umgeschaltet", "§eBlöcke wurden umgeschaltet.");
}
if (!lang.contains("keine-bloecke-verbunden")) {
lang.set("keine-bloecke-verbunden", "§cKeine Blöcke sind verbunden.");
}
if (!lang.contains("max-tueren-erreicht")) {
lang.set("max-tueren-erreicht", "§cMaximale Anzahl an Türen erreicht.");
}
if (!lang.contains("max-lampen-erreicht")) {
lang.set("max-lampen-erreicht", "§cMaximale Anzahl an Lampen erreicht.");
}
if (!lang.contains("max-notenbloecke-erreicht")) {
lang.set("max-notenbloecke-erreicht", "§cMaximale Anzahl an Notenblöcken erreicht.");
}
if (!lang.contains("block-verbunden")) {
lang.set("block-verbunden", "§aBlock verbunden.");
}
if (!lang.contains("block-bereits-verbunden")) {
lang.set("block-bereits-verbunden", "§cBlock ist bereits verbunden.");
}
if (!lang.contains("controller-platziert")) {
lang.set("controller-platziert", "§aController platziert.");
}
if (!lang.contains("controller-entfernt")) {
lang.set("controller-entfernt", "§cController entfernt.");
}
if (!lang.contains("notenblock-ausgeloest")) {
lang.set("notenblock-ausgeloest", "§aNotenblock-Klingel wurde ausgelöst.");
}
if (!lang.contains("instrument-gesetzt")) {
lang.set("instrument-gesetzt", "§aDein Notenblock-Instrument wurde auf %s gesetzt.");
}
if (!lang.contains("ungueltiges-instrument")) {
lang.set("ungueltiges-instrument", "§cUngültiges Instrument! Verwende: /bc note <Instrument>");
}
if (!lang.contains("konfiguration-reloaded")) {
lang.set("konfiguration-reloaded", "§aKonfiguration und Daten erfolgreich neu geladen!");
}
if (!lang.contains("keine-berechtigung")) {
lang.set("keine-berechtigung", "§cDu hast keine Berechtigung für diesen Befehl!");
}
saveLang();
}
public void reloadConfig() {
config = YamlConfiguration.loadConfiguration(configFile);
lang = YamlConfiguration.loadConfiguration(langFile);
setConfigDefaults(); // Stelle sicher, dass neue Standardwerte hinzugefügt werden
setLangDefaults(); // Stelle sicher, dass neue Nachrichten hinzugefügt werden
}
public FileConfiguration getConfig() {
return config;
}
public int getMaxDoors() {
return config.getInt("max-doors", 20);
}
public int getMaxLamps() {
return config.getInt("max-lamps", 50);
}
public int getMaxNoteBlocks() {
return config.getInt("max-noteblocks", 10);
}
public String getMessage(String key) {
return lang.getString(key, "Nachricht nicht gefunden: " + key);
}
public void saveConfig() {
try {
config.save(configFile);
} catch (IOException e) {
plugin.getLogger().severe("Konnte config.yml nicht speichern: " + e.getMessage());
}
}
public void saveLang() {
try {
lang.save(langFile);
} catch (IOException e) {
plugin.getLogger().severe("Konnte lang.yml nicht speichern: " + e.getMessage());
}
}
} }