Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Plugin yml ругается

Статус
Закрыто для дальнейших ответов.
Вот кусок кода, который относится к конфигу, его созданию и использованию:
Код:
FileConfiguration cfg = getConfig();
    public void onEnable()
    {
        getServer().getPluginManager().registerEvents(this, this);
    
        try
        {
            File file = new File(getDataFolder() + "/config.yml");
            if(!file.exists())
            {
                cfg.addDefault("mysql", "jdbc:mysql://localhost/dbname");
                cfg.addDefault("username", "username");
                cfg.addDefault("password", "password");
                cfg.options().copyDefaults(true);
                saveConfig();
            }
        }
        catch(Exception e){ }
    
        getLogger().info("Test plugin enabled!");
    }

    String mysql = cfg.getString("mysql");
    String username = cfg.getString("username");
    String password = cfg.getString("password");
Выдает ошибку. Причина: "File cannot be null".
Тогда я понять не могу: нельзя создать пустой config.yml или что?
Ну а в папке TestPlugin лежит config.yml?
И не нужно определять cfg за пределами методов
Не надо вообще определять переменные за пределами метода
 
Код:
FileConfiguration cfg;
    public void onEnable()
    {
     <…>
     cfg = getConfig();
    String mysql = cfg.getString("mysql");
    String username = cfg.getString("username");
    String password = cfg.getString("password");
}
 
Я для себя работу с конфигом давно привёл к подобным процедурам:
https://github.com/fromgate/PlayEff...e/fromgate/playeffect/PlayEffect.java#L52-L72

При старте плагина всегда вызываю последовательно loadCfg() и saveCfg(). Это приводит к тому, что при первом запуске плагина создается конфиг с дефолтными значениями.
 
Код:
FileConfiguration cfg;
    String v1;
    String v2;
    String v3
    public void onEnable()
    {
     <…>
     cfg = getConfig();
    v1 = cfg.getString("mysql");
    v2 = cfg.getString("username");
    v3 = cfg.getString("password");
}
 
Код:
FileConfiguration cfg;
    String v1;
    String v2;
    String v3
    public void onEnable()
    {
     <…>
     cfg = getConfig();
    v1 = cfg.getString("mysql");
    v2 = cfg.getString("username");
    v3 = cfg.getString("password");
}
Спасибо за помощь, разобрался вроде со всем
 
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх