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

Problem bei der getSringList Funktion

KaeseKuchen_DEV

Redstoneengineer
Registriert
11 Mai 2016
Beiträge
47
Diamanten
300
Minecraft
KaeseKuchenDEV
Schönen guten Tag

Ich hatte nun schon bei einigen Plugins das Problem bei der Funktion cfg.getStringList(Path). Ich habe einige Möglichkeiten ausprobiert nur leider hat bis jetzt keine funktioniert. Ihr würdet mir helfen wenn ihr mir zeigt wie ihr das Beispielsweise machen würdet oder indem ihr mir eine Alternative vorstellt.
Vielen Dank im Voraus.

MfG KaeseKuchenDEV
 

JTK222

Threadripper
Registriert
5 September 2013
Beiträge
1.150
Diamanten
323
Minecraft
JTK222
Also bei cfg handelt es sich vermutlich um ein Configurations Datei Objekt,
würde dir aber empfehlen mit einfacheren dingen wie getInt/(oder getInteger weiß nicht genau wie es bei bukkit ist) anfangen.
wobei ein dein config objekt bei dir cfg bereits eine eingelesene datei ist (hoffe ich jedenfalls) die Methode .getInt/getInteger(schlüssel)
funktioniert nun eigentlich genau wie die get method bei einer Map. Es gibt einen schlüssel und du bekommst dazu den Wert.
Bei getInteger handelt es sich dann um einen Integer, bei getStringList vermutlich um einen Array mit dem typ String.

Sagen wir deine config sieht mehr oder weniger so aus:
nachricht1=Hi
nachricht2=Hallo
nachricht3=Wie gehts?
Dann könntest du nachricht3 mit cfg.getString("nachricht3") abfragen.

(Falls ich hier völligen bullshit erzähle bitte korrigieren D: Habe nur wenig Erfahrung mit Bukkit benutze hauptsächlich Forge)
 

JOO200

Braumeister
Registriert
18 Dezember 2016
Beiträge
442
Diamanten
228
Zuersteinmal:
Bekommst du denn einen einfachen String "getString(String path)" ausgelesen?

Wenn ja:
Um eine StringList einlesen zu können, müsstest du deine Strings in der Yaml-Configuration in eine Liste speichern. Eine Liste müsste dann so aussehen:
Code:
Dies:
    ist:
        der:
            Pfad:
            - Text 1
            - Text 2
            - Text 3
Wenn du nun also die StringList bekommen möchtest, müsstest du diese mit "cfg.getStringList("Dies.ist.der.Pfad")" bekommen können.
 

KaeseKuchen_DEV

Redstoneengineer
Registriert
11 Mai 2016
Beiträge
47
Diamanten
300
Minecraft
KaeseKuchenDEV
Zuersteinmal:
Bekommst du denn einen einfachen String "getString(String path)" ausgelesen?

Wenn ja:
Um eine StringList einlesen zu können, müsstest du deine Strings in der Yaml-Configuration in eine Liste speichern. Eine Liste müsste dann so aussehen:
Code:
Dies:
    ist:
        der:
            Pfad:
            - Text 1
            - Text 2
            - Text 3
Wenn du nun also die StringList bekommen möchtest, müsstest du diese mit "cfg.getStringList("Dies.ist.der.Pfad")" bekommen können.
genau dies habe ich ja bereits ausprobiert nur wird mir schon beim starten des servers eine fehlermeldung ausgegeben
 

KaeseKuchen_DEV

Redstoneengineer
Registriert
11 Mai 2016
Beiträge
47
Diamanten
300
Minecraft
KaeseKuchenDEV
Wie wärs, wenn du mal deinen Quellcode und deine Fehlermeldung hier rein kopierst? Am besten in den "[ code ]"-Teilen ;)
Code:
annot load plugins\KnockBackFFA\maps.yml
org.bukkit.configuration.InvalidConfigurationException: while scanning for the next token
found character          '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)
in 'string', line 18, column 1:

    ^

        at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:57) ~[spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:226) ~[spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:169) ~[spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:180) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at me.kaesekuchendev.utils.ConfigHandler.getStringList(ConfigHandler.java:47) [KnockBackFFA.jar:?]
        at me.kaesekuchendev.utils.Main.onEnable(Main.java:42) [KnockBackFFA.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525) [spigot-1.8.8.jar:git-Spigot-db6de12-18fbb24]
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Die Meldung ist recht eindeutig. Du verwendet "Tab" zum Einrücken, es sind dort aber nur Leerzeichen erlaubt. Du solltest einen besseren Editor zum Bearbeiten von YAML-Dateien verwenden, wo es auf jedes Leerzeichen ankommt.
 

KaeseKuchen_DEV

Redstoneengineer
Registriert
11 Mai 2016
Beiträge
47
Diamanten
300
Minecraft
KaeseKuchenDEV
Geh mal in deinen Texteditor und ersetz alle Tabs durch 4 Leerzeichen. Damit dürfte dein Problem beim Laden gelöst sein.
Jetzt wird schonmal kein Fehler ausgegeben aber es wird trotzdem keine Stringliste erstellt und auch nichts eingefügen wenn ich das Plugin mit dieser Methode starte
Code:
YamlConfiguration.loadConfiguration(mapConfig).getStringList("Worlds").add("TestWelt");
try {
            YamlConfiguration.loadConfiguration(mapConfig).save(mapConfig);
        } catch (IOException e) {
            e.printStackTrace();
        }
 
Oben