Skip to content

Commit 7ff406b

Browse files
authored
Merge pull request #3 from cyilin/master
prevent mobs break block. fix #75
2 parents 96f0336 + abe4d3d commit 7ff406b

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/me/crafter/mc/lockettepro/BlockEnvironmentListener.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,18 @@
55
import org.bukkit.block.Block;
66
import org.bukkit.block.BlockState;
77
import org.bukkit.entity.Enderman;
8+
import org.bukkit.entity.Silverfish;
89
import org.bukkit.entity.Villager;
10+
import org.bukkit.entity.Wither;
11+
import org.bukkit.entity.Zombie;
912
import org.bukkit.event.EventHandler;
1013
import org.bukkit.event.EventPriority;
1114
import org.bukkit.event.Listener;
1215
import org.bukkit.event.block.BlockExplodeEvent;
1316
import org.bukkit.event.block.BlockPistonExtendEvent;
1417
import org.bukkit.event.block.BlockPistonRetractEvent;
1518
import org.bukkit.event.block.BlockRedstoneEvent;
19+
import org.bukkit.event.entity.EntityChangeBlockEvent;
1620
import org.bukkit.event.entity.EntityExplodeEvent;
1721
import org.bukkit.event.entity.EntityInteractEvent;
1822
import org.bukkit.event.world.StructureGrowEvent;
@@ -98,13 +102,17 @@ public void onVillagerOpenDoor(EntityInteractEvent event){
98102
}
99103
}
100104

101-
// Prevent Enderman take block
105+
// Prevent mob change block
102106
@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)
108116
}
109117

110118
}

0 commit comments

Comments
 (0)