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

Помогите NoSuchMethod error.

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

  1. Автор темы
    pro100koder

    pro100koder Участник Пользователь

    Баллы:
    31
    И опять я выяснил, что снова допустил ту же ошибку X Y... Проблема походу не в том, что не работает этот метод... Я не знаю, в чём... Просто если я добавляю эти тэги несчастные, даже если null, да даже если игнорировать наличие этих тэгов в самом itemutil-е, просто ну вот нет и всё тут. Даже не знаю... Попробую тогда на boolean перенести... Всё равно мне эти тэги ток для унбрика нужны были...
     
  2. Mr Hosting
  3. Автор темы
    pro100koder

    pro100koder Участник Пользователь

    Баллы:
    31
    Всё. Сдаюсь. Нет больше абсолютно никаких вариантов, как это решить. Придётся походу костылить...
     
  4. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Код в первом посте актуальный? Или дай тот который у тебя сейчас.
     
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Вот на подсмотри как у меня.

    Код:
        public ItemStack getStack() {
            ItemStack stack = new ItemStack(Material.valueOf(material.toUpperCase()), amount, (short) date);
            ItemMeta meta = stack.getItemMeta();
            if (customname != null) {
                meta.setDisplayName(customname);
            }
            if (lore != null) {
                meta.setLore(lore);
            }
            if (enchant != null) {
                for (String ench : enchant.keySet()) {
                    meta.addEnchant(Enchantment.getByName(ench.toUpperCase()), enchant.get(ench), true);
                }
            }
            if (flags != null) {
                for (String flag : flags) {
                    Set<ItemFlag> f = meta.getItemFlags();
                    f.add(ItemFlag.valueOf(flag));
                }
            }
            if (unbreak) {
                meta.setUnbreakable(true);
            }
            stack.setItemMeta(meta);
            return stack;
        }
     
  6. Автор темы
    pro100koder

    pro100koder Участник Пользователь

    Баллы:
    31
    Вот последний вариант itemutil, который работает:
    Код:
    package utils;
    
    import java.util.ArrayList;
    
    import org.bukkit.Color;
    import org.bukkit.Material;
    import org.bukkit.enchantments.Enchantment;
    import org.*********ventory.ItemFlag;
    import org.*********ventory.ItemStack;
    import org.*********ventory.meta.ItemMeta;
    import org.*********ventory.meta.PotionMeta;
    import org.bukkit.potion.PotionEffect;
    
    public class ItemUtil {
        public static ItemStack create(Material material, int amount, byte data, String DisplayName, String[] lore1, Enchantment[] ench, int[] lvl) {
            ItemStack item = new ItemStack(material, amount, data);
            ItemMeta meta = item.getItemMeta();
            if(DisplayName != null){
                meta.setDisplayName(DisplayName);
            }
            ArrayList<String> lore = new ArrayList<String>();
            if(lore1 != null){
                for(int i=0;i<lore1.length;i++){
                    lore.add(lore1[i]);
                }
            }
            meta.setLore(lore);
            if(ench != null){
                for(int i=0;i<ench.length;i++){
                meta.addEnchant(ench[i], lvl[i], true);
                }
            }
            item.setItemMeta(meta);
            return item;
        }
        public static ItemStack create(Material material, String DisplayName){
            return create(material, 1, (byte)0, DisplayName, null, null, null);
        }
        public static ItemStack create(Material material, int amount, byte data){
            return create(material, amount, data, null, null, null, null);
        }
        public static ItemStack create(Material material, int amount, String DisplayName, String[] lore1){
            return create(material, amount, (byte) 0, DisplayName, lore1, null, null);
        }
        public static ItemStack create(Material material, int amount, String DisplayName, String[] lore1, Enchantment[] ench, int[] lvl){
            return create(material, amount, (byte) 0, DisplayName, lore1, ench, lvl);
        }
        public static ItemStack createPotion(Material material, int amount, String DisplayName, String[] lore1, int r, int g, int b, PotionEffect[] pe) {
            ItemStack item = new ItemStack(material, amount, (byte)0);
            ItemMeta meta = item.getItemMeta();
            if(DisplayName != null){
                meta.setDisplayName(DisplayName);
            }
            ArrayList<String> lore = new ArrayList<String>();
            if(lore1 != null){
                for(int i=0;i<lore1.length;i++){
                    lore.add(lore1[i]);
                }
            }
            meta.setLore(lore);
            item.setItemMeta(meta);
            PotionMeta pmeta = (PotionMeta) item.getItemMeta();
            pmeta.setColor(Color.fromRGB(r, g, b));
            pmeta.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS);
            if(pe!=null){
                for(PotionEffect pef:pe){
                    pmeta.addCustomEffect(pef, false);
                }
            }
            item.setItemMeta(pmeta);
            return item;
        }
    }
    
    А вот те отчаянные попытки что-либо сделать с unbreakable... Даже если в самом методе абсолютно игнорировать наличие boolean unbreakable, всё равно та же ошибка...
    Код:
    package utils;
    
    import java.util.ArrayList;
    
    import org.bukkit.Color;
    import org.bukkit.Material;
    import org.bukkit.enchantments.Enchantment;
    import org.*********ventory.ItemFlag;
    import org.*********ventory.ItemStack;
    import org.*********ventory.meta.ItemMeta;
    import org.*********ventory.meta.PotionMeta;
    import org.bukkit.potion.PotionEffect;
    
    public class ItemUtil {
        public static ItemStack create(Material material, int amount, byte data, String DisplayName, String[] lore1, Enchantment[] ench, int[] lvl) {
            ItemStack item = new ItemStack(material, amount, data);
            ItemMeta meta = item.getItemMeta();
            if(DisplayName != null){
                meta.setDisplayName(DisplayName);
            }
            ArrayList<String> lore = new ArrayList<String>();
            if(lore1 != null){
                for(int i=0;i<lore1.length;i++){
                    lore.add(lore1[i]);
                }
            }
            meta.setLore(lore);
            //if(unbreak==true){
            //    meta.setUnbreakable(true);
            //}
            if(ench != null){
                for(int i=0;i<ench.length;i++){
                meta.addEnchant(ench[i], lvl[i], true);
                }
            }
            item.setItemMeta(meta);
            return item;
        }
        public static ItemStack createTool(Material material, String DisplayName, String[] lore1, Enchantment[] ench, int[] lvl) {
            ItemStack item = new ItemStack(material, 1, (short)0);
            ItemMeta meta = item.getItemMeta();
            if(DisplayName != null){
                meta.setDisplayName(DisplayName);
            }
            ArrayList<String> lore = new ArrayList<String>();
            if(lore1 != null){
                for(int i=0;i<lore1.length;i++){
                    lore.add(lore1[i]);
                }
            }
            meta.setLore(lore);
            meta.setUnbreakable(true);
            if(ench != null){
                for(int i=0;i<ench.length;i++){
                meta.addEnchant(ench[i], lvl[i], true);
                }
            }
            item.setItemMeta(meta);
            return item;
        }
        /*public static ItemStack create(Material material, String DisplayName){
            return create(material, 1, (byte)0, DisplayName, null, null, null, false);
        }
        public static ItemStack create(Material material, int amount, byte data){
            return create(material, amount, data, null, null, null, null, false);
        }
        public static ItemStack create(Material material, int amount, String DisplayName, String[] lore1){
            return create(material, amount, (byte) 0, DisplayName, lore1, null, null, false);
        }
        public static ItemStack create(Material material, int amount, String DisplayName, String[] lore1, Enchantment[] ench, int[] lvl, boolean unbreak){
            return create(material, amount, (byte) 0, DisplayName, lore1, ench, lvl, unbreak);
        }*/
        public static ItemStack createPotion(Material material, int amount, String DisplayName, String[] lore1, int r, int g, int b, PotionEffect[] pe) {
            ItemStack item = new ItemStack(material, amount, (byte)0);
            ItemMeta meta = item.getItemMeta();
            if(DisplayName != null){
                meta.setDisplayName(DisplayName);
            }
            ArrayList<String> lore = new ArrayList<String>();
            if(lore1 != null){
                for(int i=0;i<lore1.length;i++){
                    lore.add(lore1[i]);
                }
            }
            meta.setLore(lore);
            item.setItemMeta(meta);
            PotionMeta pmeta = (PotionMeta) item.getItemMeta();
            pmeta.setColor(Color.fromRGB(r, g, b));
            pmeta.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS);
            if(pe!=null){
                for(PotionEffect pef:pe){
                    pmeta.addCustomEffect(pef, false);
                }
            }
            item.setItemMeta(pmeta);
            return item;
        }
    }
    
     

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