Помогите Не работает сохранение ключей хеша в конфиг

Статус
Закрыто для дальнейших ответов.
Зачем вы ему помогаете? Таких code-monkey'ев не должно быть.
Пусть пару книг прочитает что ли или хотя бы пол книги хорстмана, 1 том.
Этот код ужасен. Мне даже стыдно говорить, что он ужасен, он же хуже!
И не надо писать "НИМОЖАШЬПОМОЧЬНИПАМАГАЙ".
 
Зачем вы ему помогаете? Таких code-monkey'ев не должно быть.
Пусть пару книг прочитает что ли или хотя бы пол книги хорстмана, 1 том.
Этот код ужасен. Мне даже стыдно говорить, что он ужасен, он же хуже!
И не надо писать "НИМОЖАШЬПОМОЧЬНИПАМАГАЙ".
Я не такой агрошкольник, как некоторые особы (без обид). Я в конфигах не шарю.
 
Я не такой агрошкольник, как некоторые особы (без обид). Я в конфигах не шарю.
>Агрошкольник
>Оскорбления
>Конфиги
Для начала начни ходить в школу.
Дело не в конфигах, а в твоём мерзком коде. Нормальные люди постыдились бы показывать такой код.
 
>Агрошкольник
>Оскорбления
>Конфиги
Для начала начни ходить в школу.
Дело не в конфигах, а в твоём мерзком коде. Нормальные люди постыдились бы показывать такой код.
Я жабкой занимаюсь не так давно, так что мне не привыкать.

P.S немножко обидно
 
Пусть пару книг прочитает что ли или хотя бы пол книги хорстмана, 1 том.
Потому что я, при всём том числе языков на которых писал, за всю жизнь не прочитал ни одной полноценной книги. Только msdn, интернет, stackoverflow и форумы. Но и вопросы, надо отметить, задавал не другим, а себе.

Но данному субъекту помогать уже надоело :)
 
Потому что я, при всём том числе языков на которых писал, за всю жизнь не прочитал ни одной полноценной книги. Только msdn, интернет, stackoverflow и форумы. Но и вопросы, надо отметить, задавал не другим, а себе.
Я читаю книги для того, чтобы знать, как можно, а не как надо. В будущем это сохранит мне 100500 времени и я не буду костылять структуры и часами искать информацию.

И если ты так не любишь книги - напиши ему небольшую статью на эту тему.
 
Потому что я, при всём том числе языков на которых писал, за всю жизнь не прочитал ни одной полноценной книги. Только msdn, интернет, stackoverflow и форумы. Но и вопросы, надо отметить, задавал не другим, а себе.

Но данному субъекту помогать уже надоело :)
Я начал просто переписывать код, не знаю, что я там сделал, но он начал сохранять ключи хешов в файлик, но плагин их обратно не достает.

Недокод:
JavaScript:
package com.realistic.config;

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

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

import com.realistic.api.API;

public class configData {

    public static API plugin;

    public configData(API main) {
        this.plugin = main;
    }

    public static File dataFolder = new File("plugins/Realistic/", "data.yml");
    public static FileConfiguration dataConfig = YamlConfiguration.loadConfiguration(dataFolder);

