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

Помогите Переменные в config.yml

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

Статус темы:
Закрыта.
  1. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Выше код
     
  2. Хостинг MineCraft
    <
  3. Lilian_solo

    Lilian_solo Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    CoreKolas
    Код:
     public void onDisable() {
          saveConfig();  
       }
     
  4. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Я это выше написал
     
  5. Автор темы
    _Rudey_

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

    Баллы:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    Видимо, я сделал что-то не то. При отключении сервера и его включении - переменная обнуляетя

    Вот код крч

    Код:
       
        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            Bukkit.getPluginManager().registerEvents(new GUI(),this);
            File config = new File(getDataFolder() + File.separator + "config.yml");
            if(!config.exists()) {
                getConfig().options().copyDefaults(true);
            }
        }
       
       
        public void onDisable(){
            this.saveConfig();
        }
       
        //Handlers
       
        @EventHandler
        public void onPlayer(PlayerDeathEvent e) {
            Player p = (Player) e.getEntity();
           
            d += 1;
            this.getConfig().set("deaths", d);
            this.saveConfig();
        }
    
     
  6. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    А она вообще растет эта переменная, или она всегда 0?
     
  7. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Можно же просто getConfig().set(".slomali", getConfig().getInt(".slomali"++);. Лучше понять сохранять сразу, ибо сервер может упасть, и onDisable не выполнится[DOUBLEPOST=1478497434][/DOUBLEPOST]
    Очень много говна в onEnable, смотри
    Код:
    @Override
    public void onEnable() {
    this.saveDefaultConfig();
    this.reloadConfig();
    Bukkit.getPluginManager().registerEvents(this, this);
    Bukkit.getPluginManager().registerEvents(new GUI(), this);
    }
    Ах, да, если тебе нужно будет использовать главный класс в других классах, а точнее использовать не статические методы как getConfig(), добавь в главный класс следующее
    Код:
    public static Main instance;
    
    onEnable:
    instance = this;
    //
    
    Получай его так
    public static Main getInstance() {
    return instance;
    }
    И когда тебе будут нужня методы главного класса, да и он сам, вызывай его через getInstance(в других классах)
     
  8. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Ага, упадет, из за того что переменную заменили в конфиге, бред.
     
  9. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Инстанс - конструктор.
    Я понял, что в них вообще смысла нет, через конструктор все проще.
     
  10. Автор темы
    _Rudey_

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

    Баллы:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    Да, переменная полностью функционирует, изменяется, но когда сервер выключается или перезагружается - всё на 0.
     
  11. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Я сейчас не дома, по этому, пока не могу помочь
     
  12. Автор темы
    _Rudey_

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

    Баллы:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    Отпиши, как будешь. 3-й день долблюсь с этой хренью, а решить не могу :(
     
  13. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Попробуй может добавлять значения Default[DOUBLEPOST=1478532467,1478532376][/DOUBLEPOST]Вроде getConfig().addDefault
     
  14. Автор темы
    _Rudey_

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

    Баллы:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    Я понял в чём дело! Число сохраняется в конфиге, но после перезагрузки плагин игнорирует это число, то бишь мне надо, чтобы плагин загрузил число из конфига в момент его запуска. Остался вопрос: как это сделать
     
  15. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Так число то в конфиге остается после рестарта?
    Получить число из конфига getInt
     
  16. Автор темы
    _Rudey_

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

    Баллы:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    Число остаётся. Куда getInt писать?
     
  17. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Пфф, с этого надо было начинать.

    int deaths = getConfig().getInt(".deaths");
    p.sendMessage(deaths);

    Отправит строку из конфига игроку
     
  18. Автор темы
    _Rudey_

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

    Баллы:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    И после просто прибавлять к переменной deaths по 1 при каждой смерти? То бишь переменную я могу сократить до "d"?[DOUBLEPOST=1478541713,1478541576][/DOUBLEPOST]
    Проблема решена! Спасибо тебе огромное! :)
    Крайне благодарен
     
  19. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Нееет, ты хочешь что бы она сохранялась в конфиг? Она сохраняется, прибавлять ты будешь к строке в конфиге, а это просто для получения значения из строки
     
Статус темы:
Закрыта.

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