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
(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
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 ;)