1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Аминчик, 17 мар 2018.

Статус темы:
Закрыта.
  1. Автор темы
    Аминчик

    Аминчик Активный участник Пользователь

    Баллы:
    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?
     
  2. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Код:
    for(String s : Manager.getInstance().getConfig().getConfigurationSection("data").getKeys(false)) {
        sender.sendMessage(Manager.getInstance().getConfig().getString("data." + s + ".sender"));
        return true;
    }
    Это? Может return true убрать, чтобы отправить все сообщения?
    (на следующий раз уточняй код, считать строки никто не будет)
     
  3. Автор темы
    Аминчик

    Аминчик Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AmiN4iK_03
    Да
     
  4. Автор темы
    Аминчик

    Аминчик Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AmiN4iK_03
    не помогло
     
  5. Zнамя Юности

    Zнамя Юности Активный участник Пользователь

    Баллы:
    76
    for(Object o: Manager.getInstance().getConfig().getConfigurationSection("data").getKeys(false).toArray()) {
    sender.sendMessage(Manager.getInstance().getConfig().getString("data." + o + ".sender"));

    p.s. ну и код, надеюсь он не доживет до релиза
     
  6. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Ну ты объясни что ты хочешь увидеть.
     
  7. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Думаю этот код будет проблемой тех кто захочет обновить плагин когда его забросят. (надеюсь таких не будет)
     
  8. Zнамя Юности

    Zнамя Юности Активный участник Пользователь

    Баллы:
    76
    хд
     
  9. Автор темы
    Аминчик

    Аминчик Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AmiN4iK_03
    Не помогло(
     
  10. Zнамя Юности

    Zнамя Юности Активный участник Пользователь

    Баллы:
    76
    конфиг свой покажи хотя бы
     
  11. Автор темы
    Аминчик

    Аминчик Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AmiN4iK_03
    Ошибка в консоли:
    Код:
    [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
     
  12. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Null в 36 строке, кинь 36 строку
     
  13. Автор темы
    Аминчик

    Аминчик Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AmiN4iK_03
    upload_2018-3-18_0-41-20.png
    upload_2018-3-18_0-41-2.png
     
  14. Автор темы
    Аминчик

    Аминчик Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AmiN4iK_03
    for(Object o : Manager.getInstance().getConfig().getConfigurationSection("data").getKeys(false).toArray()) {
     
  15. Zнамя Юности

    Zнамя Юности Активный участник Пользователь

    Баллы:
    76
  16. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    я понял в чем проблема...
    if (Manager.getInstance().getConfig().isConfigurationSection("data")) {
    for...
    }
     
  17. Автор темы
    Аминчик

    Аминчик Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AmiN4iK_03
    Не получилось...
    Мб я что-то не правильно делаю?
    Код:
            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...
     
  18. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    она не пропала, у тебя пустая секция, алло
     
  19. _helper_

    _helper_ Активный участник Пользователь

    Баллы:
    76
    лол, если это репорты (а я уверен что это репорты), то ты попусту тратишь время, таких репортов как говна.
     
  20. hyndorik

    hyndorik Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Да, ты юзаешь ямл чтоб хранить инфу об игроках
     
Статус темы:
Закрыта.

Поделиться этой страницей