Помогите Как сохранить Map в конфиг.

Bomber123

Активный участник
Пользователь
Баллы
76
Из прошлой темы понятно что со своим количеством я разобрался. Но как сохранять Map в конфиг я не знаю. Знаю что есть конструкция подобного типа.
[/PHP]
Iterrator iter = keys.entrySet().iterator()
...
Ну думаю вы помните.
Помогите плиз!
 
Пример как взять мапу с конфига:
PHP:
Map<String, Object> enchant = dir.getConfigurationSection("enchantments").getValues(false);
            for (Map.Entry<String, Object> entry : enchant.entrySet()) {
                Enchantment ench = Enchantment.getByName(entry.getKey());
                int enchLvl = (int) entry.getValue();
                stack.addEnchantment(ench, enchLvl);
            }

Записывать - для каждого entry делать configSection.set(entry.getKey(), entry.getValue()).
 
Пример как взять мапу с конфига:
PHP:
Map<String, Object> enchant = dir.getConfigurationSection("enchantments").getValues(false);
            for (Map.Entry<String, Object> entry : enchant.entrySet()) {
                Enchantment ench = Enchantment.getByName(entry.getKey());
                int enchLvl = (int) entry.getValue();
                stack.addEnchantment(ench, enchLvl);
            }

Записывать - для каждого entry делать configSection.set(entry.getKey(), entry.getValue()).
понял спс.
 
Пример как взять мапу с конфига:
PHP:
Map<String, Object> enchant = dir.getConfigurationSection("enchantments").getValues(false);
            for (Map.Entry<String, Object> entry : enchant.entrySet()) {
                Enchantment ench = Enchantment.getByName(entry.getKey());
                int enchLvl = (int) entry.getValue();
                stack.addEnchantment(ench, enchLvl);
            }

Записывать - для каждого entry делать configSection.set(entry.getKey(), entry.getValue()).
конечно мне надо тип intejer но всёровно спасибо.
 
Вот только как твой пример подключить вот к этому коду
PHP:
public static void addKeys(Player player, int amount)
    {
        int key = keys.get(player.getName()).intValue() + amount;
        keys.put(player.getName(), key);
        File f = new File(pl.getDataFolder()+File.separator+"keys.yml");
        FileConfiguration keysf = YamlConfiguration.loadConfiguration(f);
        for(Map.Entry<String, Integer> en : keys.entrySet())
        {
            keysf.set("keysdata."+en.getKey(), en.getValue());
            try {
                keysf.save(f);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
 
PHP:
public static void addKeys(Player player, int amount)
    {
        int key = keys.get(player.getName()) + amount;
        keys.put(player.getName(), key);
        File f = new File(pl.getDataFolder()+File.separator+"keys.yml");
        FileConfiguration keysf = YamlConfiguration.loadConfiguration(f);
        keysf.set("keysdata."+ player.getName(), key);
        try {keysf.save(f);} catch (IOException e) {}
    }
Мб хотя бы так?
 
Код:
public static void addKeys(Player player, int amount){
        int key = keys.get(player.getName()) + amount;
        keys.put(player.getName(), key);
        File f = new File(pl.getDataFolder()+File.separator+"keys.yml");
        FileConfiguration keysf = YamlConfiguration.loadConfiguration(f);
        keysf.set("keysdata."+ player.getName(), key);
        try {keysf.save(f);} catch (IOException e) {}
}
Код:
File f = new File(pl.getDataFolder()+File.separator+"keys.yml");
FileConfiguration keysf = YamlConfiguration.loadConfiguration(f);
Хотя вот эти строчки не радуют в такой части кода.
 
Вот только как твой пример подключить вот к этому коду
PHP:
public static void addKeys(Player player, int amount)
    {
        int key = keys.get(player.getName()).intValue() + amount;
        keys.put(player.getName(), key);
        File f = new File(pl.getDataFolder()+File.separator+"keys.yml");
        FileConfiguration keysf = YamlConfiguration.loadConfiguration(f);
        for(Map.Entry<String, Integer> en : keys.entrySet())
        {
            keysf.set("keysdata."+en.getKey(), en.getValue());
            try {
                keysf.save(f);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
Подгрузку keys.yml надо делать при энайбле плуга
 
Простые мапы сами десериализуются в конфиг.
 
Последнее редактирование:
Последнее редактирование:
Назад
Верх