Blöcke nicht explodieren?
Hallo. Wie kann ich mithilfe eines Plugins machen, dass in einer bestimmten Welt keine Blöcke explodieren?
Ich habe es so gemacht, aber es funktioniert nicht bei TnT:
@EventHandler
public void onExplode(BlockExplodeEvent blexev) {
Block b = blexev.getBlock();
if (b.getWorld() == Bukkit.getWorld("Serverlobby"))
blexev.setCancelled(true);
}
2 Antworten
![](https://images.gutefrage.net/media/user/LuLuMaster12/1570040421193_nmmslarge__0_0_1920_1920_e95084a1f56002a4319522df875ab662.png?v=1570040421000)
(GEHT NICHT)@EventHandler
public void onExplode(BlockExplodeEvent e) {
e.setCancelled(true);
for(Block b : e.blockList()) {
b.getWorld().getBlockAt(b.getLocation()).setType(b.getType());
b.getWorld().getBlockAt(b.getLocation()).setData(b.getData());
}
}
Hi! Ich habs nicht getestet, aber vllt geht es so! :D
UPDATE (FIX):
@EventHandler
public void onEntityExplode(EntityExplodeEvent e) {
if (e.getEntityType().equals(EntityType.PRIMED_TNT)) {
e.setCancelled(true);
}
}
Woher ich das weiß:eigene Erfahrung
![](https://images.gutefrage.net/media/user/RGBBrain/1642291024895_nmmslarge__0_0_980_980_a97fdeeabe112b5e7f7558212c2463a0.jpg?v=1642291025000)
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Nutzer, der sehr aktiv auf gutefrage ist
@EventHandler(priority=EventPriority.NORMAL)
public void explodeHeight(EntityExplodeEvent e) {
if(e.getEntityType() == EntityType.PRIMED_TNT) {
e.blockList().clear();
}
}
Quelle: https://bukkit.org/threads/how-to-properly-cancel-tnt-explosions.99106/
Hab die Welt ganz vergessen, tut mir leid. Aber ich denke du weißt wie das geht ;)