Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. package com.sergivb01.hcf.listeners;
  2.  
  3. import com.google.common.collect.ImmutableSet;
  4. import com.google.common.collect.Sets;
  5. import net.md_5.bungee.api.ChatColor;
  6. import org.bukkit.Location;
  7. import org.bukkit.Material;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.event.EventHandler;
  10. import org.bukkit.event.EventPriority;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.player.PlayerTeleportEvent;
  13.  
  14. /**
  15. * @author Brandon Hall
  16. * Copyright @ Brandon Hall | All rights reserved
  17. */
  18.  
  19. public class PearlThroughListener implements Listener {
  20.  
  21. private ImmutableSet<Material> blockedPearlTypes;
  22. public PearlThroughListener()
  23.  
  24. {
  25. this.blockedPearlTypes = Sets.immutableEnumSet(Material.THIN_GLASS,
  26. new Material[] { Material.IRON_FENCE, Material.FENCE, Material.NETHER_FENCE, Material.FENCE_GATE});
  27. }
  28.  
  29. @EventHandler
  30. public void onPlayerTeleport(PlayerTeleportEvent event) {
  31. if (event.getCause().equals(PlayerTeleportEvent.TeleportCause.ENDER_PEARL)) {
  32. Location location = event.getTo();
  33.  
  34. location.setX(location.getBlockX() + 0.5D);
  35. location.setY(location.getBlockY());
  36. location.setZ(location.getBlockZ() + 0.5D);
  37.  
  38. event.setTo(location);
  39. }
  40. }
  41. @EventHandler(ignoreCancelled=true, priority= EventPriority.NORMAL)
  42. public void onPearlClip(PlayerTeleportEvent event) {
  43. if (event.getCause() == PlayerTeleportEvent.TeleportCause.ENDER_PEARL) {
  44. Location to = event.getTo();
  45. if (this.blockedPearlTypes.contains(to.getBlock().getType())) {
  46. Player player = event.getPlayer();
  47. player.sendMessage(ChatColor.RED + "Invalid Pearl! Please try again.");
  48. event.setCancelled(true);
  49. return;
  50. }
  51. to.setX(to.getBlockX() + 0.5D);
  52. to.setZ(to.getBlockZ() + 0.5D);
  53. event.setTo(to);
  54. }
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement