Помогите Плагин ничего не записывает в yaml файл

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

CreeperPro35

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
_SEVENTYNINE_
Нужно, чтобы плагин записал хоть что-то (это "хоть что-то" в моём коде - слово Regular) в yaml конфиг.
Однако, ничего не хочет записываться. Ошибки не выдаёт. canWrite = true, джаву (как и yaml) не учил

Код:
    private ConfigManager cfmg;
   
    public void onEnable() {
        loadConfigManager();
    }
   
public void loadConfigManager() {
        cfmg = new ConfigManager();
        cfmg.setup();
        cfmg.chkSections();
    } 
    }

Код:
public class ConfigManager {
   
    private Main plugin = Main.getPlugin(Main.class);
   
    public FileConfiguration players;
    public File playerslist;
   
    public void setup() {
        if (!plugin.getDataFolder().exists()) {
            plugin.getDataFolder().mkdir();
        }
       
        playerslist = new File (plugin.getDataFolder(), "players.yml");
       
        if (!playerslist.exists()) {
            try {
                playerslist.createNewFile();
                Bukkit.getLogger().info("The players.yml file has been created successful");
            } catch (IOException e) {
                Bukkit.getLogger().severe(ChatColor.RED + "Лох");
            }
        }
       
        players = YamlConfiguration.loadConfiguration(playerslist);
    }
   
    public void chkSections () {
        players.createSection("Regular");
        Bukkit.getLogger().info(ChatColor.GREEN + "Sections checker has been passed successfully!");
        Bukkit.getLogger().info("Writeable: " + playerslist.canWrite());
    }

Код:
00:54:44 INFO]: [Effect Library] Enabling EffectLib v6.1
[00:54:44 INFO]: [EffectLibTestPlugin] Enabling EffectLibTestPlugin v1.0
[00:54:44 INFO]: зaSections checker has been passed successfully!
[00:54:44 INFO]: Writeable: true
[00:54:45 INFO]: Server permissions file permissions.yml is empty, ignoring it
[00:54:45 INFO]: Done (3,150s)! For help, type "help" or "?"

Писал с туториала TSC, если что
Заранее спасибо за уделённое время на прочтение этого всего
 
Нужно, чтобы плагин записал хоть что-то (это "хоть что-то" в моём коде - слово Regular) в yaml конфиг.
Однако, ничего не хочет записываться. Ошибки не выдаёт. canWrite = true, джаву (как и yaml) не учил

Код:
    private ConfigManager cfmg;
 
    public void onEnable() {
        loadConfigManager();
    }
 
public void loadConfigManager() {
        cfmg = new ConfigManager();
        cfmg.setup();
        cfmg.chkSections();
    }
    }

Код:
public class ConfigManager {
 
    private Main plugin = Main.getPlugin(Main.class);
 
    public FileConfiguration players;
    public File playerslist;
 
    public void setup() {
        if (!plugin.getDataFolder().exists()) {
            plugin.getDataFolder().mkdir();
        }
    
        playerslist = new File (plugin.getDataFolder(), "players.yml");
    
        if (!playerslist.exists()) {
            try {
                playerslist.createNewFile();
                Bukkit.getLogger().info("The players.yml file has been created successful");
            } catch (IOException e) {
                Bukkit.getLogger().severe(ChatColor.RED + "Лох");
            }
        }
    
        players = YamlConfiguration.loadConfiguration(playerslist);
    }
 
    public void chkSections () {
        players.createSection("Regular");
        Bukkit.getLogger().info(ChatColor.GREEN + "Sections checker has been passed successfully!");
        Bukkit.getLogger().info("Writeable: " + playerslist.canWrite());
    }

Код:
00:54:44 INFO]: [Effect Library] Enabling EffectLib v6.1
[00:54:44 INFO]: [EffectLibTestPlugin] Enabling EffectLibTestPlugin v1.0
[00:54:44 INFO]: зaSections checker has been passed successfully!
[00:54:44 INFO]: Writeable: true
[00:54:45 INFO]: Server permissions file permissions.yml is empty, ignoring it
[00:54:45 INFO]: Done (3,150s)! For help, type "help" or "?"

Писал с туториала TSC, если что
Заранее спасибо за уделённое время на прочтение этого всего
Записать что-нибудь в конфиг можно методом set(path, value):
PHP:
config.set("players.Notch.lastlogin", System.currentTimeMillis());
Пример обвязки:
PHP:
public void set(String path, Object obj) {
    this.config.set(path, obj);
}

После установления всех необходимых значений в конфиге необходимо его сохранить:
PHP:
public void save() {
    try {
        config.save(file);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

На мой взгляд, удобнее сохранять файлы через instance JavaPlugin (главного) класса:
PHP:
/**
 * @param JavaPlguin plugin экземпляр главного класса плагина,
 * можно передать с помощью setup(this); из главного класса.
 */
public void setup(JavaPlugin plugin) {
    // code ...

    File configFile = new File(plugin.getDataFolder(), "players.yml");
    plugin.saveResource(configFile.getName(), ture /*false*/); // true - перезаписать файл, false - не перезаписывать

    // code ...
}
Но при этом файл конфигурации должен быть в .jar архиве.
 
Записать что-нибудь в конфиг можно методом set(path, value):
PHP:
config.set("players.Notch.lastlogin", System.currentTimeMillis());
Пример обвязки:
PHP:
public void set(String path, Object obj) {
    this.config.set(path, obj);
}

После установления всех необходимых значений в конфиге необходимо его сохранить:
PHP:
public void save() {
    try {
        config.save(file);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

На мой взгляд, удобнее сохранять файлы через instance JavaPlugin (главного) класса:
PHP:
/**
 * @param JavaPlguin plugin экземпляр главного класса плагина,
 * можно передать с помощью setup(this); из главного класса.
 */
public void setup(JavaPlugin plugin) {
    // code ...

    File configFile = new File(plugin.getDataFolder(), "players.yml");
    plugin.saveResource(configFile.getName(), ture /*false*/); // true - перезаписать файл, false - не перезаписывать

    // code ...
}
Но при этом файл конфигурации должен быть в .jar архиве.
Только, вроде, комментарии собьются
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх