Помогите 1.13 Enchantment.getByKey help

  • Автор темы Автор темы Serrrgio
  • Дата начала Дата начала

Serrrgio

Старожил
Пользователь
Баллы
173
Имя в Minecraft
None
Доброго.

Есть задача наложить Enchantment имея имя, к примеру DURABILITY, в 1.13

т.к. getByName уже не работает, нужно юзать getByKey, но не выкупаю как.

Кто-нить может привести пример?

делаю так
Java:
NamespacedKey key = new NamespacedKey(plugin, "DURABILITY");
Enchantment enc = Enchantment.getByKey(key);
получаю null в еnc
 
Доброго.

Есть задача наложить Enchantment имея имя, к примеру DURABILITY, в 1.13

т.к. getByName уже не работает, нужно юзать getByKey, но не выкупаю как.

Кто-нить может привести пример?

делаю так
Java:
NamespacedKey key = new NamespacedKey(plugin, "DURABILITY");
Enchantment enc = Enchantment.getByKey(key);
получаю null в еnc
Там ключ под названием "unbreaking" для DURABILITY
Целый список:
PROTECTION_ENVIRONMENTAL -> protection
PROTECTION_FIRE -> fire_protection
PROTECTION_FALL -> feather_falling
PROTECTION_EXPLOSIONS -> blast_protection
PROTECTION_PROJECTILE -> projectile_protection
OXYGEN -> respiration
WATER_WORKER -> aqua_affinity
THORNS -> thorns
DEPTH_STRIDER -> depth_strider
FROST_WALKER -> frost_walker
BINDING_CURSE -> binding_curse
DAMAGE_ALL -> sharpness
DAMAGE_UNDEAD -> smite
DAMAGE_ARTHROPODS -> bane_of_arthropods
KNOCKBACK -> knockback
FIRE_ASPECT -> fire_aspect
LOOT_BONUS_MOBS -> looting
SWEEPING_EDGE -> sweeping
DIG_SPEED -> efficiency
SILK_TOUCH -> silk_touch
DURABILITY -> unbreaking
LOOT_BONUS_BLOCKS -> fortune
ARROW_DAMAGE -> power
ARROW_KNOCKBACK -> punch
ARROW_FIRE -> flame
ARROW_INFINITE -> infinity
LUCK -> luck_of_the_sea
LURE -> lure
LOYALTY -> loyalty
IMPALING -> impaling
RIPTIDE -> riptide
CHANNELING -> chanelling
MENDING -> mending
VANISHING_CURSE -> vanishing_curse
 
не работает, есть реальный пример?
Код:
NamespacedKey key = new NamespacedKey(plugin, "unbreaking");
getServer().getConsoleSender().sendMessage("*** FB22 " + key.toString());
Enchantment e = Enchantment.getByKey(key);
getServer().getConsoleSender().sendMessage("*** FB44 " + e.toString());
в консоли
Код:
[09:24:04] [Server thread/INFO]: *** FB22 fullbright:unbreaking
[09:24:04] [Server thread/ERROR]: Could not pass event CreatureSpawnEvent to FullBright v1.1
org.bukkit.event.EventException: null
...
Caused by: java.lang.NullPointerException
    at rubukkit.FullBright.Mobs.setRandomEnchantment(Mobs.java:217) ~[?:?]
217 это getServer().getConsoleSender().sendMessage("*** FB44 " + e.toString());
 
Тебе надо ключ с самой игры а не своего плагина. Там кажись есть метод NamespacedKey.getMinecraftKey()
 
не работает, есть реальный пример?
Код:
NamespacedKey key = new NamespacedKey(plugin, "unbreaking");
getServer().getConsoleSender().sendMessage("*** FB22 " + key.toString());
Enchantment e = Enchantment.getByKey(key);
getServer().getConsoleSender().sendMessage("*** FB44 " + e.toString());
в консоли
Код:
[09:24:04] [Server thread/INFO]: *** FB22 fullbright:unbreaking
[09:24:04] [Server thread/ERROR]: Could not pass event CreatureSpawnEvent to FullBright v1.1
org.bukkit.event.EventException: null
...
Caused by: java.lang.NullPointerException
    at rubukkit.FullBright.Mobs.setRandomEnchantment(Mobs.java:217) ~[?:?]
217 это getServer().getConsoleSender().sendMessage("*** FB44 " + e.toString());
NamespacedKey key = NamespacedKey.minecraft("unbreaking");
Enchantment e = Enchantment.getByKey(key);
 
Назад
Верх