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

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

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

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

    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")) .....
    
    Если так нельзя, то как можно?

    Заранее спасибо.
     
  2. Хостинг MineCraft
    <
  3. Exception_Prototype

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

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

    Код:
        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);
     
    
    
    
     
  4. Автор темы
    Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    я так примерно и пытаюсь.

    вот у меня главный класс
    Код:
    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. и эклипс даже не предлагает мне там это конфиг.

    вот я и спрашиваю, как сделать что бы работало[DOUBLEPOST=1480317613,1480317173][/DOUBLEPOST]Все, я дурак, только сейчас дошло что у меня конфиги были объявлены как private.
     
Статус темы:
Закрыта.

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