package tv.mineinthebox.essentials.events.players; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.world.PortalCreateEvent; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.enums.PermissionKey; import tv.mineinthebox.essentials.interfaces.EventTemplate; public class DisablePortalCreationEvent extends EventTemplate implements Listener { public DisablePortalCreationEvent(xEssentials pl) { super(pl, "Portal"); } @EventHandler public void onCreatePortal(PortalCreateEvent e) { Block block = e.getBlocks().get(0); Player p = ExtractPlayerFromLocation(block.getLocation()); if(p instanceof Player) { if(!p.hasPermission(PermissionKey.IS_ADMIN.getPermission())) { e.setCancelled(true); sendMessage(p, ChatColor.RED + "portal creation has been disabled on the server!"); } } } private Player ExtractPlayerFromLocation(Location loc) { for(Player p : Bukkit.getOnlinePlayers()) { if(p.getWorld().equals(loc.getWorld())) { Location ploc = p.getLocation(); if(ploc.distance(loc) < 8) { return p; } } } return null; } }