WorldSystem/src/main/java/de/butzlabben/world/listener/BlockListener.java

95 lines
3.0 KiB
Java

package de.butzlabben.world.listener;
import de.butzlabben.world.config.WorldConfig;
import de.butzlabben.world.wrapper.WorldPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockIgniteEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.player.PlayerBucketEmptyEvent;
import java.io.File;
import java.util.Objects;
public class BlockListener implements Listener {
@EventHandler
public void onExplode(EntityExplodeEvent e) {
File file = WorldConfig.getWorldFile(Objects.requireNonNull(e.getLocation().getWorld()).getName());
if (!file.exists())
return;
WorldConfig wc = WorldConfig.getWorldConfig(e.getLocation().getWorld().getName());
e.setCancelled(!wc.isTnt());
}
@EventHandler
public void onPlace(BlockPlaceEvent e) {
Player p = e.getPlayer();
if (p.hasPermission("ws.build"))
return;
String worldname = p.getWorld().getName();
WorldPlayer wp = new WorldPlayer(p, worldname);
if (!wp.isOnSystemWorld())
return;
if (!wp.isMember())
e.setCancelled(true);
if (!wp.isOwnerofWorld()) {
e.setCancelled(!wp.canBuild());
}
}
@EventHandler
public void onPlaceLiquid(PlayerBucketEmptyEvent e) {
Player p = e.getPlayer();
if (p.hasPermission("ws.build"))
return;
String worldname = p.getWorld().getName();
WorldPlayer wp = new WorldPlayer(p, worldname);
if (!wp.isOnSystemWorld())
return;
if (!wp.isMember())
e.setCancelled(true);
if (!wp.isOwnerofWorld()) {
e.setCancelled(!wp.canBuild());
}
}
@EventHandler
public void onBreak(BlockBreakEvent e) {
Player p = e.getPlayer();
if (p.hasPermission("ws.build"))
return;
String worldname = p.getWorld().getName();
WorldPlayer wp = new WorldPlayer(p, worldname);
if (!wp.isOnSystemWorld())
return;
if (!wp.isMember())
e.setCancelled(true);
if (!wp.isOwnerofWorld()) {
e.setCancelled(!wp.canBuild());
}
}
@EventHandler
public void onFire(BlockIgniteEvent e) {
File file = WorldConfig.getWorldFile(e.getBlock().getWorld().getName());
if (!file.exists())
return;
WorldConfig wc = WorldConfig.getWorldConfig(e.getBlock().getWorld().getName());
e.setCancelled(!wc.isFire());
}
@EventHandler
public void onFire(BlockBurnEvent e) {
File file = WorldConfig.getWorldFile(e.getBlock().getWorld().getName());
if (!file.exists())
return;
WorldConfig wc = WorldConfig.getWorldConfig(e.getBlock().getWorld().getName());
e.setCancelled(!wc.isFire());
}
}