Помогите Не выводится сообщение из файла

TorwaldOswarld

Активный участник
Пользователь
Баллы
78
Имя в Minecraft
PuxTa4
Всем привет.Создал файл message. Сделал,так чтобы ,из этого файла бралась строка и выводилась когда я использую команду ,но,сервер выдает null.Что не так ? Помогите пожалуйста.В спойлере "Код" указал строку,которая выдает null.
Вот код.
Код:
package com.company.Main;

import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.ArrayList;

public class Command implements CommandExecutor {

    public Config cfg = new Config();
    
    JavaPlugin plugin;

    public static ArrayList<String> wgdrop;

    public Command(JavaPlugin plugin) {

        this.plugin = plugin;
    }

    public void reloadcfg() {
        plugin.reloadConfig();
        wgdrop = ((ArrayList) plugin.getConfig().getStringList("regions"));

    }
    @Override
    public boolean onCommand(CommandSender sender, org.bukkit.command.Command command, String label, String[] args) {
        if (sender instanceof Player) {
            Player p = (Player) sender;
            if ((command.getName().equalsIgnoreCase("wgdrop")) && (args.length > 0)) {
                if ((args.length == 1) && (args[0].equalsIgnoreCase("reload")) && (p.hasPermission("wgdrop.admin"))) {
                    reloadcfg();
                    p.sendMessage(cfg.getMesCfg().getString("Message.Reload")); //Ругается на эту строку
                }
            }
        }
        return false;

    }
}
Код:
package com.company.Main;

import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;

import java.io.File;

public class Config {

    private YamlConfiguration mes;
    private File mesfile;

    public void setup(Plugin plugin) {
       mesfile = new File(plugin.getDataFolder(), "message.yml");
       mesfile.getParentFile().mkdirs();
        if (!this.mesfile.exists()) {
            plugin.saveResource("message.yml", false);
        }
       this.mes = YamlConfiguration.loadConfiguration(this.mesfile);
    }

    public FileConfiguration getMesCfg() {
        return this.mes;
    }

    public void saveMesCfg() {
        try {
            this.mes.save(mesfile);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void reloadMesCfg() {
        try {
            this.mes.load(mesfile);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
 
Вы создаёте новый экземпляр конфига, а не берёте его из главного класса плагина.
Попробуйте что-то вроде this.getConfig(), что является YAMLConfiguration.
 
Вы создаёте новый экземпляр конфига, а не берёте его из главного класса плагина.
Попробуйте что-то вроде this.getConfig(), что является YAMLConfiguration.
Так обычный конфиг у меня используется для регионов ,а файл message для сообщений,поэтому я и создаю новый экземпляр.
 
Где конструктор в классе конфига? Или тогда вручную setup делай
 
Зачем так извращаться, когда можно создать сразу YamlConfiguration там, где тебе надо, либо вообще перейти на gson
 
Зачем так извращаться, когда можно создать сразу YamlConfiguration там, где тебе надо, либо вообще перейти на gson
У него класс Config - немного кривая, но обёртка над YamlConfiguration. Можно было и до нескольких методов в Main переделать.
Попробую сделать конструктор и работать с ним
Смог или нет? У тебя походу метод setup не запускался, можешь его даже конструктором сделать.
 
У него класс Config - немного кривая, но обёртка над YamlConfiguration. Можно было и до нескольких методов в Main переделать.

Смог или нет? У тебя походу метод setup не запускался, можешь его даже конструктором сделать.
Запускается , я взял кастомный конфиг от alexandrage , сделал экземпляр , но когда передаю экземпляру JavaPlugin , в консоли выдает ошибку,сейчас не могу скинуть какую именно , потому что не дома .
 
Назад
Верх