I have this piece of code:
@Subscribe
public void onBreak(PlayerBreakBlockEvent event) {
Player player = event.getPlayer();
if(player.hasPermission("mafia.break")) {
event.setCancelled(true);
} else {
event.getBlock().replaceWith(event.getBlock().getType());
}
}
Will this disallow players without the mafia.break permission to break blocks?
Actually it will always place the block preventing anyone from breaking. The problem lies in the
event.setCancelled(true);
This will cause the block not to be broken (since you cancelled the event). The proper way would be something like this:
@Subscribe
public void onBreak(PlayerBreakBlockEvent event) {
Player player = event.getPlayer();
if(player.hasPermission("mafia.break")) {
//TODO: Whatever you wanted.
} else {
event.setCancelled(true);
}
}
@LordLambda, thanks. Preview of my code:
@Subscribe
public void onBreak(PlayerBreakBlockEvent event) {
Player player = event.getPlayer();
if(!(player.hasPermission("mafia.break"))) {
event.setCancelled(true);
}
}
That would definitely work.
You can take away one set of brackets there, bit easier to read
1 Like