From 7240f34ff0a181bd8e09eee1b3b405a74bde5901 Mon Sep 17 00:00:00 2001 From: EmrageGHC Date: Wed, 26 Feb 2025 16:24:14 +0100 Subject: [PATCH] fix PressurePlateListener --- .../listener/PressurePlateListener.java | 25 +++++++++++++++---- src/main/resources/config.yml | 15 ++++++++++- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PressurePlateListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PressurePlateListener.java index a293d62..247ac7e 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PressurePlateListener.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PressurePlateListener.java @@ -5,6 +5,7 @@ import me.freezy.plugins.papermc.blazesmp.module.manager.L4M4; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.Particle; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -40,9 +41,8 @@ public class PressurePlateListener implements Listener { config.getDouble("spawn-location.y", 200), config.getDouble("spawn-location.z", 0) ); - // Verwende die zentrale Nachricht aus der messages.json teleportMessage = L4M4.get("pressureplate.teleport"); - teleportDelay = 5*20L; // Default to 5 seconds (100 ticks) + teleportDelay = 5 * 20L; } @EventHandler @@ -59,11 +59,26 @@ public class PressurePlateListener implements Listener { }; task.runTaskLater(plugin, teleportDelay); playerTasks.put(event.getPlayer().getUniqueId(), task); + + new BukkitRunnable() { + @Override + public void run() { + if (playerTasks.containsKey(event.getPlayer().getUniqueId())) { + event.getPlayer().getWorld().spawnParticle(Particle.PORTAL, event.getPlayer().getLocation(), 30, 0.5, 0.5, 0.5, 0.1); + } else { + cancel(); + } + } + }.runTaskTimer(plugin, 0, 10); } } else { if (playerTasks.containsKey(event.getPlayer().getUniqueId())) { - playerTasks.get(event.getPlayer().getUniqueId()).cancel(); - playerTasks.remove(event.getPlayer().getUniqueId()); + if (event.getFrom().getBlockX() != event.getTo().getBlockX() || + event.getFrom().getBlockY() != event.getTo().getBlockY() || + event.getFrom().getBlockZ() != event.getTo().getBlockZ()) { + playerTasks.get(event.getPlayer().getUniqueId()).cancel(); + playerTasks.remove(event.getPlayer().getUniqueId()); + } } } } @@ -75,4 +90,4 @@ public class PressurePlateListener implements Listener { event.setCancelled(true); } } -} +} \ No newline at end of file diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index dd4a5e3..a428008 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -2,4 +2,17 @@ op-prefix: '[Team[Player] ' discord-report-webhook: '' discord-url: 'https://discord.gg/cww2YDt2bx' -tab_update_interval: 5 #Seconds \ No newline at end of file +tab_update_interval: 5 #Seconds +isEndOpen: false + +pressure-plate: + world: "world" + x: 1 + y: 68 + z: 0 + +spawn-location: + world: "world" + x: 0 + y: 200 + z: 0 \ No newline at end of file