|
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