95 lines
3.0 KiB
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());
|
|
}
|
|
}
|