From 804a02d3fd83ced48a3b23bae7bd31a0237f85c8 Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Mon, 8 Oct 2018 03:06:54 +0200 Subject: [PATCH] prevent TraitCatcher from picking up mobs killed without a weapon with the trait, fixes #177 --- .../java/com/sosnitzka/taiga/traits/TraitCatcher.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitCatcher.java b/src/main/java/com/sosnitzka/taiga/traits/TraitCatcher.java index dcf4f99..d89fe55 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitCatcher.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitCatcher.java @@ -42,16 +42,24 @@ public class TraitCatcher extends AbstractTrait { return; if (event.getEntityLiving() instanceof EntityPlayer || event.getEntityLiving() instanceof EntityPlayerMP) return; + World w = event.getSource().getTrueSource().getEntityWorld(); EntityPlayer p = (EntityPlayer) event.getSource().getTrueSource(); + + if (!TinkerUtil.hasTrait(TagUtil.getTagSafe(p.getHeldItemMainhand()), identifier)) + return; + EntityLivingBase target = event.getEntityLiving(); NBTTagCompound tag = TagUtil.getExtraTag(p.getHeldItemMainhand()); Data data = Data.read(tag); + if (!data.mobClass.isEmpty()) return; + if (!w.isRemote && random.nextInt((int) target.getMaxHealth()) <= chance && target instanceof EntityLiving) { event.setCanceled(true); target.setDropItemsWhenDead(false); + if (data.mobClass.isEmpty()) { data.mobClass = target.getClass().getName(); data.mobName = target.getName();