• 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 String liste

Lapura

Kuhfänger
Registriert
28 Dezember 2014
Beiträge
73
Alter
26
Diamanten
314
Hey, ich brauche hilfe bei der Config.yml.
Ich habe Arenen gespeichert, mit dem Wert: "Arena." + name! Nun will ich das es mir alle
Arenen die in der Config eingetragen sind in eine Liste packt, und ich später aus der Liste eine Random Arena
verwenden kann.

Code:
Javascript:
    public static void createArena(String name) {
        if(arenaExists(name)) {
            Bukkit.getServer().getConsoleSender().sendMessage("§cArena §9" + name + " §cexistiert bereits!");
            return;
        }
        plugin.getConfig().set("Arena." + name, name);
        plugin.saveConfig();
        Bukkit.getServer().getConsoleSender().sendMessage("§aArena §9" + name  + " §aerstellt!");
    }

Und das war so mein erster versuch, aber dort wird nichts ausgeben!

Javascript:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(sender instanceof Player) {
            if(cmd.getName().equalsIgnoreCase("Join")) {
                if(args.length == 0) {
                    Player p = (Player) sender;
                    for(String arena : plugin.getConfig().getStringList("Arena.")) {
                        p.sendMessage("§c"+arena);
                    }
                  
                  
                }
            }
        }
      
        return false;
    }

Falls ihr vorschläge habt, oder ideen schreibt es unter diesem Thema!
Liebe Grüße, Lukas
 
M

M4xi

Guest
Das ist relativ simple :D
Das ganze nennt sich ConfigurationSection und wird etwa so aufgerufen (kann anders geschrieben werden)
Code:
config.getConfigurationSection("Arena");

Dann nur noch eine Liste der möglichen Keywords auslesen, etwa so:

Code:
List<String> keyList = config.getConfigurationSection("Arena").getKeys();

Ich übernehme keine Verantwortung das es 100% stimmt aber so in etwa sollte es sein :D
 

Lapura

Kuhfänger
Registriert
28 Dezember 2014
Beiträge
73
Alter
26
Diamanten
314
Das ist relativ simple :D
Das ganze nennt sich ConfigurationSection und wird etwa so aufgerufen (kann anders geschrieben werden)

Jaa so habe ich es auch mal versucht, so wird aber nur die erste Arena ausgegeben, und nicht alle!

So:
Javascript:
package arena.lapura.cmd;

import java.io.File;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;

import arena.lapura.main.MainArena;

public class CMD_Join implements CommandExecutor {

    private MainArena plugin;

    public CMD_Join(MainArena mainArena) {
        this.plugin = mainArena;
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(sender instanceof Player) {
            if(cmd.getName().equalsIgnoreCase("Join")) {
                if(args.length == 0) {
                    Player p = (Player) sender;
                    File file = new File("plugins/FeelPvP-Arena/Arena.yml");
                    YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
                    for(String map : cfg.getConfigurationSection("Arena").getKeys(false)) {
                        p.sendMessage("§e" + map);
                        return true;
                       
                    }
                   
                   
                }
            }
        }
       
        return true;
    }

}
 

United-Mine

Minecrafter
Registriert
3 November 2016
Beiträge
9
Alter
29
Diamanten
300
Ich denke mal dass der Fehler hier liegt:
Code:
for(String arena : plugin.getConfig().getStringList("Arena.")) {
                        p.sendMessage("§c"+arena);
                    }
Denn die Liste heißt "Arena" und nicht "Arena."

Dennoch kannst du es so versuchen:

Code:
for(String arena : plugin.getConfig().getConfigurationSection("Arena").getKeys(false)){
    p.sendMessage("§c" + arena);
}

EDIT: oder auch so:

Code:
for(String arena : plugin.getConfig().getConfigurationSection("Arena").getKeys(false)){
    p.sendMessage("§c" + plugin.getConfig().getString(arena));
}
-> weil du "plugin.getConfig().set("Arena." + arena, arena);" gesetzt hast.

Es würde beides funktionieren.

LG
 
Oben