mirror of
https://gitlab.com/SamB440/rpgregions-2.git
synced 2026-01-06 15:41:35 +00:00
Improve entry prevention performance and add sync teleport option
This commit is contained in:
@@ -9,27 +9,27 @@ import org.bukkit.event.player.PlayerMoveEvent;
|
||||
|
||||
public enum PreventType {
|
||||
TELEPORT,
|
||||
TELEPORT_SYNC,
|
||||
PUSH,
|
||||
CANCEL;
|
||||
|
||||
private static final String[] SPLIT_VERSION = Bukkit.getBukkitVersion().split("-")[0].split("\\.");
|
||||
private static final int VERSION_INT = Integer.parseInt(SPLIT_VERSION[1]);
|
||||
|
||||
public void prevent(PlayerMoveEvent event) {
|
||||
if (event.getTo() == null) return;
|
||||
Player player = event.getPlayer();
|
||||
switch (this) {
|
||||
case TELEPORT -> PaperLib.teleportAsync(player, event.getFrom());
|
||||
case TELEPORT_SYNC -> player.teleport(event.getFrom());
|
||||
case PUSH -> player.setVelocity(event.getTo().toVector().subtract(event.getFrom().toVector()).multiply(-3));
|
||||
case CANCEL -> event.setCancelled(true);
|
||||
}
|
||||
|
||||
if (getVersionNumber() <= 17) {
|
||||
if (VERSION_INT <= 17) {
|
||||
player.spawnParticle(Particle.valueOf("BARRIER"), event.getTo().getBlock().getLocation().add(0.5, 0.5, 0.5), 1);
|
||||
} else {
|
||||
player.spawnParticle(Particle.BLOCK_MARKER, event.getTo().getBlock().getLocation().add(0.5, 0.5, 0.5), 1, Material.BARRIER.createBlockData());
|
||||
}
|
||||
}
|
||||
|
||||
private int getVersionNumber() {
|
||||
String[] split = Bukkit.getBukkitVersion().split("-")[0].split("\\.");
|
||||
return Integer.parseInt(split[1]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user