Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.47 KB | None | 0 0
  1. package thom.plugin.teleporter.modules.teleporter.listeners;
  2.  
  3. import org.bukkit.ChatColor;
  4. import org.bukkit.Location;
  5. import org.bukkit.Material;
  6. import org.bukkit.block.Block;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.event.EventHandler;
  9. import org.bukkit.event.Listener;
  10. import org.bukkit.event.block.Action;
  11. import org.bukkit.event.player.PlayerInteractEvent;
  12. import org.bukkit.inventory.EquipmentSlot;
  13. import org.bukkit.inventory.PlayerInventory;
  14.  
  15. import java.util.HashMap;
  16. import java.util.Map;
  17.  
  18. /**
  19. * Created by Thom on 23-7-2017.
  20. */
  21. public class PlayerInteractListener implements Listener {
  22.  
  23. private Map<Player, Location> firstBlock = new HashMap<>();
  24. private Map<Player, Location> secondBlock = new HashMap<>();
  25. private Map<Location, Block> firstBlockReplacement = new HashMap<>();
  26. private Map<Location, Block> secondBlockReplacement = new HashMap<>();
  27.  
  28. @EventHandler
  29. public void onPlayerInteract(PlayerInteractEvent event) {
  30. Player player = event.getPlayer();
  31. Block clickedBlock = event.getClickedBlock();
  32. PlayerInventory inventory = player.getInventory();
  33. boolean canBePlaced = true;
  34.  
  35. if (clickedBlock != null) {
  36. if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
  37. if (!(event.getHand().equals(EquipmentSlot.OFF_HAND))) {
  38. if (inventory.getItemInMainHand() != null) {
  39. if (inventory.getItemInMainHand().getType().equals(Material.QUARTZ)) {
  40. if (inventory.getItemInMainHand().hasItemMeta()) {
  41. if (inventory.getItemInMainHand().getItemMeta().getDisplayName().
  42. equalsIgnoreCase("teleporter")) {
  43. switch (clickedBlock.getType()) {
  44. case CHEST:
  45. player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
  46. canBePlaced = false;
  47. break;
  48. case DROPPER:
  49. player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
  50. canBePlaced = false;
  51. break;
  52. case HOPPER:
  53. player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
  54. canBePlaced = false;
  55. break;
  56. case DISPENSER:
  57. player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
  58. canBePlaced = false;
  59. break;
  60. case WATER:
  61. player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
  62. canBePlaced = false;
  63. break;
  64. case LAVA:
  65. player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
  66. canBePlaced = false;
  67. break;
  68. case FIRE:
  69. player.sendMessage(ChatColor.RED + "You can't place the teleport here!");
  70. canBePlaced = false;
  71. break;
  72. }
  73. if (canBePlaced) {
  74. if (firstBlock.containsKey(player)) {
  75. if (clickedBlock.getType().equals(Material.QUARTZ_ORE)) {
  76. Block block = firstBlockReplacement.get(clickedBlock.getLocation());
  77. firstBlock.remove(player);
  78. firstBlockReplacement.remove(clickedBlock.getLocation());
  79. clickedBlock.setType(block.getType());
  80. clickedBlock.setData(block.getData());
  81. } else {
  82. if (secondBlock.containsKey(player)) {
  83. if (clickedBlock.getType().equals(Material.QUARTZ_ORE)) {
  84. Block block = secondBlockReplacement.
  85. get(clickedBlock.getLocation());
  86. secondBlock.remove(player);
  87. secondBlockReplacement.remove(clickedBlock.getLocation());
  88. clickedBlock.setType(block.getType());
  89. clickedBlock.setData(block.getData());
  90. }
  91. } else {
  92. secondBlock.put(player, clickedBlock.getLocation());
  93. secondBlockReplacement.put(clickedBlock.getLocation(), clickedBlock);
  94. clickedBlock.setType(Material.QUARTZ_ORE);
  95. }
  96. }
  97. } else {
  98. firstBlock.put(player, clickedBlock.getLocation());
  99. firstBlockReplacement.put(clickedBlock.getLocation(), clickedBlock);
  100. clickedBlock.setType(Material.QUARTZ_ORE);
  101. }
  102. }
  103. }
  104. }
  105. }
  106. }
  107. }
  108. }
  109. }
  110. }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement