Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов 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. Хостинг MineCraft
    <
  3. andreispas

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

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

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    if(!(new File(getDataFolder(), "config.yml")).exists())
    saveDefaultConfig();
    reloadConfig();
     
  5. 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(), значение);
    }
     
  6. 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
  7. Welester

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Спасибо, сейчас попробую[DOUBLEPOST=1474979330,1474979295][/DOUBLEPOST]
    Нет, не работает :cry:
     
  17. andreispas

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

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

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

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

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

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Скинь главный файл
     
  20. Автор темы
    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;
        }
    }
     
  21. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Файл конфига покажите
     
Статус темы:
Закрыта.

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