redacted

  • Автор темы Автор темы MrTerf
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

MrTerf

Активный участник
Баллы
66
redacted
 
Последнее редактирование:
Зачем вручную получать дефолтный конфиг?
main#getConfig() для кого делали?
Где вы такие туториалы берёте, что вас учат работать с эвентами не научив работать с конфигами(хотя бы дефолтными).
 
PHP:
    Main main; public JobEvents(Main main) { main = this.main; }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
        File conf = new File(main.getDataFolder() + File.separator + "config.yml");
        if(conf.exists()) {
            Inventory jobsList = Bukkit.createInventory(e.getPlayer(), 56, "123");
            e.getPlayer().openInventory(jobsList);
        }
    }

Самый стандартный код проверки, существует ли файл. Но записать файл в переменную не удаётся - кидает NullPointerException. Что не так? Версия - Spigot 1.12.2
Такого файла не существует. И вообще пользуются так:
Код:
    Main main; public JobEvents(Main main) { main = this.main; }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
        File conf = new File(main.getDataFolder() + "config.yml");
        if(conf.exists()) {
            Inventory jobsList = Bukkit.createInventory(e.getPlayer(), 56, "123");
            e.getPlayer().openInventory(jobsList);
        }
    }
 
Зачем вручную получать дефолтный конфиг?
main#getConfig() для кого делали?
Где вы такие туториалы берёте, что вас учат работать с эвентами не научив работать с конфигами(хотя бы дефолтными).
Он не получишь конфиг, а NPE. Ему надо проверить существует он или нет.
 
Немного изменил. Main:
Код:
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {

public void onEnable() {
// 
saveConfig();
getCommand("job").setExecutor(new Job());
Bukkit.getPluginManager().registerEvents(new JobEvents(this), this);
}

public void onDisable() {

   }
}
 
public void onDisable() { } }
щас бы юзать onDisable когда он не нужен. (и давать такие полезные советы,ммм)
В onEnable saveDefaultConfig();
(Надеюсь записывать/брать/добавлять в кфг умеешь)
 
Оффтоп. А код нужен для кастомных конфигов.
Уважаемый, ты не написал, что тебе это надо для кастом конфигов.
Я, не зная этого, указал на более правильное решение увидев config.yml.
И, пожалуй тебе, я уже помогать не стану.
 
Такого файла не существует. И вообще пользуются так:
Код:
    Main main; public JobEvents(Main main) { main = this.main; }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
        File conf = new File(main.getDataFolder() + "config.yml");
        if(conf.exists()) {
            Inventory jobsList = Bukkit.createInventory(e.getPlayer(), 56, "123");
            e.getPlayer().openInventory(jobsList);
        }
    }
сеператор кто ставить будет? Тогда так делай:
PHP:
File conf = new File(main.getDataFolder(), "config.yml");
 
Вот тебе пример кастома:
PHP:
//Путь
package you.package.example.test;

//Импорты, не столь обращай на них внимание
import java.io.*
import org.bukkit.*
import org.bukkit.configuration.file.*;

//Имя класса, а так же его тип
public class Config {
 
   //Создаем и указываем файл
   File customFile = new File("customfolder/customfile.yml");
   //Присваиваем customFile свойства конфига (т.е грузим его как кфг)
   static customConfig = YamlConfiguration.loadConfiguration(customFile);
   //Создавать конструктор для глупых, я буду статик
   //Статичный метод для того чтобы взять конфиг
   public static FileConfiguration getCustomConfig()
   {
    //Если мы используем метод он будет возвращать конфиг
     return customConfig;
   }

}
PHP:
//Путь
package you.package.example.test;

//Импорты, не столь обращай на них внимание
import static you.package.example.test.Config.*;

//Имя класса, а так же его тип
public class Listener {
  //Статичный метод который будем использовать если нужно создать конфиг
  public static void load()
  {
   //Если конфига не существует
    if (!customFile.exists())
    {
     //Обработка ошибок
       try {
      //Создаем файл
       customFile.createNewFile();
        } catch (IOException e) {
          //Выводим ошибку
           e.printStackTrace();
       }
  }
  //Статичный метод который будем использовать если нужно сохранить конфиг
  public static void save()
  {
   //Обработка ошибок
    try {
       //Сохраняем файл
       getCustomConfig().save(customFile);
   } catch (IOException ex) {
      //Выводим ошибку
       e.printStackTrace();
  }

}
PHP:
//Путь
package you.package.example.test;

//Импорты, не столь обращай на них внимание
import static you.package.example.test.Listener.*;

//Имя класса, а так же его тип + Здесь мы унаследовали JavaPlugin. 
public class Main extends JavaPlugin {

    @Override
    //Метод onEnable, используется при включении плагина.
    public void onEnable()
    {
       //Исполняем наш метод загрузки
        load();
    }

}
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.
Назад
Верх