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

Für jede Welt eigene yml?

Felix.

Redstoneengineer
Registriert
10 April 2020
Beiträge
40
Diamanten
253
Moin,
ich möchte für jede Welt eine yml erstellen, und eine Methode haben, wie ich auf die jeweiligen Dateien zugreifen bzw. bearbeiten kann.
Dies benötige ich, da ich in die Dateien Weltdaten speichern möchte.
Viele Grüße!
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Dann tu dies doch? Ich verstehe nicht ganz, wo genau du jetzt ein Problem hast oder was nicht funktioniert.

Im Zweifel kannst du das genau so machen: Für jede Welt eine .yml-Datei erstellen, mit dem Weltnamen als Namen der Datei. Bukkit unterscheidet Welten (leider) auch nur beim Namen, also wäre das absolut in Ordnung. Ich würde die .yml-Dateien allerdings in deinem Plugin-Ordner haben, und nicht in den Weltordner tun - das ist einfach ordentlicher und das Plugin lässt sich dann deinstallieren, ohne alle Welten zu durchsuchen.

Wenn dein Problem ist, das du nicht weißt wie man mehrere Configs erstellen kann, schaue mal hier: https://www.spigotmc.org/wiki/config-files/#using-custom-configurations
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Wenn das mit dem erstellen geklappt hat, hast du doch jetzt eine Instanz einer FileConfiguration. Mit dieser kannst du doch das gleiche tun, das du mit jeder FileConfiguration tun kannst, also auch der normalen config.yml von Bukkit. config.set(), config.get() etc. Wo du diese Daten herbekommst und was du mit ihnen machst ist deine, plugin-spezifische, Sache. Dabei können wir dir ohne zu wissen, was du genau tun willst nicht helfen.

Der einzige Unterschied ist das laden der Config. Dazu brauchst du die Datei, also ein File. Diese lässt sich z.B. mit configFile = new File(getDataFolder(), "custom.yml"); erhalten. Diese solltest du dann mit config.load(configFile) laden können.
 

Felix.

Redstoneengineer
Registriert
10 April 2020
Beiträge
40
Diamanten
253
Also, es geht eigentlich darum, dass ich halt für jede Welt eine yml haben möchte. In die jeweilige Datei werden Daten gespeichert, die für Mobs verantwortlich sind. Wie viel Leben die nachher haben usw.
Ich habe jetzt nur zum Verständnis, folgenden Code für das erstellen der Dateien geschrieben.
Java:
package de.devfelix.utils;

import java.io.File;
import java.io.IOException;

import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;

public class WorldFiles {
   
    public static File worldfile;
    public static FileConfiguration world1;

    public static void setFiles() {
        Bukkit.getWorlds().forEach(world -> {
            worldfile = new File("plugins/MobSpawner", world.getName());
            world1 = YamlConfiguration.loadConfiguration(worldfile);
            world1.options().header("Hier findest du die WeltOptionen, die etwas mit Spawnen von Monstern zutun hat!");
            try {
                world1.save(worldfile);
            } catch (IOException e) {
                e.printStackTrace();
            }
    });
    }
   
}
Wie sollte ich jetzt weiter agieren?
 
Oben