Какое ...? Вы в каком году живете? Эта реализация изжила своё, сейчас все делается сухо тремя строками. Deprecated, потрачено.
Давно отвалился short, уже бутылку с водой красит в розовый.
Недавно очень сильно пришлось себя посвятить зельям и я в них разобрался. Все решения кал.
Момент истины...
Java:
PotionMeta meta = (PotionMeta) stack.getItemMeta();
meta.setBasePotionData(new PotionData(PotionType type, boolean extendable, boolean upgraded));
stack.setItemMeta(meta);
Где:
stack - ItemStack с зельем
extendable - boolean - продолжительное или нет время действия зелья
upgraded - boolean - удвоенная сила зелья (II) или нет (а других левелов, собственно, и не существует)
Вот так просто все задается. Но не у всех зелий extendable/upgraded может быть true, поэтому зелья будут испорченными, а в консоли будут ошибки. Поэтому надо делать проверку на type.isExtendable() и type.isUpgradable(). Финальный вариант:
Java:
ItemStack stack = new ItemStack(Material.POTION, 1);
PotionType type = PotionType.valueOf("STRING_ТИПА_ЗЕЛЬЯ");
if (type == null) type = PotionType.WATER;
boolean extended = true/false;
boolean upgraded = true/false;
PotionMeta meta = (PotionMeta) stack.getItemMeta();
meta.setBasePotionData(new PotionData(type, type.isExtendable() ? extended : false, type.isUpgradable() ? upgraded : false));
stack.setItemMeta(meta);
Все типы зелий
здесь