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

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

Аминчик

Активный участник
Пользователь
Баллы
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?
 
Код:
for(String s : Manager.getInstance().getConfig().getConfigurationSection("data").getKeys(false)) {
    sender.sendMessage(Manager.getInstance().getConfig().getString("data." + s + ".sender"));
    return true;
}
Это? Может return true убрать, чтобы отправить все сообщения?
(на следующий раз уточняй код, считать строки никто не будет)
 
for(Object o: Manager.getInstance().getConfig().getConfigurationSection("data").getKeys(false).toArray()) {
sender.sendMessage(Manager.getInstance().getConfig().getString("data." + o + ".sender"));

p.s. ну и код, надеюсь он не доживет до релиза
 
for(Object o: Manager.getInstance().getConfig().getConfigurationSection("data").getKeys(false).toArray()) {
sender.sendMessage(Manager.getInstance().getConfig().getString("data." + o + ".sender"));

p.s. ну и код, надеюсь он не доживет до релиза
Думаю этот код будет проблемой тех кто захочет обновить плагин когда его забросят. (надеюсь таких не будет)
 
Ошибка в консоли:
Код:
[00:30:34] [Server thread/WARN]: Unexpected exception while parsing console command "report data"
org.bukkit.command.CommandException: Unhandled exception executing command 'report' in plugin AReport v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_144]
Caused by: java.lang.NullPointerException
    at ru.amin.ar.areport.onCommand(areport.java:36) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    ... 8 more
 
Ошибка в консоли:
Код:
[00:30:34] [Server thread/WARN]: Unexpected exception while parsing console command "report data"
org.bukkit.command.CommandException: Unhandled exception executing command 'report' in plugin AReport v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_144]
Caused by: java.lang.NullPointerException
    at ru.amin.ar.areport.onCommand(areport.java:36) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    ... 8 more
Null в 36 строке, кинь 36 строку
 
я понял в чем проблема...
if (Manager.getInstance().getConfig().isConfigurationSection("data")) {
for...
}
Не получилось...
Мб я что-то не правильно делаю?
Код:
        if(args[0].equalsIgnoreCase("data")) {
            if(!sender.hasPermission("areport.admin")) {
                sender.sendMessage(Manager.getInstance().getMSG("noperm"));
                return true;
            }
            if(Manager.getInstance().getConfig().isConfigurationSection("data")) {
            for(String s : Manager.getInstance().getConfig().getConfigurationSection("data").getKeys(false)) {
            sender.sendMessage(Manager.getInstance().getConfig().getString("data." + s + ".target"));
            return true;
            }
            }
            }
Пропала подкоманда data...
 
Не получилось...
Мб я что-то не правильно делаю?
Код:
        if(args[0].equalsIgnoreCase("data")) {
            if(!sender.hasPermission("areport.admin")) {
                sender.sendMessage(Manager.getInstance().getMSG("noperm"));
                return true;
            }
            if(Manager.getInstance().getConfig().isConfigurationSection("data")) {
            for(String s : Manager.getInstance().getConfig().getConfigurationSection("data").getKeys(false)) {
            sender.sendMessage(Manager.getInstance().getConfig().getString("data." + s + ".target"));
            return true;
            }
            }
            }
Пропала подкоманда data...
она не пропала, у тебя пустая секция, алло
 
лол, если это репорты (а я уверен что это репорты), то ты попусту тратишь время, таких репортов как говна.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх