- Баллы
- 76
- Имя в Minecraft
- Lisenochek
Кк, ВК в помощь... Я с телефона

Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Кк, ВК в помощь... Я с телефона

Тебе дали решение, но ты даже не даёшь код, чтобы понять в чём проблема.Блин, разве нету решений?
public static FileConfiguration loadYaml(String path) {
if (!path.endsWith(".yml"))
path += ".yml"; //Для использования обычными юзерми и просто для удобства
File file = new File(Main.plugin.getDataFolder(), path); //Файл в папке твоего плагина
if(file.isDirectory())
file.delete(); //Удаляем, если это папка
if (!file.exists()) {
try {
Main.plugin.saveResource(path, false); //Создаём, если файла нет
} catch (Exception e) { //Может возникнуть в случае отсутствия ресурса в джарнике или при недостаточности прав
Main.plugin.getLogger().log(Level.SEVERE, "Не удалось сохранить ресурс " + path);
e.printStackTrace();
return null;
}
}
return YamlConfiguration.loadConfiguration(file); //Парсит содержимое в удобный объект
}
Считай независимая версия твоей поделки.Я, вот, не понимаю, что тут сложного?
Использую примерно такой универсальный метод.
Поле Main.plugin - JavaPlugin - аналог твоего API.instance(), я думаю. Проверь, чтобы null не был.
JavaScript:public static FileConfiguration loadYaml(String path) { if (!path.endsWith(".yml")) path += ".yml"; //Для использования обычными юзерми и просто для удобства File file = new File(Main.plugin.getDataFolder(), path); //Файл в папке твоего плагина if(file.isDirectory()) file.delete(); //Удаляем, если это папка if (!file.exists()) { try { Main.plugin.saveResource(path, false); //Создаём, если файла нет } catch (Exception e) { //Может возникнуть в случае отсутствия ресурса в джарнике или при недостаточности прав Main.plugin.getLogger().log(Level.SEVERE, "Не удалось сохранить ресурс " + path); e.printStackTrace(); return null; } } return YamlConfiguration.loadConfiguration(file); //Парсит содержимое в удобный объект }
public static final FileConfiguration loadYaml(JavaPlugin instance, String path) {
//Проверяем что нам подсунули как плагин.
if (instance == null) {
throw new IllegalArgumentException("Instance of the plugin is null!");
}
//Так же проверяем путь на null и пустоту.
if (path == null || path.equals("")) {
throw new IllegalArgumentException("Path can not be null or empty!");
}
//Для использования обычными юзерми и просто для удобства
if (!path.endsWith(".yml")) {
path += ".yml";
}
//Файл в рабочей папке твоего плагина
File file = new File(instance.getDataFolder(), path);
//Удаляем файл, если это папка
if (file.isDirectory()) {
file.delete();
}
//Создаём файл, если его нет
if (!file.exists()) {
try {
instance.saveResource(path, false);
} catch (Exception e) {
//Может возникнуть в случае отсутствия ресурса в джарнике или при недостаточности прав
instance.getLogger().log(Level.SEVERE, "Не удалось сохранить ресурс " + path, e);
return null;
}
}
//Парсит содержимое в удобный объект
return YamlConfiguration.loadConfiguration(file);
}
Ну, в принципе полезно, да. У меня-то так, поскольку не использую сторонние плагины и не использую кастомные названия файлов. Ну, и throw'ить не люблю.Считай независимая версия твоей поделки.Java:public static final FileConfiguration loadYaml(JavaPlugin instance, String path) { //Проверяем что нам подсунули как плагин. if (instance == null) { throw new IllegalArgumentException("Instance of the plugin is null!"); } //Так же проверяем путь на null и пустоту. if (path == null || path.equals("")) { throw new IllegalArgumentException("Path can not be null or empty!"); } //Для использования обычными юзерми и просто для удобства if (!path.endsWith(".yml")) { path += ".yml"; } //Файл в рабочей папке твоего плагина File file = new File(instance.getDataFolder(), path); //Удаляем файл, если это папка if (file.isDirectory()) { file.delete(); } //Создаём файл, если его нет if (!file.exists()) { try { instance.saveResource(path, false); } catch (Exception e) { //Может возникнуть в случае отсутствия ресурса в джарнике или при недостаточности прав instance.getLogger().log(Level.SEVERE, "Не удалось сохранить ресурс " + path, e); return null; } } //Парсит содержимое в удобный объект return YamlConfiguration.loadConfiguration(file); }
Зря конечно. Самое простое (но время жрёт не дурно) действие для того, чтобы показать пользователю об ошибке.throw'ить не люблю.
Я такую конструкцию залепил для того, чтобы кинуть в какой ниб класс Utils и забыть как он устроен в принципе. Накидать доков сверху метода, и пущай пылится.Ну, в принципе полезно, да. У меня-то так, поскольку не использую сторонние плагины и не использую кастомные названия файлов.
Обожаю ловить приходы сразу нескольких Exception'ов из-за одной ошибки.Зря конечно. Самое простое (но время жрёт не дурно) действие для того, чтобы показать пользователю об ошибке.
А если серьёзно, то такие конструкции оставляю там, где уверен в отсутствии ошибок. На стороне вызова банально никогда не приходится в trycatch заключать. Красиво же. Правда IDE на потенциальный null намекает, ну да ладно... На самом деле, конечно, это не очень правильно. По канонам надо делать так, как ты и предложил. Но в конце концов я для паблика практически ничего не пилю, так что позволительно, наверно.Да понятное дело. По той же причине, что для паблика не делаю, меня устраивает и нынешний вариант. Как раз утилитой и валяется без движения. А ТС'у тем более такого не надо. Даже я-то лишнего скинул, в общем.Я такую конструкцию залепил для того, чтобы кинуть в какой ниб класс Utils и забыть как он устроен в принципе. Накидать доков сверху метода, и пущай пылиться.

Ну так то да - обернуть saveResource и loadConfiguration на 7+ строк та ещё затеяДаже я-то лишнего скинул, в общем.![]()
В принципе да - лучше создавать само исключение, выбрасывать его в лог и возвращать null - так оно не должно разъехаться по всему коду. Но возвращая null мы как бэ намекаем, что этот самый null мы после вызова этого метода как то обработаем. (Слишком много null в одном сообщении)Обожаю ловить приходы сразу нескольких Exception'ов из-за одной ошибки.
Ну, это моя самооуверенность... В других же случаях нулл обрабатывается, ясное дело.Ну так то да - обернуть saveResource и loadConfiguration на 7+ строк та ещё затеяВ принципе да - лучше создавать само исключение, выбрасывать его в лог и возвращать null - так оно не должно разъехаться по всему коду. Но возвращая null мы как бэ намекаем, что этот самый null мы после вызова этого метода как то обработаем. (Слишком много null в одном сообщении)
Проблема еще актуальна?Очень много ошибок, не могу править код.
saveResource("ConfigTradeItems.yml", true);
saveResource("NameMaterials.yml", true);
Смотришь на дату?Это позволит копировать из jar в папку с конфигами плагина.
true - копировать с заменой.
Далее получаешь нужный тебе конфиг как обычно.
Java:saveResource("ConfigTradeItems.yml", true); saveResource("NameMaterials.yml", true);
Этот человек создал тему с вопросом, на которую я дал ответ, после чего он её закрыл ничего не написав.Смотришь на дату?

А потом я их удалил. Вообще хотел удалить только одно с "у меня этот код закидывает ошибку" по причине "я криворукий дибил", но случайно удалил и второеЭтот человек создал тему с вопросом, на которую я дал ответ, после чего он её закрыл ничего не написав.
Ну я смотрю такой и думаю вроде же тема была открыта и отправил, а отказывается не в ту, пока увидел, дык он уже отблагодарил. Значит не зря отправил.![]()
Ну, если по логике, раз он не нашел решение он бы апнул тему.Этот человек создал тему с вопросом, на которую я дал ответ, после чего он её закрыл ничего не написав.
Ну я смотрю такой и думаю вроде же тема была открыта и отправил, а отказывается не в ту, пока увидел, дык он уже отблагодарил. Значит не зря отправил.![]()