Fix NPE for AIR in meta operations in ItemStack

This commit is contained in:
Aleksander Jagiello 2021-02-03 18:04:27 +01:00
parent 1ff89d3d71
commit 29b3f9b2bb

View File

@ -110,6 +110,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ */ + */
+ public void setLore(@Nullable List<String> lore) { + public void setLore(@Nullable List<String> lore) {
+ ItemMeta itemMeta = getItemMeta(); + ItemMeta itemMeta = getItemMeta();
+ if (itemMeta == null) {
+ throw new IllegalStateException("Cannot set lore on " + getType());
+ }
+ itemMeta.setLore(lore); + itemMeta.setLore(lore);
+ setItemMeta(itemMeta); + setItemMeta(itemMeta);
+ } + }
@ -121,6 +124,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ */ + */
+ public void addItemFlags(@NotNull ItemFlag... itemFlags) { + public void addItemFlags(@NotNull ItemFlag... itemFlags) {
+ ItemMeta itemMeta = getItemMeta(); + ItemMeta itemMeta = getItemMeta();
+ if (itemMeta == null) {
+ throw new IllegalStateException("Cannot add flags on " + getType());
+ }
+ itemMeta.addItemFlags(itemFlags); + itemMeta.addItemFlags(itemFlags);
+ setItemMeta(itemMeta); + setItemMeta(itemMeta);
+ } + }
@ -132,6 +138,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ */ + */
+ public void removeItemFlags(@NotNull ItemFlag... itemFlags) { + public void removeItemFlags(@NotNull ItemFlag... itemFlags) {
+ ItemMeta itemMeta = getItemMeta(); + ItemMeta itemMeta = getItemMeta();
+ if (itemMeta == null) {
+ throw new IllegalStateException("Cannot remove flags on " + getType());
+ }
+ itemMeta.removeItemFlags(itemFlags); + itemMeta.removeItemFlags(itemFlags);
+ setItemMeta(itemMeta); + setItemMeta(itemMeta);
+ } + }
@ -144,6 +153,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ @NotNull + @NotNull
+ public Set<ItemFlag> getItemFlags() { + public Set<ItemFlag> getItemFlags() {
+ ItemMeta itemMeta = getItemMeta(); + ItemMeta itemMeta = getItemMeta();
+ if (itemMeta == null) {
+ return java.util.Collections.emptySet();
+ }
+ return itemMeta.getItemFlags(); + return itemMeta.getItemFlags();
+ } + }
+ +
@ -155,7 +167,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ */ + */
+ public boolean hasItemFlag(@NotNull ItemFlag flag) { + public boolean hasItemFlag(@NotNull ItemFlag flag) {
+ ItemMeta itemMeta = getItemMeta(); + ItemMeta itemMeta = getItemMeta();
+ return itemMeta.hasItemFlag(flag); + return itemMeta != null && itemMeta.hasItemFlag(flag);
+ } + }
// Paper end // Paper end
} }