package com.github.jamesnorris.ablockalypse.queue.inherent; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.Event.Result; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import com.github.jamesnorris.ablockalypse.Ablockalypse; import com.github.jamesnorris.ablockalypse.DataContainer; import com.github.jamesnorris.ablockalypse.behavior.GameAspect; import com.github.jamesnorris.ablockalypse.queue.QueuedPlayerInteractData; public class QueuedGameObjectRemoval extends QueuedPlayerInteractData { private DataContainer data = Ablockalypse.getData(); public QueuedGameObjectRemoval(String playerName) { super(playerName); Bukkit.getPlayer(playerName).sendMessage(ChatColor.GRAY + "Right click any ZA object to remove it."); } @Override public boolean isCompatible(PlayerInteractEvent event) { return event.getClickedBlock() != null && !data.isZAPlayer(event.getPlayer()) && event.getAction() == Action.RIGHT_CLICK_BLOCK; } @Override public void run() { if (!hasImportedPIE()) { return; } PlayerInteractEvent event = getPIE(); Player player = event.getPlayer(); Block block = event.getClickedBlock(); event.setUseInteractedBlock(Result.DENY); event.setUseItemInHand(Result.DENY); GameAspect removal = data.getGameObjectByLocation(block.getLocation()); if (removal == null) { player.sendMessage(ChatColor.GRAY + "Removal: " + ChatColor.RED + "UNSUCCESSFUL"); return; } removal.remove(); player.sendMessage(ChatColor.GRAY + "Removal " + ChatColor.GREEN + "SUCCESSFUL"); } }