Вопрос Сохранение конфига

Spokers

Пользователь
Сообщения
70
Решения
1
При сохранение конфига в yml он сохраняется так cx11222: !!spokers.colorcontol.events.CreateArena

Java:
public static void saveHashMap(){
        try {
            YamlConfiguration cfg = new YamlConfiguration();
            for (String key : Arena.keySet()){
                cfg.set(key, Arena.get(key));
            }
            for (UUID key : miniPlayers.keySet()){
                cfg.set("Players."+key, miniPlayers.get(key));
            }
            File f = new File (ColorContol.getPlugin(ColorContol.class).getDataFolder()+File.separator+"hashmap.yml");
            if (f.exists()) f.delete();
            cfg.save(f);
        } catch (Exception e){
            e.printStackTrace();
        }
    }
 
Последнее редактирование модератором:
Решение
Писать на подобие ?
JavaScript:
        Arenas.set(name+".name", name);
        Arenas.set(name+".min", min);
        Arenas.set(name+".max", max);
        Arenas.set(name+".minPlayer", minPlayer);
        Arenas.set(name+".maxPlayer", maxPlayer);
        Arenas.set(name+".time", time);
        Arenas.set(name+".world", world);
        Arenas.set(name+".status", status);

Потом сохранить?
Ну, типа...
for (String key : Arena.keySet()){ cfg.set(key, Arena.get(key)); }
Речь про это?
Чем является значение? Если кастом класс, то так сохранять не получится, надо отдельное значение записывать.
 
Писать на подобие ?
Java:
        Arenas.set(name+".name", name);
        Arenas.set(name+".min", min);
        Arenas.set(name+".max", max);
        Arenas.set(name+".minPlayer", minPlayer);
        Arenas.set(name+".maxPlayer", maxPlayer);
        Arenas.set(name+".time", time);
        Arenas.set(name+".world", world);
        Arenas.set(name+".status", status);

Потом сохранить?
 
Последнее редактирование модератором:
Писать на подобие ?
JavaScript:
        Arenas.set(name+".name", name);
        Arenas.set(name+".min", min);
        Arenas.set(name+".max", max);
        Arenas.set(name+".minPlayer", minPlayer);
        Arenas.set(name+".maxPlayer", maxPlayer);
        Arenas.set(name+".time", time);
        Arenas.set(name+".world", world);
        Arenas.set(name+".status", status);

Потом сохранить?
Ну, типа...
 
Тогда чтоб выгружать
Java:
World world = Bukkit.getWorld(Arenas.getString(key+".world"));
                    Location max = new Location(world, Arenas.getDouble(key+".max.x"), Arenas.getDouble(key+".max.y"), Arenas.getDouble(key+".max.z"));
                    Location min = new Location(world, Arenas.getDouble(key+".min.x"), Arenas.getDouble(key+".min.y"), Arenas.getDouble(key+".min.z"));
                    int minPlayer = Arenas.getConfigurationSection(key).getInt(".minPlayer");
                    int maxPlayer = Arenas.getInt(key+"maxPlayer");
                    int time = Arenas.getInt(key+".time");
                    String status = Arenas.getString(key+".status");
                    Arena.put(key, new CreateArena(key, min, max, minPlayer, maxPlayer, time, world.getName(), status));
Объединено

а и вопрос

Java:
    public static void ArenaListgui(Player p) {
        Set<String> keys = Utils.Arena.keySet();
        for (String names : keys) {
            for (int x = 0; x <keys.size(); x++) {
                addListArena(Utils.Arena.get(names).getName(), Utils.Arena.get(names).getStatus(), x);
            }
        }
        p.openInventory(inv);
    }
Java:
    public static void addListArena(String name, String status, int index) {

        int color;
        if (status.equalsIgnoreCase("ACTIVE")){
            color = 5;
        } else {
            color = 14;
        }
        ItemStack Arenas = new ItemStack(Material.WOOL, 1, (short)color);
        ItemMeta Arenas_meta = Arenas.getItemMeta();
        Arenas_meta.setDisplayName(name);
        Arenas.setItemMeta(Arenas_meta);
        System.out.print(index+":"+Arenas);
        for (int x = 0; x < index+1; x++) {
            inv.setItem(x, Arenas);
        }


    }
при использование этих методов в кастом меню столько же предметов сколько и ключей
а имя у всех одинаковое как это исправить?
 
Последнее редактирование модератором:
С именами не исправилось
Java:
    public static void addListArena(String name, GameStatus status, int index) {

        int color;
        if (status.name() == GameStatus.ACTIVE.name()){
            color = 5;
        } else {
            color = 14;
        }
        for (int x = 0; x < index+1; x++) {
            ItemStack Arenas = new ItemStack(Material.WOOL, 1, (short)color);
            ItemMeta Arenas_meta = Arenas.getItemMeta();
            Arenas_meta.setDisplayName(name);
            Arenas.setItemMeta(Arenas_meta);
            inv.setItem(x, Arenas);
        }
Объединено

Сколько сижу так и не смог найти решения
 

Вложения

  • изображение_2022-08-13_201751.png
    изображение_2022-08-13_201751.png
    33.3 KB · Просмотры: 6
  • изображение_2022-08-13_201758.png
    изображение_2022-08-13_201758.png
    33.7 KB · Просмотры: 5
  • изображение_2022-08-13_201824.png
    изображение_2022-08-13_201824.png
    5.1 KB · Просмотры: 3
Последнее редактирование:
Конечно, у тебя передаётся 1 название и 1 статус арены для всех арен, поэтому и не будет разных названий. Чтобы всё показывалось отдельно надо каждому предмету писать отдельное название, да и статус тоже...
 
Назад
Сверху Снизу