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

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

Discussion in 'Разработка плагинов для новичков' started by Fenix78563, Nov 28, 2016.

Thread Status:
Not open for further replies.
  1. Автор темы
    Fenix78563

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    Доброго времени суток, форумчане.

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

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

    Code:
    private static FileConfiguration tabs;
    //какой то код//
    File tn = new File(plugin.getDataFolder() + File.separator + "tabs.yml");
    tabs = YamlConfiguration.loadConfiguration(tn);
    
    В итоге там где мне надо вызвать конфиг я его просто вызываю.
    Code:
    ...   if (tabs.getBoolean(s+".Enabled")) .....
    
    Как мне подключить эти конфиги один раз и насовсем?

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

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

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

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

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

    Code:
        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 Активный участник Пользователь

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

    вот у меня главный класс
    Code:
    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.
     
Thread Status:
Not open for further replies.

Share This Page