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

Помогите Перенос плагина на версию 1.14.4 с 1.12.2

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

  1. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    В 1.14 нет поддержи id, ее убрали с .1.12 вроде. Поэтому используй только name
     
  2. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    я ставил name, выходит ошибка
     
  3. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    Поскольку id в коде это инт, а метод *getMaterial* принимает либо айди предмета либо String название материала, то можешь по пробовать убрать *"" + *
     
  4. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    Если как сказано выше, было убрано гетматериал по айди, то скорее всего очень много в плагине менять придется
     
  5. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    А в name ты ставишь id или название материала? Допустим STONE
     
  6. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    Там изначально было просто id, но выдавало ошибку (int cannot be converted to String)
     
  7. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    Изначально строка выглядела вот так
    Код:
    ItemStack stack = new ItemStack(id, amount, data);
    -> но выдавало ошибку (int cannot be converted to Material). Потом выгладила
    Код:
    ItemStack stack = new ItemStack(Material.getMaterial(id), amount, data);
    -> но выдавала ошибку, которую я писал выше (int cannot be converted to String). Как-то так
     
  8. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    Выше обьяснили, метод гетматериал с какой-то там версии, принимает только строковый тип, (например железные поножи - "IRON_LEGGINGS"). Чтобы запустить шарманку надо менять конструктор типа EpicItems, вместо (int) id он должен передавать (String) Material например.
     
  9. SimMiMo

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

    Баллы:
    76
    Я посмотрел, метод getMaterial() должен принимать и строковые значения. Не думаю, что прям настолько много менять нужно. Может пару строчек в нескольких классах.
     
  10. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    Проблема в том, что он больше не принимает айди(число)
     
  11. alexandrage

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

    Баллы:
    173
    Этого мало, тебе надо сменить тип и в самом конфиге и поменять getInt на getString. И заменить все id в файле на материал нейм. А data применить к новой метадате Damageable
    Условный пример ниже.
    Код:
            ItemMeta meta = this.stack.getItemMeta();
            if (meta instanceof Damageable) {
                ((Damageable) meta).setDamage(damage);
            }
            this.stack.setItemMeta(meta);
    
     

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