From 532e67c4cae2e897733c32c4b13eb369e5a67316 Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Thu, 13 Nov 2025 19:22:59 +0100 Subject: [PATCH] experimental changes to allow running on paper. Paper finally fixed passenger teleportation mechanic and doesn't block portal entry for players with passengers, so technically it's possible to run on paper and without a couple of workarounds that were needed to circumvent random issues --- build.gradle.kts | 2 +- .../nameplates/NameplateManager.java | 53 ------------------- src/main/resources/paper-plugin.yml | 2 +- 3 files changed, 2 insertions(+), 55 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 4aa083a..0b1327e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "me.youhavetrouble" -version = "1.17.0" +version = "1.18.0-paper-test" description = "Nameplates using display entities" java { diff --git a/src/main/java/me/youhavetrouble/notjustnameplates/nameplates/NameplateManager.java b/src/main/java/me/youhavetrouble/notjustnameplates/nameplates/NameplateManager.java index 05a921d..1dd017e 100644 --- a/src/main/java/me/youhavetrouble/notjustnameplates/nameplates/NameplateManager.java +++ b/src/main/java/me/youhavetrouble/notjustnameplates/nameplates/NameplateManager.java @@ -2,17 +2,13 @@ package me.youhavetrouble.notjustnameplates.nameplates; import me.youhavetrouble.notjustnameplates.NotJustNameplates; import me.youhavetrouble.notjustnameplates.displays.DisplayContent; -import net.minecraft.world.phys.AABB; import org.bukkit.*; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.entity.TextDisplay; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.*; -import org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent; import java.util.*; @@ -60,55 +56,6 @@ public class NameplateManager implements Listener { nameplate.update(); } - @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) - public void onPlayerMove(PlayerMoveEvent event) { - Player player = event.getPlayer(); - - if (!event.hasChangedPosition()) return; - - Nameplate nameplate = nameplates.get(event.getPlayer().getUniqueId()); - if (nameplate == null) return; - - CraftPlayer craftPlayer = (CraftPlayer) player; - AABB playerBox = craftPlayer.getHandle().getBoundingBox(); - World world = player.getWorld(); - Location loc1 = new Location(world, playerBox.maxX, playerBox.maxY, playerBox.maxZ); - Location loc2 = loc1.clone().subtract(0, 1, 0); - Location loc3 = new Location(world, playerBox.minX, playerBox.minY, playerBox.minZ); - Location loc4 = loc3.clone().add(0, 1, 0); - - boolean inPortal = false; - for (Location loc : new Location[]{loc1, loc2, loc3, loc4}) { - Block block = loc.getBlock(); - if ( - block.getType() == Material.NETHER_PORTAL - || block.getType() == Material.END_PORTAL - || block.getType() == Material.END_GATEWAY - ) { - inPortal = true; - break; - } - } - - if (inPortal) { - nameplate.remove(); - nameplate.forceHide = true; - return; - } - - nameplate.forceHide = false; - } - - @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) - public void onPlayerTeleportHindered(EntityTeleportHinderedEvent event) { - if (!(event.getEntity() instanceof Player player)) return; - if (event.getReason() != EntityTeleportHinderedEvent.Reason.IS_VEHICLE) return; - Nameplate nameplate = nameplates.get(player.getUniqueId()); - if (nameplate == null) return; - nameplate.remove(); - event.setShouldRetry(true); - } - public void reloadNameplates() { this.nameplates.values().forEach(Nameplate::remove); this.nameplates.clear(); diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/paper-plugin.yml index 567a222..295af59 100644 --- a/src/main/resources/paper-plugin.yml +++ b/src/main/resources/paper-plugin.yml @@ -1,7 +1,7 @@ name: NotJustNameplates version: "${version}" main: me.youhavetrouble.notjustnameplates.NotJustNameplates -api-version: "1.21" +api-version: "1.21.10" authors: ["YouHaveTrouble"] description: Nameplates using display entities website: https://youhavetrouble.me