Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sergivb01.hcf.listeners;
- import com.google.common.collect.ImmutableSet;
- import com.google.common.collect.Sets;
- import net.md_5.bungee.api.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.EventPriority;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerTeleportEvent;
- /**
- * @author Brandon Hall
- * Copyright @ Brandon Hall | All rights reserved
- */
- public class PearlThroughListener implements Listener {
- private ImmutableSet<Material> blockedPearlTypes;
- public PearlThroughListener()
- {
- this.blockedPearlTypes = Sets.immutableEnumSet(Material.THIN_GLASS,
- new Material[] { Material.IRON_FENCE, Material.FENCE, Material.NETHER_FENCE, Material.FENCE_GATE});
- }
- @EventHandler
- public void onPlayerTeleport(PlayerTeleportEvent event) {
- if (event.getCause().equals(PlayerTeleportEvent.TeleportCause.ENDER_PEARL)) {
- Location location = event.getTo();
- location.setX(location.getBlockX() + 0.5D);
- location.setY(location.getBlockY());
- location.setZ(location.getBlockZ() + 0.5D);
- event.setTo(location);
- }
- }
- @EventHandler(ignoreCancelled=true, priority= EventPriority.NORMAL)
- public void onPearlClip(PlayerTeleportEvent event) {
- if (event.getCause() == PlayerTeleportEvent.TeleportCause.ENDER_PEARL) {
- Location to = event.getTo();
- if (this.blockedPearlTypes.contains(to.getBlock().getType())) {
- Player player = event.getPlayer();
- player.sendMessage(ChatColor.RED + "Invalid Pearl! Please try again.");
- event.setCancelled(true);
- return;
- }
- to.setX(to.getBlockX() + 0.5D);
- to.setZ(to.getBlockZ() + 0.5D);
- event.setTo(to);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement