Помогите Глобальное подключение кастомных конфигов.

Статус
Закрыто для дальнейших ответов.

Fenix78563

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Blc_Dragon
Доброго времени суток, форумчане.

В общем в погоне за оптимизацией решил сделать нормальное подключение конфига

На данный момент конфиги вызываются в необходимом class

Код:
private static FileConfiguration tabs;
//какой то код//
File tn = new File(plugin.getDataFolder() + File.separator + "tabs.yml");
tabs = YamlConfiguration.loadConfiguration(tn);

В итоге там где мне надо вызвать конфиг я его просто вызываю.
Код:
...   if (tabs.getBoolean(s+".Enabled")) .....

Как мне подключить эти конфиги один раз и насовсем?

Т.е примерно так.

В главном классе
Код:
private static FileConfiguration tabs;
//какой то код//
File tn = new File(plugin.getDataFolder() + File.separator + "tabs.yml");
tabs = YamlConfiguration.loadConfiguration(tn);
В необходимом классе
Код:
private static Главный_класс plugin;
public Мой_класс (Главный_класс plugin) {
        this.plugin = plugin;
    }
//какой то код//
if (plugin.tabs.getBoolean(s+".Enabled")) .....
Если так нельзя, то как можно?

Заранее спасибо.
 
Я не очень понял. Ну вот у тебя несколько конфигов. При загрузке плагина получи их всех и юзай потом де хочешь через plugin В чём проблема то?

Java:
    File FileTeamSpawns;
    File FileChekingBlocks;
    File FileTeamCore;
    File FileTradeItems;
    File FileNameMaterials;

    FileConfiguration ConfigTeamSpawns;
    FileConfiguration ConfigChekingBlocks;
    FileConfiguration ConfigTeamCore;
    FileConfiguration ConfigTradeItems;
    FileConfiguration ConfigNameMaterials;
   
       saveResource("ConfigTradeItems.yml", true);
       saveResource("NameMaterials.yml", true);

        FileTeamSpawns = new File(getDataFolder(), "TeamSpawns.yml");
        ConfigTeamSpawns = YamlConfiguration.loadConfiguration(FileTeamSpawns);

        FileChekingBlocks = new File(getDataFolder(), "ChekingBlocks.yml");
        ConfigChekingBlocks = YamlConfiguration.loadConfiguration(FileChekingBlocks);

        FileTeamCore = new File(getDataFolder(), "TeamCore.yml");
        ConfigTeamCore = YamlConfiguration.loadConfiguration(FileTeamCore);

        FileTradeItems = new File(getDataFolder(), "ConfigTradeItems.yml");
        ConfigTradeItems = YamlConfiguration.loadConfiguration(FileTradeItems);

        FileNameMaterials = new File(getDataFolder(), "NameMaterials.yml");
        ConfigNameMaterials = YamlConfiguration.loadConfiguration(FileNameMaterials);
 
Я не очень понял. Ну вот у тебя несколько конфигов. При загрузке плагина получи их всех и юзай потом де хочешь через plugin В чём проблема то?

Java:
    File FileTeamSpawns;
    File FileChekingBlocks;
    File FileTeamCore;
    File FileTradeItems;
    File FileNameMaterials;

    FileConfiguration ConfigTeamSpawns;
    FileConfiguration ConfigChekingBlocks;
    FileConfiguration ConfigTeamCore;
    FileConfiguration ConfigTradeItems;
    FileConfiguration ConfigNameMaterials;
  
       saveResource("ConfigTradeItems.yml", true);
       saveResource("NameMaterials.yml", true);

        FileTeamSpawns = new File(getDataFolder(), "TeamSpawns.yml");
        ConfigTeamSpawns = YamlConfiguration.loadConfiguration(FileTeamSpawns);

        FileChekingBlocks = new File(getDataFolder(), "ChekingBlocks.yml");
        ConfigChekingBlocks = YamlConfiguration.loadConfiguration(FileChekingBlocks);

        FileTeamCore = new File(getDataFolder(), "TeamCore.yml");
        ConfigTeamCore = YamlConfiguration.loadConfiguration(FileTeamCore);

        FileTradeItems = new File(getDataFolder(), "ConfigTradeItems.yml");
        ConfigTradeItems = YamlConfiguration.loadConfiguration(FileTradeItems);

        FileNameMaterials = new File(getDataFolder(), "NameMaterials.yml");
        ConfigNameMaterials = YamlConfiguration.loadConfiguration(FileNameMaterials);
я так примерно и пытаюсь.

вот у меня главный класс
Код:
public class Main extends JavaPlugin {
   
    private static Main plugin;
    public static Main instance() {
        return plugin;
    }

    private static FileConfiguration main;
   
        public void onEnable() {
        plugin=this;

        //import       
        Bukkit.getPluginManager().registerEvents(new GUI(this), this);
        Bukkit.getPluginManager().registerEvents(new genString(this), this);
        Bukkit.getPluginManager().registerEvents(new TabUtil(this), this);
        File mm = new File(getDataFolder() + File.separator + "main.yml");
        if (!mm.exists()) {
            Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Can't find config file main.yml");
            Bukkit.getConsoleSender().sendMessage(ChatColor.GOLD + "Creating new config file for you...");
            createYml.loadYaml(plugin, "menu.yml");
            Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "Completed!");
           
        }
        main = YamlConfiguration.loadConfiguration(mm);
       }
и внутри главного класса я действительно могу написать plugin.main.метод_с_конфигом


Но в другом классе в котором подключен class Main(это вообще нужно делать?), я вызвать его не могу. он просто не вызывается. пишу plugin. и эклипс даже не предлагает мне там это конфиг.

вот я и спрашиваю, как сделать что бы работало
Все, я дурак, только сейчас дошло что у меня конфиги были объявлены как private.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх