Skip to content

Commit f9796fe

Browse files
committed
sorta works
1 parent c3e8c41 commit f9796fe

8 files changed

Lines changed: 65 additions & 4 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>ADHDMC</groupId>
88
<artifactId>NerfFarms</artifactId>
9-
<version>0.3.1</version>
9+
<version>0.3.2</version>
1010
<packaging>jar</packaging>
1111

1212
<name>NerfFarms</name>

src/main/java/adhdmc/nerffarms/NerfFarms.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import adhdmc.nerffarms.command.CommandHandler;
44
import adhdmc.nerffarms.config.ConfigParser;
5+
import adhdmc.nerffarms.listener.ItemPickupListener;
56
import adhdmc.nerffarms.listener.MobDamageListener;
67
import adhdmc.nerffarms.listener.MobDeathListener;
78
import net.kyori.adventure.text.minimessage.MiniMessage;
@@ -41,6 +42,7 @@ public void onEnable() {
4142
this.saveDefaultConfig();
4243
this.getServer().getPluginManager().registerEvents(new MobDeathListener(), this);
4344
this.getServer().getPluginManager().registerEvents(new MobDamageListener(), this);
45+
this.getServer().getPluginManager().registerEvents(new ItemPickupListener(), this);
4446
registerCommand(this.getCommand("nerffarms"), new CommandHandler());
4547
}
4648

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package adhdmc.nerffarms.listener;
2+
3+
import adhdmc.nerffarms.util.Util;
4+
import org.bukkit.NamespacedKey;
5+
import org.bukkit.entity.Mob;
6+
import org.bukkit.event.EventHandler;
7+
import org.bukkit.event.EventPriority;
8+
import org.bukkit.event.Listener;
9+
import org.bukkit.event.entity.EntityPickupItemEvent;
10+
import org.bukkit.inventory.ItemStack;
11+
import org.bukkit.persistence.PersistentDataType;
12+
13+
public class ItemPickupListener implements Listener {
14+
private final NamespacedKey pickedUp = Util.pickedUpItem;
15+
16+
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
17+
public void onItemPickup(EntityPickupItemEvent pickupEvent) {
18+
if (!(pickupEvent.getEntity() instanceof Mob mob)) return;
19+
ItemStack item = pickupEvent.getItem().getItemStack();
20+
byte t = 1;
21+
item.getItemMeta().getPersistentDataContainer().set(pickedUp, PersistentDataType.BYTE, t);
22+
}
23+
}

src/main/java/adhdmc/nerffarms/listener/MobDamageListener.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import adhdmc.nerffarms.config.ConfigParser;
55
import adhdmc.nerffarms.config.ConfigToggle;
66
import adhdmc.nerffarms.util.CheckUtils;
7+
import adhdmc.nerffarms.util.Util;
78
import com.destroystokyo.paper.entity.Pathfinder;
89
import org.bukkit.Location;
910
import org.bukkit.Material;
@@ -22,8 +23,8 @@
2223
import java.util.Objects;
2324

2425
public class MobDamageListener implements Listener {
25-
public static final NamespacedKey nerfMob = new NamespacedKey(NerfFarms.plugin, "nerf-mob");
26-
public static final NamespacedKey blacklistedDamage = new NamespacedKey(NerfFarms.plugin, "blacklisted-damage");
26+
private final NamespacedKey nerfMob = Util.nerfMob;
27+
public static final NamespacedKey blacklistedDamage = Util.blacklistedDamage;
2728
private static final byte t = 1;
2829

2930
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)

src/main/java/adhdmc/nerffarms/listener/MobDeathListener.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,23 @@
33

44
import adhdmc.nerffarms.NerfFarms;
55
import adhdmc.nerffarms.config.ModType;
6+
import adhdmc.nerffarms.util.Util;
67
import org.bukkit.NamespacedKey;
78
import org.bukkit.entity.Entity;
89
import org.bukkit.event.EventHandler;
910
import org.bukkit.event.EventPriority;
1011
import org.bukkit.event.Listener;
1112
import org.bukkit.event.entity.EntityDeathEvent;
13+
import org.bukkit.inventory.ItemStack;
1214
import org.bukkit.persistence.PersistentDataContainer;
15+
import org.bukkit.persistence.PersistentDataType;
16+
17+
import java.util.ArrayList;
18+
import java.util.List;
1319

1420
public 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
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package adhdmc.nerffarms.util;
2+
3+
public enum Message {
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package adhdmc.nerffarms.util;
2+
3+
public enum NFPermission {
4+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package adhdmc.nerffarms.util;
2+
3+
import adhdmc.nerffarms.NerfFarms;
4+
import org.bukkit.NamespacedKey;
5+
6+
public class Util {
7+
public static final NamespacedKey nerfMob = new NamespacedKey(NerfFarms.plugin, "nerf-mob");
8+
public static final NamespacedKey blacklistedDamage = new NamespacedKey(NerfFarms.plugin, "blacklisted-damage");
9+
public static final NamespacedKey pickedUpItem = new NamespacedKey(NerfFarms.plugin, "picked-up-item");
10+
}

0 commit comments

Comments
 (0)