From bd02eb9570657851cd543cf2204b5503f139adcf Mon Sep 17 00:00:00 2001 From: Daniel Walsh Date: Mon, 11 May 2020 01:09:49 +0100 Subject: [PATCH] Tested! --- .../implementation/items/magical/SoulboundRune.java | 9 ++------- .../thebusybiscuit/slimefun4/utils/SlimefunUtils.java | 3 ++- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundRune.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundRune.java index 2fab48e81..f400b35b4 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundRune.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/magical/SoulboundRune.java @@ -63,26 +63,21 @@ public class SoulboundRune extends SimpleSlimefunItem { ItemStack ench = ((Item) entity).getItemStack(); Item ent = (Item) entity; + SlimefunUtils.setSoulbound(ench); + if (ench.getAmount() == 1) { e.setCancelled(true); - ItemMeta enchMeta = ench.getItemMeta(); - // This lightning is just an effect, it deals no damage. l.getWorld().strikeLightningEffect(l); Slimefun.runSync(() -> { - // Being sure entities are still valid and not picked up or whatsoever. if (i.isValid() && ent.isValid()) { l.getWorld().createExplosion(l, 0.0F); l.getWorld().playSound(l, Sound.ENTITY_GENERIC_EXPLODE, 0.3F, 1F); - SlimefunUtils.setSoulbound(ench); - - ench.setItemMeta(enchMeta); - ent.remove(); i.remove(); l.getWorld().dropItemNaturally(l, ench); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java index b62fcc7fa..3403eebb6 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java @@ -1,5 +1,6 @@ package io.github.thebusybiscuit.slimefun4.utils; +import java.util.ArrayList; import java.util.List; import java.util.Optional; import javax.annotation.Nonnull; @@ -114,7 +115,7 @@ public final class SlimefunUtils { public static void setSoulbound(@Nonnull ItemStack item) { final ItemMeta meta = item.getItemMeta(); - final List lore = meta.getLore(); + final List lore = meta.hasLore() ? meta.getLore() : new ArrayList<>(); lore.add(SOULBOUND_LORE); meta.setLore(lore);