diff --git a/src/de/anura/core/Setup.java b/src/de/anura/core/Setup.java index 49cb235..14ca66a 100644 --- a/src/de/anura/core/Setup.java +++ b/src/de/anura/core/Setup.java @@ -71,6 +71,7 @@ public class Setup { new InvClick(Core.getMainClass()); new BlockSpread(Core.getMainClass()); new DropItem(Core.getMainClass()); + new EntityChangeBlock(Core.getMainClass()); } public static void setupClasses() { diff --git a/src/de/anura/core/events/EntityChangeBlock.java b/src/de/anura/core/events/EntityChangeBlock.java new file mode 100644 index 0000000..3361325 --- /dev/null +++ b/src/de/anura/core/events/EntityChangeBlock.java @@ -0,0 +1,27 @@ +package de.anura.core.events; + +import de.anura.core.API.Core; +import de.anura.core.AnuraCore; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityChangeBlockEvent; + +public class EntityChangeBlock implements Listener { + + public EntityChangeBlock(AnuraCore plugin) { + plugin.getServer().getPluginManager().registerEvents(this, plugin); + } + + @EventHandler + public void onEntityChangeBlock(EntityChangeBlockEvent event) { + if (event.getEntityType() == EntityType.BOAT && event.getEntity().getPassenger() instanceof Player && Core.getMainClass().getConfig().getBoolean("no-change-blocks")) { + Player P = (Player) event.getEntity().getPassenger(); + if (!P.hasPermission("core.rules.blocks.break")) { + event.setCancelled(true); + P.sendBlockChange(event.getBlock().getLocation(), event.getBlock().getType(), event.getBlock().getData()); + } + } + } +}