    public void onEnable() {

        if (!dataFolder.exists()) {

            try {
                dataFolder.createNewFile();

                if (dataConfig.isConfigurationSection("Blooding_Players")) {
                    for (String s : dataConfig.getConfigurationSection("Blooding_Players").getKeys(false)) {
                        plugin.ml.bloodingPlayers.put(s, dataConfig.getBoolean("Blooding_Players." + s));
                        dataConfig.set("Blooding_Players." + s, null);
                    }
                }

                try {
                    dataConfig.save(dataFolder);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void onDisable() {

        for (String s : plugin.ml.bloodingPlayers.keySet()) {
            dataConfig.set("Blooding_Players." + s, plugin.ml.bloodingPlayers.get(s));
        }

        try {
            dataConfig.save(dataFolder);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
 
Java:
package com.realistic.config;

import com.realistic.api.API;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;

public class ConfigData {

    private static ConfigData singleton;

    private final File dataFile;
    private final YamlConfiguration dataConfig;
    private final API plugin;

    public ConfigData(API plugin) {
        this.dataFile = new File(plugin.getDataFolder(), "data.yml");
        this.dataConfig = YamlConfiguration.loadConfiguration(this.dataFile);
        this.plugin = plugin;
    }

    public void loadSettings() {
        if (!this.dataFile.exists()) {
            this.plugin.ml.bloodingPlayers.clear();
            return;
        }

        ConfigurationSection cs = this.dataConfig.getConfigurationSection("Blooding_Players");
        for (String key : cs.getKeys(false)) {
            plugin.ml.bloodingPlayers.put(key, cs.getBoolean(key));
        }
    }

    public void saveSettings() {
        this.dataConfig.set("Blooding_Players", plugin.ml.bloodingPlayers);

        try {
            this.dataConfig.save(this.dataFile);
        } catch (IOException ex) {
            this.plugin.getLogger().log(Level.WARNING, "Failed to save \"data.yml\" to file!", ex);
        }
    }

    /**
     * Прекращай пользоваться этим.
     * @param plugin
     * @deprecated скажи нет синглтонам! Используй ООП.
     */
    @Deprecated
    public static void onEnable(API plugin) {
        if (ConfigData.singleton == null) {
            ConfigData.singleton = new ConfigData(plugin);
        }

        ConfigData.singleton.loadSettings();
    }

    /**
     * Прекращай пользоваться этим.
     * @param plugin
     * @deprecated скажи нет синглтонам! Используй ООП.
     */
    @Deprecated
    public static void onDisable(API plugin) {
        if (ConfigData.singleton == null) {
            Bukkit.getLogger().log(Level.WARNING, "[{0}] Calling \"onDisable\" when singleton == null!", ConfigData.class.toString());
            ConfigData.singleton = new ConfigData(plugin);
        }

        ConfigData.singleton.saveSettings();
    }
}

Можешь скопипастить.
Лучше потрать месяц на обучение, чем два на гугление, если тебе не даётся логика и эвристика.
 
Последнее редактирование:
#оффтоп
Как же мне нравится, как Reality_SC всё объясняет. Прям аж самому интересно наблюдать за тредами, которые он берёт на себя.
 
Java:
package com.realistic.config;

import com.realistic.api.API;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;

public class ConfigData {

    private static ConfigData singleton;

    private final File dataFile;
    private final YamlConfiguration dataConfig;
    private final API plugin;

    public ConfigData(API plugin) {
        this.dataFile = new File(plugin.getDataFolder(), "data.yml");
        this.dataConfig = YamlConfiguration.loadConfiguration(this.dataFile);
        this.plugin = plugin;
    }

    public void loadSettings() {
        if (!this.dataFile.exists()) {
            this.plugin.ml.bloodingPlayers.clear();
            return;
        }

        ConfigurationSection cs = this.dataConfig.getConfigurationSection("Blooding_Players");
        for (String key : cs.getKeys(false)) {
            plugin.ml.bloodingPlayers.put(key, cs.getBoolean(key));
        }
    }

    public void saveSettings() {
        this.dataConfig.set("Blooding_Players", plugin.ml.bloodingPlayers);

        try {
            this.dataConfig.save(this.dataFile);
        } catch (IOException ex) {
            this.plugin.getLogger().log(Level.WARNING, "Failed to save \"data.yml\" to file!", ex);
        }
    }

    /**
     * Прекращай пользоваться этим.
     * @param plugin
     * @deprecated скажи нет синглтонам! Используй ООП.
     */
    @Deprecated
    public static void onEnable(API plugin) {
        if (ConfigData.singleton == null) {
            ConfigData.singleton = new ConfigData(plugin);
        }

        ConfigData.singleton.loadSettings();
    }

    /**
     * Прекращай пользоваться этим.
     * @param plugin
     * @deprecated скажи нет синглтонам! Используй ООП.
     */
    @Deprecated
    public static void onDisable(API plugin) {
        if (ConfigData.singleton == null) {
            Bukkit.getLogger().log(Level.WARNING, "[{0}] Calling \"onDisable\" when singleton == null!", ConfigData.class.toString());
            ConfigData.singleton = new ConfigData(plugin);
        }

        ConfigData.singleton.saveSettings();
    }
}

Можешь скопипастить.
Лучше потрать месяц на обучение, чем два на гугление, если тебе не даётся логика и эвристика.
Причем тут логика? Книга - можно сказать, краткий javadoc, хорошо скомпонованный.
Книга - это сборник граблей, на которые лучше не наступать. + советы.
Я же не говорю про книги, где написано про то, как настроить eclipse и сделать hello world проект или же книги, где написано, что такое for и почему в java не принято использовать goto.
 
Книга - можно сказать, краткий javadoc, хорошо скомпонованный.
Книга - это сборник граблей, на которые лучше не наступать. + советы.
Книга всегда есть хорошо, но можно и без неё. Конечно, время изучения ЯП возрастёт, но кому то так даже интереснее.
Причем тут логика?
Я про логику в коде.
что такое for и почему в java не принято использовать goto.
Почему только в java? Почти везде не принято такое и считается моветоном.
 
Книга всегда есть хорошо, но можно и без неё. Конечно, время изучения ЯП возрастёт, но кому то так даже интереснее.
Я про логику в коде.
Почему только в java? Почти везде не принято такое и считается моветоном.
Взгляни на "видео-туториалы". Смотрел к примеру тутор по JSF, просто чтобы узнать, что это за монстр такой, а там учат проект создавать в eclipse.
Also, купил книгу "Философия Java", там введение в язык Java есть, неплохое.

Я вот понимаю, что говорят, "без книг научился". Мне это самому интересно, но зачем об этом везде писать?
Я вот везде книги пихаю, ибо это явно почти решение говнокода.
Это когда есть ОТО, но ты говоришь, что нееет, я лучше сам всё открою заново. Зачем?
 
Это когда есть ОТО, но ты говоришь, что нееет, я лучше сам всё открою заново. Зачем?
Потому что так интереснее, наверно?
Я вот везде книги пихаю, ибо это явно почти решение говнокода.
Главная проблема кник - в них нет объёмных примеров. В основном встречаются две-три строчки, иногда можно увидеть целый метод. Но в них почти не встречаются полные классы. А если ты хочешь, чтобы не было говнокода, то надо показать как "правильно" писать.
 
Потому что так интереснее, наверно?
Главная проблема кник - в них нет объёмных примеров. В основном встречаются две-три строчки, иногда можно увидеть целый метод. Но в них почти не встречаются полные классы. А если ты хочешь, чтобы не было говнокода, то надо показать как "правильно" писать.
1. Не нужно всем говорить это
2. Есть много книг, где в процессе обучения создаётся 1 большой проект. Не те книги читаете, товарищ.
Показывать, как правильно? А не легче посмотреть 1,5 проекта на github'е? Это ведь интереснее, чем читать сухую теорию.
 
Прям аж самому интересно наблюдать за тредами, которые он берёт на себя.
У меня случилось бы +10 к счастью, если бы такие треды брало на себя немного больше людей ;)
Причем тут логика? Книга - можно сказать, краткий javadoc, хорошо скомпонованный.
Оффтоп, но небольшая просьба — время от времени убивать в себе оверквоттера.
Я вот понимаю, что говорят, "без книг научился". Мне это самому интересно, но зачем об этом везде писать?
Я, например, это написал тебе, потому что ты обращался с предложением по книгам мне:
  • upload_2016-8-17_13-16-12.png
Сказал бы ты ТСу "Читай книги!", я оказался бы неудел со своей фразой. Ну а так-то это наш с тобой диалог получился, don't it?
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.
Назад
Верх