--- a/net/minecraft/server/BehaviorUtil.java +++ b/net/minecraft/server/BehaviorUtil.java @@ -38,7 +38,7 @@ } public static void a(EntityLiving entityliving, EntityLiving entityliving1) { - entityliving.getBehaviorController().setMemory(MemoryModuleType.LOOK_TARGET, (Object) (new BehaviorPositionEntity(entityliving1, true))); + entityliving.getBehaviorController().setMemory(MemoryModuleType.LOOK_TARGET, (new BehaviorPositionEntity(entityliving1, true))); // CraftBukkit - decompile error } private static void b(EntityLiving entityliving, EntityLiving entityliving1, float f) { @@ -51,18 +51,19 @@ public static void a(EntityLiving entityliving, Entity entity, float f, int i) { MemoryTarget memorytarget = new MemoryTarget(new BehaviorPositionEntity(entity, false), f, i); - entityliving.getBehaviorController().setMemory(MemoryModuleType.LOOK_TARGET, (Object) (new BehaviorPositionEntity(entity, true))); - entityliving.getBehaviorController().setMemory(MemoryModuleType.WALK_TARGET, (Object) memorytarget); + entityliving.getBehaviorController().setMemory(MemoryModuleType.LOOK_TARGET, (new BehaviorPositionEntity(entity, true))); // CraftBukkit - decompile error + entityliving.getBehaviorController().setMemory(MemoryModuleType.WALK_TARGET, memorytarget); // CraftBukkit - decompile error } public static void a(EntityLiving entityliving, BlockPosition blockposition, float f, int i) { MemoryTarget memorytarget = new MemoryTarget(new BehaviorTarget(blockposition), f, i); - entityliving.getBehaviorController().setMemory(MemoryModuleType.LOOK_TARGET, (Object) (new BehaviorTarget(blockposition))); - entityliving.getBehaviorController().setMemory(MemoryModuleType.WALK_TARGET, (Object) memorytarget); + entityliving.getBehaviorController().setMemory(MemoryModuleType.LOOK_TARGET, (new BehaviorTarget(blockposition))); // CraftBukkit - decompile error + entityliving.getBehaviorController().setMemory(MemoryModuleType.WALK_TARGET, memorytarget); // CraftBukkit - decompile error } public static void a(EntityLiving entityliving, ItemStack itemstack, Vec3D vec3d) { + if (itemstack.isEmpty()) return; // CraftBukkit - SPIGOT-4940: no empty loot double d0 = entityliving.getHeadY() - 0.30000001192092896D; EntityItem entityitem = new EntityItem(entityliving.world, entityliving.locX(), d0, entityliving.locZ(), itemstack); float f = 0.3F; @@ -71,12 +72,19 @@ vec3d1 = vec3d1.d().a(0.30000001192092896D); entityitem.setMot(vec3d1); entityitem.defaultPickupDelay(); + // CraftBukkit start + org.bukkit.event.entity.EntityDropItemEvent event = new org.bukkit.event.entity.EntityDropItemEvent(entityliving.getBukkitEntity(), (org.bukkit.entity.Item) entityitem.getBukkitEntity()); + entityitem.world.getServer().getPluginManager().callEvent(event); + if (event.isCancelled()) { + return; + } + // CraftBukkit end entityliving.world.addEntity(entityitem); } public static SectionPosition a(WorldServer worldserver, SectionPosition sectionposition, int i) { int j = worldserver.b(sectionposition); - Stream stream = SectionPosition.a(sectionposition, i).filter((sectionposition1) -> { + Stream stream = SectionPosition.a(sectionposition, i).filter((sectionposition1) -> { // CraftBukkit - decompile error return worldserver.b(sectionposition1) < j; });