Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package thom.plugin.teleporter.modules.teleporter.listeners;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.block.Block;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.Action;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.inventory.EquipmentSlot;
- import org.bukkit.inventory.PlayerInventory;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * Created by Thom on 23-7-2017.
- */
- public class PlayerInteractListener implements Listener {
- private Map<Player, Location> firstBlock = new HashMap<>();
- private Map<Player, Location> secondBlock = new HashMap<>();
- private Map<Location, Block> firstBlockReplacement = new HashMap<>();
- private Map<Location, Block> secondBlockReplacement = new HashMap<>();
- @EventHandler
- public void onPlayerInteract(PlayerInteractEvent event) {
- Player player = event.getPlayer();
- Block clickedBlock = event.getClickedBlock();
- PlayerInventory inventory = player.getInventory();
- boolean canBePlaced = true;
- if (clickedBlock != null) {
- if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
- if (!(event.getHand().equals(EquipmentSlot.OFF_HAND))) {
- if (inventory.getItemInMainHand() != null) {
- if (inventory.getItemInMainHand().getType().equals(Material.QUARTZ)) {
- if (inventory.getItemInMainHand().hasItemMeta()) {
- if (inventory.getItemInMainHand().getItemMeta().getDisplayName().
- equalsIgnoreCase("teleporter")) {
- switch (clickedBlock.getType()) {
- case CHEST:
- player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
- canBePlaced = false;
- break;
- case DROPPER:
- player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
- canBePlaced = false;
- break;
- case HOPPER:
- player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
- canBePlaced = false;
- break;
- case DISPENSER:
- player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
- canBePlaced = false;
- break;
- case WATER:
- player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
- canBePlaced = false;
- break;
- case LAVA:
- player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
- canBePlaced = false;
- break;
- case FIRE:
- player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
- canBePlaced = false;
- break;
- }
- if (canBePlaced) {
- if (firstBlock.containsKey(player)) {
- if (clickedBlock.getType().equals(Material.QUARTZ_ORE)) {
- Block block = firstBlockReplacement.get(clickedBlock.getLocation());
- firstBlock.remove(player);
- firstBlockReplacement.remove(clickedBlock.getLocation());
- clickedBlock.setType(block.getType());
- clickedBlock.setData(block.getData());
- } else {
- if (secondBlock.containsKey(player)) {
- if (clickedBlock.getType().equals(Material.QUARTZ_ORE)) {
- Block block = secondBlockReplacement.
- get(clickedBlock.getLocation());
- secondBlock.remove(player);
- secondBlockReplacement.remove(clickedBlock.getLocation());
- clickedBlock.setType(block.getType());
- clickedBlock.setData(block.getData());
- }
- } else {
- secondBlock.put(player, clickedBlock.getLocation());
- secondBlockReplacement.put(clickedBlock.getLocation(), clickedBlock);
- clickedBlock.setType(Material.QUARTZ_ORE);
- }
- }
- } else {
- firstBlock.put(player, clickedBlock.getLocation());
- firstBlockReplacement.put(clickedBlock.getLocation(), clickedBlock);
- clickedBlock.setType(Material.QUARTZ_ORE);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement