From 91827e2bd21d1ec4dd6b427a1f8d25731f4c1837 Mon Sep 17 00:00:00 2001 From: T14D3 <73843330+T14D3@users.noreply.github.com> Date: Fri, 17 Jan 2025 14:48:39 +0100 Subject: [PATCH] Actually fix selection particle outline, only display for self, respect selection mode --- .../t14d3/zones/listeners/PlayerInteractListener.java | 10 +++++++++- .../java/de/t14d3/zones/utils/ParticleHandler.java | 6 ++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/t14d3/zones/listeners/PlayerInteractListener.java b/src/main/java/de/t14d3/zones/listeners/PlayerInteractListener.java index e91d80a..1027ed9 100644 --- a/src/main/java/de/t14d3/zones/listeners/PlayerInteractListener.java +++ b/src/main/java/de/t14d3/zones/listeners/PlayerInteractListener.java @@ -97,7 +97,15 @@ private void onPlayerInteract(PlayerInteractEvent event) { plugin.selection.put(playerUUID, Pair.of(min, max)); if (min != null && max != null) { - plugin.particles.put(playerUUID, BoundingBox.of(min.toBlockLocation(), max.toBlockLocation())); + Utils.Modes mode = Utils.Modes.getPlayerMode(player); + if (mode == Utils.Modes.CUBOID_3D) { + plugin.particles.put(playerUUID, BoundingBox.of(min.toBlockLocation(), max.toBlockLocation())); + } else { + min.setY(-63); + max.setY(319); + plugin.particles.put(playerUUID, BoundingBox.of(min.toBlockLocation(), max.toBlockLocation())); + } + } return; } diff --git a/src/main/java/de/t14d3/zones/utils/ParticleHandler.java b/src/main/java/de/t14d3/zones/utils/ParticleHandler.java index 679b77c..2decc7b 100644 --- a/src/main/java/de/t14d3/zones/utils/ParticleHandler.java +++ b/src/main/java/de/t14d3/zones/utils/ParticleHandler.java @@ -62,8 +62,8 @@ static void spawnParticleOutline(Particle primary, Particle secondary, Player pl List outlineLocations = new ArrayList<>(); // Add corners to the outline - outlineLocations.add(new Location(player.getWorld(), x1, y2, z1)); - outlineLocations.add(new Location(player.getWorld(), x2, y2, z1)); + outlineLocations.add(new Location(player.getWorld(), x1, y1, z1)); + outlineLocations.add(new Location(player.getWorld(), x2, y1, z1)); outlineLocations.add(new Location(player.getWorld(), x2, y1, z2)); outlineLocations.add(new Location(player.getWorld(), x1, y1, z2)); @@ -88,6 +88,7 @@ static void spawnParticleOutline(Particle primary, Particle secondary, Player pl particleLocation.setY(k); if (particleLocation.distance(player.getLocation()) < range) { particleBuilder.location(particleLocation); + particleBuilder.receivers(player); particleBuilder.count(1); particleBuilder.extra(0); particleBuilder.force(true); @@ -102,6 +103,7 @@ static void spawnParticleOutline(Particle primary, Particle secondary, Player pl Location particleLocation = new Location(player.getWorld(), corner.getX(), y, corner.getZ()); if (particleLocation.distance(player.getLocation()) < range) { particleBuilder2.location(particleLocation); + particleBuilder2.receivers(player); particleBuilder2.count(1); particleBuilder2.extra(0); particleBuilder2.force(true);