|
5 | 5 | import org.bukkit.block.Block; |
6 | 6 | import org.bukkit.block.BlockState; |
7 | 7 | import org.bukkit.entity.Enderman; |
| 8 | +import org.bukkit.entity.Silverfish; |
8 | 9 | import org.bukkit.entity.Villager; |
| 10 | +import org.bukkit.entity.Wither; |
| 11 | +import org.bukkit.entity.Zombie; |
9 | 12 | import org.bukkit.event.EventHandler; |
10 | 13 | import org.bukkit.event.EventPriority; |
11 | 14 | import org.bukkit.event.Listener; |
12 | 15 | import org.bukkit.event.block.BlockExplodeEvent; |
13 | 16 | import org.bukkit.event.block.BlockPistonExtendEvent; |
14 | 17 | import org.bukkit.event.block.BlockPistonRetractEvent; |
15 | 18 | import org.bukkit.event.block.BlockRedstoneEvent; |
| 19 | +import org.bukkit.event.entity.EntityChangeBlockEvent; |
16 | 20 | import org.bukkit.event.entity.EntityExplodeEvent; |
17 | 21 | import org.bukkit.event.entity.EntityInteractEvent; |
18 | 22 | import org.bukkit.event.world.StructureGrowEvent; |
@@ -98,13 +102,17 @@ public void onVillagerOpenDoor(EntityInteractEvent event){ |
98 | 102 | } |
99 | 103 | } |
100 | 104 |
|
101 | | - // Prevent Enderman take block |
| 105 | + // Prevent mob change block |
102 | 106 | @EventHandler(priority = EventPriority.HIGH) |
103 | | - public void onEndermanGreif(EntityInteractEvent event){ |
104 | | - if (Config.isProtectionExempted("enderman")) return; |
105 | | - if (event.getEntity() instanceof Enderman && LocketteProAPI.isProtected(event.getBlock())){ |
106 | | - event.setCancelled(true); |
107 | | - } |
| 107 | + public void onMobChangeBlock(EntityChangeBlockEvent event) { |
| 108 | + if ((event.getEntity() instanceof Enderman && !Config.isProtectionExempted("enderman")) ||// enderman pick up/place block |
| 109 | + (event.getEntity() instanceof Wither && !Config.isProtectionExempted("wither")) ||// wither break block |
| 110 | + (event.getEntity() instanceof Zombie && !Config.isProtectionExempted("zombie")) ||// zombie break door |
| 111 | + (event.getEntity() instanceof Silverfish && !Config.isProtectionExempted("silverfish"))){ |
| 112 | + if (LocketteProAPI.isProtected(event.getBlock())){ |
| 113 | + event.setCancelled(true); |
| 114 | + } |
| 115 | + }// ignore other reason (boat break lily pad, arrow ignite tnt, etc) |
108 | 116 | } |
109 | 117 |
|
110 | 118 | } |
0 commit comments