Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

не работает save config

Discussion in 'Разработка плагинов для новичков' started by artem2015, Sep 30, 2013.

  1. Автор темы
    artem2015

    artem2015 Участник

    Trophy Points:
    33
    Имя в Minecraft:
    admin
    если написать код в маин классе плугина:

    Code:
    File confFile = new File(this.getDataFolder(), "config.yml");
                    FileConfiguration conf = YamlConfiguration.loadConfiguration(confFile);
                    conf.set("arena_location", arena_location.toString());
                    try
                    {
                      conf.save(confFile);
                     
                    }
                    catch (IOException e) {
                      e.printStackTrace();
                    }
    то всё работает

    когда пытаюсь вынести запись в отдельный класс:

    Code:
    package game;
     
    import java.io.File;
    import java.io.IOException;
     
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.configuration.file.YamlConfiguration;
     
    public class Save_config {
        public main plugin;
       
        public void save(String name,String value)  {
           
     
        File confFile = new File(this.plugin.getDataFolder(), "config.yml");
        FileConfiguration conf = YamlConfiguration.loadConfiguration(confFile);
        conf.set(name,value);
        try
          {
          conf.save(confFile);
           
          }
            catch (IOException e) {
              e.printStackTrace();
            }
        }
     
    }
    то не работает и выдаёт в лог сервера ошибку:

    java.lang.NullPointerException
    at game.Save_config.save(Save_config.java:15)
    at game.main.Command(main.java:302)


    строка в которой выдаёт ошибку:

    File confFile = new File(this.plugin.getDataFolder(), "config.yml");

    вызываю этот класс из майна следующим образом:

    save_config.save("arena_location", arena_location.toString());

    в майне плугина этот класс объявлен следующим образом:

    public class main extends JavaPlugin implements Listener{

    public Save_config save_config = new Save_config();

    что я делаю не так?
     
  2. Хостинг MineCraft
    <
  3. gamelax

    gamelax Старожил Пользователь

    Trophy Points:
    103
    Имя в Minecraft:
    gamelax
    Понятным же языком написано. Значение у переменной "plugin" - null.
     
    slavik123123123 likes this.
  4. ensirius

    ensirius Старожил Пользователь

    Trophy Points:
    123
    При работе с баккит апи даже объект File не надо вызывать.
     
  5. Автор темы
    artem2015

    artem2015 Участник

    Trophy Points:
    33
    Имя в Minecraft:
    admin
    спасибо. заработало.

    просто хочется запись в файл сделать независимой от имени файла конфига.так как конфигов может быть несколько.
     
  6. GloomyFolken

    GloomyFolken Старожил Пользователь

    Trophy Points:
    103
    Skype:
    alconost
    http://wiki.bukkit.org/Configuration_API_Reference
    Раздел "Arbitrary Configurations" именно конфигам в своих файлах и посвящен.
     

Share This Page