Войти или зарегистрироваться

Помогите Не работает сохранение конфигов

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

Evdokimov

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
evdokimov27
Доброго, столкнулся с проблемой, сохраняя конфиг визуально он перезаписывается, но данные не меняются, т.е через config.getInt() данные показываются, а в файле нету, после перезагрузки плагина данные становятся null
Для записи использую:
FileConfiguration config = plugin.getConfig();
config.set(path, val);
Для сохранения использую:
Plugin plugin = Main.getPlugin(Main.class);
plugin.saveConfig();
 
Подсказка хороша, но по сути plugin.saveConfig делает это под капотом.

Доброго, столкнулся с проблемой, сохраняя конфиг визуально он перезаписывается, но данные не меняются, т.е через config.getInt() данные показываются, а в файле нету, после перезагрузки плагина данные становятся null
Для записи использую:
FileConfiguration config = plugin.getConfig();
config.set(path, val);
Для сохранения использую:
Plugin plugin = Main.getPlugin(Main.class);
plugin.saveConfig();

Попробуй сделать стат метод или как-то напрямую в Main классе вызывать метод saveConfig, я делаю то же что и ты, но у меня работает, правда я не использую такой костыльный способ получения плагина (он по сути идет наперекор логике программирования на яве, рефлексия не всегда хорошо)
 
неа, в notepad++ пишет что файл обновлен, но все так же пусто
 
в другом плагине работало, а тут не хочет
 
Можешь скинуть полностью твой код?
Как мне кажется, ты напортачил в другом месте, мб ты при загрузке криво сохраняешь изначально конфиг мб ещё что-то
 
код вызова сохранения
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
plugin.reloadConfig();
Player p = (Player)sender;
if(args.length == 1)
{
config.set(p.getUniqueId()+".vk_id", 123);
Main.saveCfg();
}
else p.sendMessage("Недостаточно аргументов");
return true;
}

главный класс:
public final class Main extends JavaPlugin {
private static Main instance;
public ConsoleCommandSender console = Bukkit.getServer().getConsoleSender();
private File configFile;
FileConfiguration config;

@Override
public void onEnable() {
saveDefaultConfig();
instance = this;

this.registerCommands();
this.registerEvents();
}

public static Main getInstance() {
return instance;
}

public static void saveCfg() {
getInstance().saveConfig();
}
private void registerCommands() {
this.getCommand("vkconnect").setExecutor(new VKConnect());
}

private void registerEvents() {
Bukkit.getPluginManager().registerEvents(new BlockBreakEvents(), this);
Bukkit.getPluginManager().registerEvents(new VKMessageEvents(), this);
}

@Override
public void onDisable() {
}
}
Вот и проблема, насколько я знаю, saveDefaultConfig сохраняет твой конфиг из plugin.yml, однако он не делает проверку на существует ли файл или нет, оберни в проверку на существование файла и все скорее всего заработает

P.s. например if(! new File(getDataFolder(), "config.yml").exists()) saveDefaultConfig();
 
при включении?
 
Вот и проблема, насколько я знаю, saveDefaultConfig сохраняет твой конфиг из plugin.yml, однако он не делает проверку на существует ли файл или нет, оберни в проверку на существование файла и все скорее всего заработает

P.s. например if(! new File(getDataFolder(), "config.yml").exists()) saveDefaultConfig();
и это не помогло если что
 
это работает, у меня именно сохранение при вызове команды не работает как нужно
вот что именно у меня
1)https://i.imgur.com/Ehf98lu.png
2)https://i.imgur.com/aIIdXkF.png
3)https://i.imgur.com/K2d9hn5.png
Оно работает и именно в этом и проблемка у тебя! Он каждый раз при включении обновляет твой конфиг на тот что в jarнике у тебя!
 
даже если убрать обновление при запуске и оставить только в команде сохранение, то все так же
 
Попробуй ради прикола, посмотри. Запусти плагин, выполни команду и глянь конфиг, а потом глянь его после перезагрузки. Думаю результат тебя впечатлит.
 
даже если убрать обновление при запуске и оставить только в команде сохранение, то все так же
Только вот не может быть такого, типа. Он 100% сохраняет, но мб в другом месте он перезаписывается на старый, другого объяснения у меня нет
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх