Помогите Хранение данных.

diego070202

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
PoZDnyak
Доброго времени суток, форумчане.
Я - начинающий "Девелопер" если можно таким называться.
Пишу пару месяцев на Bukkit API.
И в последнее время, появилась частая необходимость хранить данные без их грубо говоря потери.
Пример: сохранить локацию игрока или его инвентарь.
Делал все это, через конфиг, но думаю это какой-то вандализм.
Так вот вопрос:
как можно хранить данные(на подобии инвентаря), что-бы в любой момент можно было обратиться к ним(даже после перезагрузки и т.п)
 
Да хватит простого файла на каждого игрока. Собстно так оно и работает в самом майне.
 
Да хватит простого файла на каждого игрока. Собстно так оно и работает в самом майне.
Просто часто в плагинах вижу, что никаких файлов нет, а данные откуда-то берутся. Думал есть какой-то способ специальный
 
Просто часто в плагинах вижу, что никаких файлов нет, а данные откуда-то берутся. Думал есть какой-то способ специальный
Возможно, из базы данных загружаются. Смотри уроки по работе с MySQL
 
Хранишь в любой структуре данных в каком-нибудь классе, а при перезагрузке сохраняешь в файл, потом загружаешь. Самое простое и очевидное решение
 
Хранишь в любой структуре данных в каком-нибудь классе, а при перезагрузке сохраняешь в файл, потом загружаешь. Самое простое и очевидное решение
Я искал как индивидуальный файл для каждого создавать, но не нашел. Не подкинешь статейку?
 
Я искал как индивидуальный файл для каждого создавать, но не нашел. Не подкинешь статейку?
Если у тебя есть специализированный класс для тех данных что тебе нужно сохранить, то пройтись по всем объектам этого класса и засейвить каждый из них в определённый файл, к примеру - не проблема.
 
Я искал как индивидуальный файл для каждого создавать, но не нашел. Не подкинешь статейку?
https://bukkit.org/threads/bukkits-yaml-configuration-tutorial.42770/
Если я правильно понял, ты затрудняешься, как создать отдельные файлы. С помощью метода YamlConfiguration.loadConfiguration(file) можно получить yaml конфиг из любого обьекта File. Конечно, может это и не самый лучший вариант использовать yaml для хранения, но я пока больше ничего не могу посоветовать.
Файл можно получить например так:
new File(Plugin#getDataFolder().getPath()+"/storage", player.getName()+".yml");
там папку сам выберешь
 
Я искал как индивидуальный файл для каждого создавать, но не нашел. Не подкинешь статейку?
Как то так.
Код:
public class CustomConfig {

    private YamlConfiguration yml;
    private File file;

    CustomConfig(String name, Plugin plugin) {
        this.file = new File(plugin.getDataFolder(), name + ".yml");
        this.yml = YamlConfiguration.loadConfiguration(this.file);
        this.file.getParentFile().mkdirs();
    }

    public FileConfiguration get() {
        return this.yml;
    }

    public void save() {
        try {
            this.yml.save(this.file);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void reload() {
        try {
            this.yml.load(this.file);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static boolean exist(String name, Plugin plugin) {
        File file = new File(plugin.getDataFolder(), name + ".yml");
        return file.exists();
    }
}
 
Как то так.
Код:
public class CustomConfig {

    private YamlConfiguration yml;
    private File file;

    CustomConfig(String name, Plugin plugin) {
        this.file = new File(plugin.getDataFolder(), name + ".yml");
        this.yml = YamlConfiguration.loadConfiguration(this.file);
        this.file.getParentFile().mkdirs();
    }

    public FileConfiguration get() {
        return this.yml;
    }

    public void save() {
        try {
            this.yml.save(this.file);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void reload() {
        try {
            this.yml.load(this.file);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static boolean exist(String name, Plugin plugin) {
        File file = new File(plugin.getDataFolder(), name + ".yml");
        return file.exists();
    }
}
https://bukkit.org/threads/bukkits-yaml-configuration-tutorial.42770/
Если я правильно понял, ты затрудняешься, как создать отдельные файлы. С помощью метода YamlConfiguration.loadConfiguration(file) можно получить yaml конфиг из любого обьекта File. Конечно, может это и не самый лучший вариант использовать yaml для хранения, но я пока больше ничего не могу посоветовать.
Файл можно получить например так:
new File(Plugin#getDataFolder().getPath()+"/storage", player.getName()+".yml");
там папку сам выберешь
Благодарствую
 
Назад
Верх