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

  • Автор темы Автор темы _Rudey_
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Java:
 public void onDisable() {
      saveConfig();  
   }
 
Я это выше написал
Видимо, я сделал что-то не то. При отключении сервера и его включении - переменная обнуляетя

Вот код крч

Код:
    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();
    }
 
Видимо, я сделал что-то не то. При отключении сервера и его включении - переменная обнуляетя

Вот код крч

Код:
    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();
    }
А она вообще растет эта переменная, или она всегда 0?
 
У меня например ничего не выскакивает, скрин кинь
Код:
int oldValue = getConfig().getInt(".slomali") + 1;
getConfig().set(".slomali", oldValue);
Можно же просто getConfig().set(".slomali", getConfig().getInt(".slomali"++);. Лучше понять сохранять сразу, ибо сервер может упасть, и onDisable не выполнится
Видимо, я сделал что-то не то. При отключении сервера и его включении - переменная обнуляетя

Вот код крч

Код:
    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();
    }
Очень много говна в 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(в других классах)
 
Можно же просто getConfig().set(".slomali", getConfig().getInt(".slomali"++);. Лучше понять сохранять сразу, ибо сервер может упасть, и onDisable не выполнится
Ага, упадет, из за того что переменную заменили в конфиге, бред.
 
Можно же просто getConfig().set(".slomali", getConfig().getInt(".slomali"++);. Лучше понять сохранять сразу, ибо сервер может упасть, и onDisable не выполнится
Очень много говна в 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(в других классах)
Инстанс - конструктор.
Я понял, что в них вообще смысла нет, через конструктор все проще.
 
А она вообще растет эта переменная, или она всегда 0?
Да, переменная полностью функционирует, изменяется, но когда сервер выключается или перезагружается - всё на 0.
 
Попробуй может добавлять значения Default
Вроде getConfig().addDefault
Я понял в чём дело! Число сохраняется в конфиге, но после перезагрузки плагин игнорирует это число, то бишь мне надо, чтобы плагин загрузил число из конфига в момент его запуска. Остался вопрос: как это сделать
 
Так число то в конфиге остается после рестарта?
Получить число из конфига getInt
 
Пфф, с этого надо было начинать.

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

Отправит строку из конфига игроку
И после просто прибавлять к переменной deaths по 1 при каждой смерти? То бишь переменную я могу сократить до "d"?
Пфф, с этого надо было начинать.

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

Отправит строку из конфига игроку
Проблема решена! Спасибо тебе огромное! :)
Крайне благодарен
 
И после просто прибавлять к переменной deaths по 1 при каждой смерти? То бишь переменную я могу сократить до "d"?
Нееет, ты хочешь что бы она сохранялась в конфиг? Она сохраняется, прибавлять ты будешь к строке в конфиге, а это просто для получения значения из строки
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх