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

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

DonDays

Активный участник
Пользователь
Баллы
96
Имя в Minecraft
DonDays
Здравствуйте! Пишу плагин, и мне нужно создать конфиг, где хранятся нужные значения. Все шло хорошо, пока я не столкнулся с проблемой - я не могу получить значения из конфига в других классах, при чем в главном классе все работает прекрасно. Вот "образец" моего кода:
Код:
public class Test implements Listener {

private Main instance;

//шо-то там

List list = instance.getConfig().getList("Лист");

В консоли пишет - java.lang.nullPointerExeption (я знаю, что это значит, не нужно мне это переводить).
Как решить данную проблему?
 
Здравствуйте! Пишу плагин, и мне нужно создать конфиг, где хранятся нужные значения. Все шло хорошо, пока я не столкнулся с проблемой - я не могу получить значения из конфига в других классах, при чем в главном классе все работает прекрасно. Вот "образец" моего кода:
Код:
public class Test implements Listener {

private Main instance;

//шо-то там

List list = instance.getConfig().getList("Лист");

В консоли пишет - java.lang.nullPointerExeption (я знаю, что это значит, не нужно мне это переводить).
Как решить данную проблему?
Хотелось бы узнать как ты создаешь конфиг
 
if(!(new File(getDataFolder(), "config.yml")).exists())
saveDefaultConfig();
reloadConfig();
Ну смотри, я конечно не профессионал, но всё же,
Попробуй создать так:
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(), значение);
}
 
if(!(new File(getDataFolder(), "config.yml")).exists())
saveDefaultConfig();
reloadConfig();
Ты хочешь создать дефолтный конфиг(config.yml)?
Если да, то лучше сделать так:
Java:
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;
    }
}
Чтобы вызвать конфиг в другом классе используй
Java:
Main.getConfiguration()
 
Последнее редактирование:
Ну да, только он немного косо его создаёт
Ты хочешь создать дефолтный конфиг(config.yml)?
Если да, то лучше сделать так:
Java:
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;
    }
}
Чтобы вызвать конфиг в другом классе используй
Java:
Main.getConfiguration()
 
Последнее редактирование:
Up. Та же самая проблема - думал, что решил, но когда протестировал плагин, проблема повторилась - я не могу получить значения из конфига в других классах
 
Up. Та же самая проблема - думал, что решил, но когда протестировал плагин, проблема повторилась - я не могу получить значения из конфига в других классах
Ты хочешь создать дефолтный конфиг(config.yml)?
Если да, то лучше сделать так:
Java:
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;
    }
}
Чтобы вызвать конфиг в другом классе используй
Java:
Main.getConfiguration()
 
Бесполезно.
 
Скинь полностью свой код
Для теста написал в отдельном классе отдельный евент, вот:
Код:
    @EventHandler
    public void onMove (PlayerMoveEvent e)
    {
        e.getPlayer().sendMessage(ChatControl.getConfiguration().getString("testString"));
    }
 
Для теста написал в отдельном классе отдельный евент, вот:
Код:
    @EventHandler
    public void onMove (PlayerMoveEvent e)
    {
        e.getPlayer().sendMessage(ChatControl.getConfiguration().getString("testString"));
    }
Скинь главный файл
 
Скинь главный файл
Код:
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;
    }
}
 
Файл конфига покажите
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх