1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[Решено] Не могу получить значения из конфига

Тема в разделе "Разработка плагинов для новичков", создана пользователем DonDays, 27 сен 2016.

Статус темы:
Закрыта.
  1. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Здравствуйте! Пишу плагин, и мне нужно создать конфиг, где хранятся нужные значения. Все шло хорошо, пока я не столкнулся с проблемой - я не могу получить значения из конфига в других классах, при чем в главном классе все работает прекрасно. Вот "образец" моего кода:
    Код:
    public class Test implements Listener {
    
    private Main instance;
    
    //шо-то там
    
    List list = instance.getConfig().getList("Лист");
    В консоли пишет - java.lang.nullPointerExeption (я знаю, что это значит, не нужно мне это переводить).
    Как решить данную проблему?
     
  2. andreispas

    andreispas Активный участник Пользователь

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Хотелось бы узнать как ты создаешь конфиг
     
  3. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    if(!(new File(getDataFolder(), "config.yml")).exists())
    saveDefaultConfig();
    reloadConfig();
     
  4. Welester

    Welester Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    Welester
    Ну смотри, я конечно не профессионал, но всё же,
    Попробуй создать так:
    public void onEnable(){
    getConfig().options().copyDefaults(true);
    saveDefaultConfig();
    }
    public void PlayerJoin(PlayerJoinEvent e){
    Player p = e.getPlayer();
    if(getConfig().getString("Что надо." + p.getPlayer()) == null){
    getConfig().addDefault("Что надо." + p.getPlayer(), значение);
    }
     
  5. andreispas

    andreispas Активный участник Пользователь

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Ты хочешь создать дефолтный конфиг(config.yml)?
    Если да, то лучше сделать так:
    Код:
    public class Main extends JavaPlugin {
      
        private static FileConfiguration configuration;
        private static Main plugin;
        @Override
        public void onEnable() {
            plugin = this;
            configuration = getConfig();
        }
      
        public static FileConfiguration getConfiguration() {
            return configuration;
        }
      
        public static Main getPlugin() {
            return plugin;
        }
    }
    Чтобы вызвать конфиг в другом классе используй
    Код:
    Main.getConfiguration()
     
    Последнее редактирование: 27 сен 2016
  6. Welester

    Welester Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    Welester
    Ну да, только он немного косо его создаёт
     
  7. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Спасибо, все работает, действительно, криво написал
     
  8. andreispas

    andreispas Активный участник Пользователь

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
     
    Последнее редактирование: 27 сен 2016
  9. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Up. Та же самая проблема - думал, что решил, но когда протестировал плагин, проблема повторилась - я не могу получить значения из конфига в других классах
     
  10. andreispas

    andreispas Активный участник Пользователь

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
     
  11. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Бесполезно.
     
  12. andreispas

    andreispas Активный участник Пользователь

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Как ты достаешь конфиг в другом класс файле?
     
  13. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Main.getConfig().getString("");
     
  14. andreispas

    andreispas Активный участник Пользователь

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    ....
    Код:
    Main.getConfiguration().getString("");
     
  15. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Спасибо, сейчас попробую
    Нет, не работает :cry:
     
  16. andreispas

    andreispas Активный участник Пользователь

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Скинь полностью свой код
     
  17. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Для теста написал в отдельном классе отдельный евент, вот:
    Код:
        @EventHandler
        public void onMove (PlayerMoveEvent e)
        {
            e.getPlayer().sendMessage(ChatControl.getConfiguration().getString("testString"));
        }
     
  18. andreispas

    andreispas Активный участник Пользователь

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Скинь главный файл
     
  19. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Код:
    public class ChatControl extends JavaPlugin {
       
        public List<?> swear;
        public List<?> advertisement;
        private static FileConfiguration configuration;
       
        public ChatControl()
        {
            this.swear = this.getConfig().getList("Blacklist.Swear");
            this.advertisement = this.getConfig().getList("Blacklist.Advertisement");
        }
       
        @Override
        public void onEnable()
        {
            getConfig().options().copyDefaults(true);
            saveDefaultConfig();
            configuration = getConfig();
            Bukkit.getPluginManager().registerEvents(new SwearListener(), this);
            Bukkit.getPluginManager().registerEvents(new AdvertisementListener(), this);
            Bukkit.getPluginManager().registerEvents(new CommandFilter(), this);
            getCommand("chatcontrol").setExecutor(new PluginExecutor());
        }
       
        public static FileConfiguration getConfiguration() {
            return configuration;
        }
    }
     
  20. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Файл конфига покажите
     
Статус темы:
Закрыта.

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