9
0
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:
SamB440
2023-03-27 20:18:34 +01:00
parent 24f2f6809f
commit ee5c4f04ab

View File

@@ -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]);
}
}