From a9e54088ba327bd05eafda2c62029c91fdcced86 Mon Sep 17 00:00:00 2001 From: kaenganxt Date: Sun, 2 Nov 2014 11:35:30 +0100 Subject: [PATCH] Prevent players from dropping items --- src/de/anura/core/Setup.java | 2 ++ src/de/anura/core/events/DropItem.java | 29 ++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/de/anura/core/events/DropItem.java diff --git a/src/de/anura/core/Setup.java b/src/de/anura/core/Setup.java index 25eb3d2..59588ce 100644 --- a/src/de/anura/core/Setup.java +++ b/src/de/anura/core/Setup.java @@ -13,6 +13,7 @@ import de.anura.core.events.BlockBreak; import de.anura.core.events.BlockPlace; import de.anura.core.events.BlockSpread; import de.anura.core.events.CmdPreprocess; +import de.anura.core.events.DropItem; import de.anura.core.events.EntityDamage; import de.anura.core.events.EntityDamageByE; import de.anura.core.events.FoodChange; @@ -83,6 +84,7 @@ public class Setup { new PlayerTeleport(Core.getMainClass()); new InvClick(Core.getMainClass()); new BlockSpread(Core.getMainClass()); + new DropItem(Core.getMainClass()); } public static void setupClasses() { diff --git a/src/de/anura/core/events/DropItem.java b/src/de/anura/core/events/DropItem.java new file mode 100644 index 0000000..d311043 --- /dev/null +++ b/src/de/anura/core/events/DropItem.java @@ -0,0 +1,29 @@ +package de.anura.core.events; + +import de.anura.core.AnuraCore; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerDropItemEvent; + +public class DropItem implements Listener { + + public DropItem(AnuraCore plugin) { + plugin.getServer().getPluginManager().registerEvents(this, plugin); + } + + @EventHandler + public void onPlayerDropItem(PlayerDropItemEvent event) { + if (AnuraCore.getInstance().getConfig().getBoolean("is-main-lobby") && !event.getPlayer().hasPermission("core.inventory.interact")) { + event.setCancelled(true); + final Player P = event.getPlayer(); + Bukkit.getScheduler().scheduleSyncDelayedTask(AnuraCore.getInstance(), new Runnable() { + @Override + public void run() { + P.updateInventory(); + } + }, 2); + } + } +}