Skip to content

Commit b302414

Browse files
committed
Block safezone enderpearls
1 parent f988f40 commit b302414

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener1_9.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@
99
import org.bukkit.Location;
1010
import org.bukkit.entity.Player;
1111
import org.bukkit.event.EventHandler;
12+
import org.bukkit.event.EventPriority;
1213
import org.bukkit.event.Listener;
1314
import org.bukkit.event.player.PlayerMoveEvent;
15+
import org.bukkit.event.player.PlayerTeleportEvent;
16+
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
1417
import org.bukkit.util.Vector;
1518
import org.jetbrains.annotations.NotNull;
1619

@@ -77,6 +80,21 @@ public final void onPlayerMove(final PlayerMoveEvent event) {
7780
}
7881
}
7982

83+
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
84+
// high priority so we ignore teleports if enderpearls are blocked
85+
public final void onPlayerTeleport(final PlayerTeleportEvent event) {
86+
if (event.getCause() != TeleportCause.ENDER_PEARL)
87+
return;
88+
final Player player = event.getPlayer();
89+
final CombatPlayer pvplayer = playerManager.get(player);
90+
final Location locTo = event.getTo();
91+
final Location locFrom = event.getFrom();
92+
if (pvplayer.isInCombat() && !depManager.canAttackAt(null, locTo) && depManager.canAttackAt(null, locFrom)) {
93+
event.setCancelled(true);
94+
pvplayer.message(Lang.PUSHBACK_WARNING);
95+
}
96+
}
97+
8098
@NotNull
8199
private Vector sanitizeVector(@NotNull final Vector vel) {
82100
if (Double.isNaN(vel.getX()))

0 commit comments

Comments
 (0)