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

Помогите Не работает команды

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

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

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    Всем привет ,пытаюсь сделать выдачу предмета из конфига.Не пойму почему не срабатывает команда,подскажите пожалуйста как исправить проблему
    Код:
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(sender instanceof Player) {
                Player p = (Player)sender;
                if(check((Player) sender, getConfig().getInt("cooldown"))) {
                    if(cmd.getName().equalsIgnoreCase("present")) {
                        for (String s: items){
                            ItemStack item = new ItemStack(Material.getMaterial(s.toUpperCase()));
                            item.getItemMeta().setDisplayName(this.getConfig().getString("items."+s+".name").replace("&", "§"));
                            item.getItemMeta().setLore(this.getConfig().getStringList("items.."+s+"lore"));
                            p.getInventory().addItem(new ItemStack(item));
                            p.sendMessage(message1.replace("&", "§"));
                        }
                    }
                    return true;
                }
            }
            return true;
        }
     
  2. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    ItemMeta неправильно изменяешь.
    А так, где ошибка? Если нету, скинь код метода check().
     
  3. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    а как его надо правильно изменить ?
    Вот метод Check()
    Код:
        static boolean check(Player user, long tmp) {
            long time = System.currentTimeMillis();
            Long last = usertime.get(user);
            if(last!= null) {
                if((time-last)<tmp) {
                    user.sendMessage("§7§l[§4§lНовогодний Подарок§7§l] §e§lСледующий подарок будет доступен через§e§l " + (tmp-(time-last)) + " §e§lминут");
                    return false;
                }
            }
            usertime.put(user, time);
            return true;
        }
     
  4. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    Ответ выше,ошибки никакой нету ,когда компилирую плагин ,загружаю на сервер ,пишу команду ,ничего не выдает ,ни сообщения ,ничего
     
  5. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    PHP:
    ItemMeta meta item.getItemMeta();
    meta.setDisplayName...
    item.setItemMeta(meta);
    Проверь корректно ли работает check (отладку сделай).
     
  6. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    правильно работает ,я пробовал сделать выдачу предмета не через конфиг ,все работало
     
  7. iD3LSY

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

    Баллы:
    76
    Ты эту мету не сохраняешь.
    PHP:
    ItemMeta meta item.getItemMeta();

    meta.setDisplayName(ChatColor.translateAlternateColorCodes('&'this.getConfig().getString("items." ".name")));
    meta.setLore(this.getConfig().getStringList("items." "lore").stream().map(str -> ChatColor.translateAlternateColorCodes('&'str)).collect(Collectors.toList()));

    item.setItemMeta(meta);
     
  8. iD3LSY

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

    Баллы:
    76
    Кстати, сейчас присмотрелся, и вот что.
    1. У тебя должно быть в конфиге указано время кд в миллисекундах;
    2. Не нужно делать проверку last на нуль. Если оно нуль, то ты просто ничего не делаешь, а соответственно выполнить команду 1-ый раз у тебя не получится. Если задать какое нибудь время в мапу для игрока, которое бы подходило по кд - то все сработает.
     
  9. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    в конфиге время кд указано в милисекундах,и даже с проверкой нуль все работает ,если выдавать предмет не через конфиг
     
  10. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    и все же команда не срабатывает
     
  11. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Как сказал @iD3LSY, ты не присваиваешь meta предмету!

    Код:
    item.setItemMeta(meta);
    
     
  12. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    это уже исправил ,сделал присваивание
     
  13. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Тогда в чем проблема?
     
  14. iD3LSY

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

    Баллы:
    76
    В каком смысле не работает, если указано из конфига? Название, лор не ставятся? Попробуй перепроверить ссылку, может поставил 2 точки, а может и наоборот, забыл поставить ту точку. Проверь, может у тебя конфиг загружается позже выполнения, а может вообще не загружается. Пытайся дебажить, выводить все значения из конфига в чат.
     
  15. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    Пробую пересоздать конфиг
     
  16. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    В общем ,как я понял ,все работает до цикла for,внутри цикла ничего не работает
     
  17. iD3LSY

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

    Баллы:
    76
    Я в душе не чаю, что это за цикл for. Можешь кинуть полный класс, описать ошибку? Не так, что не работает когда конфиг, а по-нормальному. Что не работает, при каких условиях, на какой строке (хотя бы предположительно).
     
  18. xDark

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

    Баллы:
    96
    куда смеяться?
     
  19. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    Что смешного ?лучше бы подсказал , как сделать правильно,а не смеялся
     
  20. xDark

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

    Баллы:
    96
    Я не ванга.
     
Статус темы:
Закрыта.

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