Установка текста конфигурационного файла Bukkit по умолчанию (PaperMc 1.15)

#java #bukkit

#java #буккит

Вопрос:

Я создал настройки локали таким образом, чтобы итальянский, английский, … Мне уже нужно было знать, как настроить предопределенную конфигурацию: я, очевидно, пробовал, как это делает каждый хороший человек, но я думаю, что это слишком неэффективно, я также пытался создавать файлы через IDE в том же месте, где файлы в папке данных создаются в OnEnable, но, очевидно, это не так работа, однако то, что я пытался сделать неэффективным, так это: customConfig.set("Hi-Message", "I'm sorry, i love you");

Комментарии:

1. …..Удар……

Ответ №1:

То, как я делаю это прямо сейчас, — это просто наличие файла конфигурации в самом исходном коде и, если файловая версия конфигурации еще не существует, создает новый конфигурационный файл, используя конфигурационный файл из скомпилированного исходного кода.

В моем onEnable методе in Main я просто вызываю метод в другом классе FileManager.setup() .

Это выглядит примерно так в setup():

     public static void setup() throws IOException {
        
        File plugin_work_directory = new File(plugin_work_path);
        
        core_server_config = new File(plugin_work_path   "config.txt");

        if (!plugin_work_directory.exists()) plugin_work_directory.mkdir();

        if (!core_server_config.exists()) {
            
            InputStream core_server_config_template = (Main.class.getResourceAsStream("/config.txt"));
            Files.copy(core_server_config_template, Paths.get(plugin_work_path   "config.txt"));
        }

        Config.load();

        if (Integer.parseInt(Config.getValue("config.version")) < Config.version) {
            
            core_server_config.delete();
            InputStream core_server_config_template = (Main.class.getResourceAsStream("/config.txt"));
            Files.copy(core_server_config_template, Paths.get(plugin_work_path   "config.txt"));
        }

        Config.load();
    }
 

Config.load() анализирует значения в частной хэш-карте класса Config, благодаря чему другие классы могут ссылаться на хэш-карту с помощью String getValue(String string) метода.