33
44import adhdmc .nerffarms .NerfFarms ;
55import adhdmc .nerffarms .config .ModType ;
6+ import adhdmc .nerffarms .util .Util ;
67import org .bukkit .NamespacedKey ;
78import org .bukkit .entity .Entity ;
89import org .bukkit .event .EventHandler ;
910import org .bukkit .event .EventPriority ;
1011import org .bukkit .event .Listener ;
1112import org .bukkit .event .entity .EntityDeathEvent ;
13+ import org .bukkit .inventory .ItemStack ;
1214import org .bukkit .persistence .PersistentDataContainer ;
15+ import org .bukkit .persistence .PersistentDataType ;
16+
17+ import java .util .ArrayList ;
18+ import java .util .List ;
1319
1420public class MobDeathListener implements Listener {
15- NamespacedKey nerfMob = MobDamageListener .nerfMob ;
21+ private final NamespacedKey nerfMob = Util .nerfMob ;
22+ private final NamespacedKey pickedUp = Util .pickedUpItem ;
1623
1724 @ EventHandler (priority = EventPriority .NORMAL , ignoreCancelled = true )
1825 public void onMobDeath (EntityDeathEvent deathEvent ) {
@@ -32,7 +39,17 @@ private void clearDrops(EntityDeathEvent deathEvent) {
3239 }
3340 if (configMod == ModType .DROPS || configMod == ModType .BOTH ) {
3441 NerfFarms .debugLvl3 ("configMod Setting clears Drops." );
42+ List <ItemStack > drops = deathEvent .getDrops ();
43+ List <ItemStack > pickedUpItems = new ArrayList <>();
44+ for (ItemStack item : drops ) {
45+ if (item .getItemMeta ().getPersistentDataContainer ().get (pickedUp , PersistentDataType .BYTE ) != null ) {
46+ pickedUpItems .add (item );
47+ }
48+ }
3549 deathEvent .getDrops ().clear ();
50+ for (ItemStack item : pickedUpItems ) {
51+ deathEvent .getDrops ().add (item );
52+ }
3653 }
3754 }
3855}
0 commit comments