• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

config.yml speichert immer wieder die Default Werte?

Benny1008

Kuhfänger
Registriert
14 Juni 2017
Beiträge
67
Diamanten
300
Minecraft
Benny1008
Guten Tag!

Folgendes Problem:
Mein Plugin ersetzt die veränderten Werte nach einem neustart oder reload immer auf die Standard Werte.

Javascript:
public void loadConfig() {
            getConfig().options().copyDefaults(true);
            getConfig().addDefault("Server Name", "§3<ServerName>");
            getConfig().addDefault("DeathMessage", "§f[§0✝§f] ");
            getConfig().addDefault("JoinMessage", "§f[§2+§f] ");
           

            saveConfig();

            ServerName = getConfig().getString(MainClass.ServerName);
           
           
    }
Vielleicht liegt der Fehler auch auf der Hand und ich sehe ihn einfach nicht.
Wäre prima wenn mir da jemand Helfen könnte :)

lg Benny
 

UnityGaming

Workaholic
Registriert
25 Oktober 2015
Beiträge
527
Alter
26
Diamanten
312
Minecraft
FastFelix771
Prüfen ob die Datei schon da ist? ;)

Paths.get("plugins", "DeinPluginName", "config.yml").toFile().exists()
Gibt auch noch andere Möglichkeiten... da kann man jetzt fröhlich aufzählen, wenn man Bock hat.

Alternative für Fleißige:

Speicher dir am besten eine config.yml mit Standardwerten neben der plugin.yml (im src Ordner) ab und rufe im onEnable() die Methode saveDefaultConfig() auf - diese überschreibt die Config nicht, wenn sie schon existiert.
Ist eigentlich Gang und Gebe so, die Hauptkonfigurationsdatei im Code zu generieren finde ich persönlich schrecklich, da verliert man bei jeder größeren Config sofort den Überblick drüber.
 

Benny1008

Kuhfänger
Registriert
14 Juni 2017
Beiträge
67
Diamanten
300
Minecraft
Benny1008
Habe die Werte jetzt wie du gesagt hast direkt im src Ordner in der config.yml eingetragen. Leider besteht immer noch das Problem das die veränderten Werte immer wieder durch die Standard Werte ersetzt werden.
 
F

Figz

Guest
Noch einmal: Du erstellt einfach die Datei in deinem src Ordner und rufst diese Code NICHT mehr auf:

Code:
getConfig().options().copyDefaults(true);
            getConfig().addDefault("Server Name", "§3<ServerName>");
            getConfig().addDefault("DeathMessage", "§f[§0✝§f] ");
            getConfig().addDefault("JoinMessage", "§f[§2+§f] ");
          

            saveConfig();

Denn der überschreibt deine Werte in der Config immer wieder.

Allerdings musst du in deiner onEnabled() Methode diese Methode aufrufen, damit die Config erstellt wird: saveDefaultConfig();
 

Helight

Minecrafter
Registriert
10 März 2017
Beiträge
1
Diamanten
300
Minecraft
HelightDev
Als ich würde einfach auch ne YamlConfiguration erstellen und dann ne Methode machen, die checkt ob die Datei bereits existiert.
Hab hier mal ne class eingefügt. kannst du gerne benutzen. Du musst halt bei der onEnable()

ConfigManager.getInstance.conifgurate();

reinschreiben.

Code:
public class ConfigManager {

    public File ordner = new File("plugins//SNI");
    public File config = new File("plugins//SNI//config.yml");
    public YamlConfiguration cfg = YamlConfiguration.loadConfiguration(config);

    public static ConfigManager getInstance = new ConfigManager();

    public void configurate() {
        if(!ordner.exists()) {
            ordner.mkdir();
            try {
                config.createNewFile();
                Write();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else if (!config.exists()){
            try {
                config.createNewFile();
                Write();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            return;
        }
    }

    public void Save() {
        try {
            cfg.save(config);
        } catch (IOException e){
            e.printStackTrace();
        }
    }

    public void Write() {
        //Hier schreibst du das rein, was beim ersten mal erstellt werden soll
     
        Save();
    }
}
 
Oben