В данном гайде начинающие
Bukkit разработчики смогут узнать как с лёгкостью добавить автообновление конфига в свой плагин. Мы так же разберём мой метод создания файла конфигурации и детально изучим принцип работы утилиты
Config-Updater от автора под никнеймом
tchristofferson, благодаря которой мы и сможем добавить автоматическое обновление конфигурации в наш плагин.
Разбираемся с файлом конфигурации
Для начала немного разберёмся с тем, что из себя представляет файл конфигурации. config.yml - файл, который автоматически создаётся плагином для хранения определённых настроек. В этом гайде как пример я буду использовать свой плагин
xAutoFly. Вот его конфигурация:
#Settings
#enabled - Should the plugin work? (true/false)
#permission-mode - Should the plugin work only for players with a special permission? (true/false)
#permission - The permission for the permission-mode field.
#send-message - Should the plugin send player a message about autofly? It's only sent when player joins the server. (true/false)
enabled: true
permission-mode: false
permission: 'xaf.perm'
send-message: false
#Locale
prefix: "&bXAF &8>> &f"
unknown-command: "Unknown command."
no-permissions: "You don't have enough permissions to execute this command."
successfully-reloaded: "You have successfully reloaded the configuration."
message: "Flight was enabled &bautomatically&f."
Как мы можем видеть, у меня есть часть строчек отвечающих именно за настройки плагина и часть, отвечающая за языковые строчки.
Для использования
Config-Updater нужно подвести свою конфигурацию под определённый вид, а именно
вынести комментарии отдельно от самих строчек конфига. В моём случае я описал каждую настройку перед самими строками с этими самими настройками.
Добавляем Config-Updater в наш проект и используем его
Для добавления
ConfigUpdater в свой проект вам необходимо использовать либо
Maven или
Gradle, в моём случае используется
Maven, поэтому я вписываю зависимость в секцию
dependencies в файле
pom.xml:
<dependency>
<groupId>com.tchristofferson</groupId>
<artifactId>ConfigUpdater</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
Найти актуальную версию зависимости и строчку для своего проекта вы сможете
в официальном репозитории Config-Updater на GitHub.
После добавления зависимости в свой проект и её загрузки мы можем приступить к использованию этой утилиты. В своих плагинах я привык работать с кодом связанным с конфигурацией плагина в отдельном классе.
Я создам класс
Config и напишу код, который будет создавать файл
config.yml в случае его отсутствия и проверит его на соответствие с тем файлом, что находится внутри
.jar файла (для этого и нужна утилита
Config-Updater).
public class Config {
Main plugin;
public Config(Main plugin) {
this.plugin = plugin;
}
public void init() {
File configFile = new File(plugin.getDataFolder(), "config.yml");
if (!configFile.exists()) {
plugin.getConfig().options().copyDefaults(true);
plugin.saveDefaultConfig();
plugin.getLogger().info("Config was successfully generated.");
}
try {
ConfigUpdater.update(plugin, "config.yml", configFile);
}
catch (IOException e) {
e.printStackTrace();
}
plugin.reloadConfig();
}
}
Важно Config-Updater требует использования структуры
try {} catch {} для своего метода
update(), в котором вы так же указываете главный класс плагина, название файла конфигурации (String) и объект
File, который и является вашим файлом конфигурации.
После создания метода инициализации и проверки файла конфигурации, мы должны воспользоваться им в главном классе. Поэтому в главном классе мы создадим объект
Config (так же называется и мой класс, в котором находится весь код, связанный с конфигурацией) и вызовем из него метод
init(), который создаст и проверит конфигурацию плагина если её не существует либо же в дальнейшем просто проверит конфигурацию на наличие отсутствия новых строк в случае её существования.
Данную строку мы вписываем в главном классе.
Данные строки мы вписываем в методе
onEnable().
config = new Config(this);
config.init();
Готово! После этих действий можно компилировать плагин и проверять. Для проверки работоспособности утилиты для начала запустите плагин на сервере с одной конфигурацией, а потом допишите в конфигурацию новые строки, сбилдите новый
.jar файл и загрузите новую версию плагина на сервер. Если в конфигурации появятся новые строки, значит вы всё сделали правильно и утилита работает корректно!
Как мы можем видеть, добавление автообновления конфигурации в плагин не является сложной задачей, однако как по мне это весьма важно, поскольку по стандарту если вы просто инициализируете конфигурацию и разработаете новую версию плагина с новыми настройками в конфиге то они не добавятся туда автоматически и будут использоваться значения по умолчанию. Надеюсь, что вы узнали для себя что-то новое и данный гайд был полезен для вас! Спасибо за прочтение :)