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

Помогите NoSuchMethod error.

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

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

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

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

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

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

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Код в первом посте актуальный? Или дай тот который у тебя сейчас.
     
  4. 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;
        }
     
  5. Автор темы
    pro100koder

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

    Баллы:
    76
    Вот последний вариант 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;
        }
    }
    
     

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