Помогите Получение данных из конфига и отправка игроку

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

Аминчик

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
AmiN4iK_03
Всем привет!
Код:
package ru.amin.ar;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class areport implements CommandExecutor{
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(!sender.hasPermission("areport.use")) {
            sender.sendMessage(Manager.getInstance().getMSG("noperm"));
            return true;
        }
        if(args.length < 1) {
            sender.sendMessage("§fИспользуйте - §c/report §c[§fник§c] [§fпричина§c]");
            if(sender.hasPermission("areport.admin")) {
                sender.sendMessage("§fСписок жалоб - §c/report data");
                sender.sendMessage("§fПерезагрузить конфиг - §c/report reload");
            }
            return true;
        }
        if(args[0].equalsIgnoreCase("reload")) {
            if(!sender.hasPermission("areport.admin")) {
                sender.sendMessage(Manager.getInstance().getMSG("noperm"));
                return true;
            }
            Manager.getInstance().reloadConfig();
            sender.sendMessage("§fКонфиг §cперезагружен§f!");
            return true;
        }
        if(args[0].equalsIgnoreCase("data")) {
            if(!sender.hasPermission("areport.admin")) {
                sender.sendMessage(Manager.getInstance().getMSG("noperm"));
                return true;
            }
            for(String s : Manager.getInstance().getConfig().getConfigurationSection("data").getKeys(false)) {
            sender.sendMessage(Manager.getInstance().getConfig().getString("data." + s + ".sender"));
            return true;
            }
            }
        String reason = "";
        for(int e = 1; e < args.length; ++e) {
            reason = String.valueOf(reason) + args[e] + " ";
        }
        if(reason == "") {
            sender.sendMessage(Manager.getInstance().getMSG("noreason"));
            return true;
        }
        Player target = Bukkit.getServer().getPlayerExact(args[0]);
        if(target == null) {
            sender.sendMessage(Manager.getInstance().getMSG("offline").replace("{target}", args[0]));
            return true;
        }
        if(target == sender) {
            sender.sendMessage(Manager.getInstance().getMSG("messageifsender"));
            return true;
        }
        Manager.data.set("data." + sender.getName() + ".target", target.getName());
        Manager.data.set("data." + sender.getName() + ".reason", reason);
        Config.save(Manager.data, "data.yml");
        sender.sendMessage(Manager.getInstance().getMSG("messageforsender").replace("{target}", target.getName()).replace("{reason}", reason));
        target.sendMessage(Manager.getInstance().getMSG("messagefortarget").replace("{sender}", sender.getName()).replace("{reason}", reason));
        for (Player p : Bukkit.getOnlinePlayers()) {
            if(p.hasPermission("areport.admin")) {
                p.sendMessage(Manager.getInstance().getMSG("messageforadmin").replace("{sender}", sender.getName()).replace("{target}", target.getName()).replace("{reason}", reason));
                return true;
            }
    }
        return false;
    }
}
Подскажите, пожалуйста, как в 37 строке правильно вывести данные из data.yml?
 
Мда.. У тебя на строке #37 в пути не имя отправителя команды, а сам отправитель
PHP:
sender.sendMessage(Manager.getInstance().getConfig().getString("data." + s + ".sender"));
Поменяй на:
PHP:
sender.sendMessage(Manager.getInstance().getConfig().getString("data." + s.getName() + ".sender"));

На счет того, что data нуль у тебя. Ты конфиг берешь дефолтный. Там нету секции data...
 
Возможно говно-код, но все же
PHP:
try {
   for(String s : ...) {
      sender.sendMessage(...getConfig().getString("data." + s + ".sender");
   }
} catch(NullPointerException e) {
   sender.sendMessage("Нет данных в data.yml");
}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх