From b3912402b1d5b77177679ccef4ff5eb9b2f426ee Mon Sep 17 00:00:00 2001 From: Dumbo52 Date: Mon, 20 Oct 2014 21:59:23 -0400 Subject: [PATCH] Add allow-mob-drops flag. --- README.md | 2 ++ pom.xml | 2 +- src/com/michaelelin/NerdFlags/NerdFlagsListener.java | 11 ++++++++++- src/com/michaelelin/NerdFlags/NerdFlagsPlugin.java | 5 +++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b7536a2..1026a5b 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ Available flags: |-----------------------|---------------| | compass | true | | allow-drops | true | +| allow-mob-drops | true | +| sprint | true | | use-dispenser | true | | use-note-block | false | | use-workbench | true | diff --git a/pom.xml b/pom.xml index 13db074..531e119 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.michaelelin NerdFlags - 0.0.1-SNAPSHOT + 0.0.1 ${basedir}/src diff --git a/src/com/michaelelin/NerdFlags/NerdFlagsListener.java b/src/com/michaelelin/NerdFlags/NerdFlagsListener.java index 657b3f7..0fce62b 100644 --- a/src/com/michaelelin/NerdFlags/NerdFlagsListener.java +++ b/src/com/michaelelin/NerdFlags/NerdFlagsListener.java @@ -7,6 +7,7 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; +import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.ItemSpawnEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerInteractEvent; @@ -38,7 +39,15 @@ public void onItemSpawn(ItemSpawnEvent event) { } } - // WE checks this at a NORMAL priority, so we'll intercept it beforehand. + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onEntityDeath(EntityDeathEvent event) { + ApplicableRegionSet setAtLocation = worldguard.getGlobalRegionManager().get(event.getEntity().getLocation().getWorld()).getApplicableRegions(event.getEntity().getLocation()); + if (!setAtLocation.allows(plugin.ALLOW_MOB_DROPS)) { + event.getDrops().clear(); + } + } + + // WE checks this at a NORMAL priority, so we'll intercept it beforehand. @EventHandler(priority = EventPriority.LOW) public void onPlayerInteract(PlayerInteractEvent event) { if (event.getItem() != null && event.getItem().getTypeId() == worldedit.getWorldEdit().getConfiguration().navigationWand) { diff --git a/src/com/michaelelin/NerdFlags/NerdFlagsPlugin.java b/src/com/michaelelin/NerdFlags/NerdFlagsPlugin.java index 49a24ce..9efc986 100644 --- a/src/com/michaelelin/NerdFlags/NerdFlagsPlugin.java +++ b/src/com/michaelelin/NerdFlags/NerdFlagsPlugin.java @@ -16,6 +16,7 @@ public class NerdFlagsPlugin extends JavaPlugin { private long timestamp; public StateFlag ALLOW_DROPS; + public StateFlag ALLOW_MOB_DROPS; public StateFlag COMPASS; @@ -52,12 +53,16 @@ public void onEnable() { getServer().getPluginManager().registerEvents(listener, this); ALLOW_DROPS = new StateFlag("allow-drops", true); + ALLOW_MOB_DROPS = new StateFlag("allow-mob-drops", true); COMPASS = new StateFlag("compass", true); + wgCustomFlagsPlugin.addCustomFlag(ALLOW_DROPS); + wgCustomFlagsPlugin.addCustomFlag(ALLOW_MOB_DROPS); wgCustomFlagsPlugin.addCustomFlag(COMPASS); saveDefaultConfig(); loadConfig(); + wgCustomFlagsPlugin.addCustomFlag(USE_DISPENSER); wgCustomFlagsPlugin.addCustomFlag(USE_NOTE_BLOCK); wgCustomFlagsPlugin.addCustomFlag(USE_WORKBENCH);