Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Сохранение и загрузка конфига [РЕШЕНО]

Тема в разделе "Разработка плагинов для новичков", создана пользователем _TheZit445_, 27 май 2016.

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

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

    Баллы:
    66
    Skype:
    kirik2425
    Имя в Minecraft:
    _TheZit445_
    Привет. Я обращаюсь за помощью к вам.
    Суть проблемы:

    При выполнении команды в конфиг записывается строчка типа
    NickName: Type (пример - _TheZit445_: demon)
    И конфиг сохраняется. И далее всё работает как надо, всё действительно запомнилось и в процессе работы плагина всё стабильно, if (config.getString(player) == demon) выдаёт условие истинно.
    То есть всё запоминается, да и в самом файле всё отражается. Но вот незадача, при последующем запуске сервера, сервер уже не считывает эти данные, то есть if (config.getString(player) == demon выдаёт ложь, хотя в файле по прежнему осталось эта строчка.
    Вот и назрел вопрос, как же сделать эту загрузку, чтобы всё запоминалось и не приходилось каждый раз заново вводить команду на выбор класса. (Пишу простенький плагин на классы, например demon как уже было выше, практикуюсь).

    А так же ещё есть проблемка, но не знаю на сколько она важна. Вот я написал код, и эклипс не говорит мне, что я ошибся, хотя в консоли выплывает ошибка, на сервере этой ошибки не видно, может это и есть ошибка связанная с сохранением. Кидаю код, для наглядности, может чего посоветуете.
    Код:
       FileConfiguration config = getConfig();
       
        //Команды
       
        String human = "human";
        String demon = "demon";
        String item = "item";
       
        @SuppressWarnings("deprecation")
        @EventHandler
        public boolean onCommand(CommandSender s, Command cmd, String l, String args[]) {
            String player = s.getName();
            if (cmd.getName().equalsIgnoreCase("class")) {
                if (args.length == 1) {
                    //HUMAN
                    if (human.equalsIgnoreCase(args[0])) {
                        if (config.getString(player) != human) {
                            config.set(player, human);
                            saveConfig();
                            s.sendMessage("§2[CreepClasses] §7Выбран класс §dHUMAN"); return true;
                        } else s.sendMessage("§2[CreepClasses] §7Ваш класс итак §dHUMAN"); return true;   
                    }
                    //DEMON
                    if (demon.equalsIgnoreCase(args[0])) {
                        if (config.getString(player) != demon) {
                            config.set(player, demon);
                            saveConfig();
                            s.sendMessage("§2[CreepClasses] §7Выбран класс §dDEMON"); return true;
                        } else s.sendMessage("§2[CreepClasses] §7Ваш класс итак §dDEMON"); return true;   
                    }
                    //RACE ITEM {
                    if (item.equalsIgnoreCase(args[0])) {
                        //HUMAN ITEM
                        if (config.getString(player) == human) {
                            ItemStack humanitem = new ItemStack(340);
                            ItemMeta humanmeta = humanitem.getItemMeta();
                            humanmeta.setDisplayName("§5Библия");
                            humanitem.setItemMeta(humanmeta);
                            Player p = s.getServer().getPlayer(player);
                            p.getInventory().addItem(humanitem);
                            s.sendMessage("§2[CreepClasses] §7Вам выдана §5БИБЛИЯ"); return true;
                        }
                        //DEMON ITEM
                        if (config.getString(player) == demon) {
                            ItemStack humanitem = new ItemStack(340);
                            ItemMeta humanmeta = humanitem.getItemMeta();
                            humanmeta.setDisplayName("§5Библия Сатаны");
                            humanitem.setItemMeta(humanmeta);
                            Player p = s.getServer().getPlayer(player);
                            p.getInventory().addItem(humanitem);
                            s.sendMessage("§2[CreepClasses] §7Вам выдана §5БИБЛИЯ САТАНЫ"); return true;
                        }
                    }
                    //main
                } else { 
                    s.sendMessage("");
                    s.sendMessage("§3=== §b[CreepClasses] §3===");
                    s.sendMessage("§b/class §3- вывод доступных команд");
                    s.sendMessage("§b/class §dhuman §3- выбрать класс §dHUMAN");
                    s.sendMessage("§b/class §ddemon §3- выбрать класс §dDEMON");
                    s.sendMessage("§b/class §eitem §3- получить предмет класса");
                    s.sendMessage("");
                    return true;
                }
            }
            return false;
        }   

    Скрин ошибки в консоли
    [​IMG]
    Я так то понимаю, что тут написано. Попытка зарегистрировать нерабочий метод onCommand(...) в классе Main. Но почему попытки, если он вроде как работает?
    Давайте, жду помощи
     
  2. Хостинг MineCraft
    <
  3. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    Строки нужно сравнить через equals или equalsIgnoreCase.
     
  4. Автор темы
    _TheZit445_

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

    Баллы:
    66
    Skype:
    kirik2425
    Имя в Minecraft:
    _TheZit445_
    Ну допустим да, бес попутал. Сейчас исправим. Это и есть решение, не? Или это на будущее просто?
     
  5. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
     
  6. Автор темы
    _TheZit445_

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

    Баллы:
    66
    Skype:
    kirik2425
    Имя в Minecraft:
    _TheZit445_
    Хорошо, учту, спасибо[DOUBLEPOST=1464370898,1464370234][/DOUBLEPOST]ОЙ, ЛОЛ. В этом и была проблема. Топ, спасибо. Опять облажался на своей глупости. Весьма признателен :)
     
Статус темы:
Закрыта.

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