From 01152d45486ab9a0211a984d854b05fa785ec885 Mon Sep 17 00:00:00 2001 From: bonan Date: Fri, 2 Jan 2026 17:23:37 +0100 Subject: [PATCH] teleport: Disable tp to jailed friends nabsbegone: Remove respawn location if set to nabworld --- .../modules/basics/command/TeleportCommand.java | 14 ++++++++++++++ .../modules/nabmode/command/NabsBeGoneCommand.java | 7 +++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/froobworld/nabsuite/modules/basics/command/TeleportCommand.java b/src/main/java/com/froobworld/nabsuite/modules/basics/command/TeleportCommand.java index 9db52a4..ae0f3ef 100644 --- a/src/main/java/com/froobworld/nabsuite/modules/basics/command/TeleportCommand.java +++ b/src/main/java/com/froobworld/nabsuite/modules/basics/command/TeleportCommand.java @@ -69,6 +69,20 @@ public Command.Builder populateBuilder(Command.Builder( + false, + (context, player) -> { + if (context.getSender().hasPermission(TELEPORT_ALL_PERM)) { + return true; + } + AdminModule adminModule = basicsModule.getPlugin().getModule(AdminModule.class); + if (adminModule != null) { + return adminModule.getPunishmentManager().getPunishments(player.getUniqueId()).getJailPunishment() == null; + } + return true; + }, + "Player has teleportation disabled" + ), new ArgumentPredicate<>( false, (context, player) -> { diff --git a/src/main/java/com/froobworld/nabsuite/modules/nabmode/command/NabsBeGoneCommand.java b/src/main/java/com/froobworld/nabsuite/modules/nabmode/command/NabsBeGoneCommand.java index 4e8f4b4..58118f3 100644 --- a/src/main/java/com/froobworld/nabsuite/modules/nabmode/command/NabsBeGoneCommand.java +++ b/src/main/java/com/froobworld/nabsuite/modules/nabmode/command/NabsBeGoneCommand.java @@ -43,8 +43,11 @@ public NabsBeGoneCommand(NabModeModule nabModeModule) { private void sendAway(Player player) { Location backLocation = basicsModule.getBackManager().getBackLocation(player); - if (backLocation == null || nabDimensionManager.getNabWorld().equals(backLocation.getWorld())) { - backLocation = player.getRespawnLocation(); + Location respawnLocation = player.getRespawnLocation(); + if (respawnLocation != null && nabDimensionManager.getNabWorld().equals(respawnLocation.getWorld())) { + player.setRespawnLocation(null); + } else if (backLocation == null || nabDimensionManager.getNabWorld().equals(backLocation.getWorld())) { + backLocation = respawnLocation; } if (backLocation == null) { backLocation = basicsModule.getSpawnManager().getSpawnLocation();