diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEventListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEventListener.java index 1da714713..161ff8a91 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEventListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEventListener.java @@ -598,7 +598,11 @@ public class PlayerEventListener implements Listener { // i.e. untrusted-visit can override deny-teleport // this is acceptable, because otherwise it wouldn't make sense to have both flags set if (result || (plot.getFlag(UntrustedVisitFlag.class) && plot.getHomeSynchronous().equals(BukkitUtil.adaptComplete(to)))) { - plotListener.plotEntry(pp, plot); + // returns false if the player is not allowed to enter the plot (if they are denied, for example) + // don't let the move event cancel the entry after teleport, but rather catch and cancel early (#4647) + if (!plotListener.plotEntry(pp, plot)) { + event.setCancelled(true); + } } else { pp.sendMessage( TranslatableCaption.of("deny.no_enter"), diff --git a/build.gradle.kts b/build.gradle.kts index 8cb092c40..a3451ae65 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -206,14 +206,14 @@ tasks.getByName("jar") { enabled = false } -val supportedVersions = listOf("1.19.4", "1.20.6", "1.21.1", "1.21.3", "1.21.4") +val supportedVersions = listOf("1.19.4", "1.20.6", "1.21.1", "1.21.3", "1.21.4", "1.21.5") tasks { register("cacheLatestFaweArtifact") { val lastSuccessfulBuildUrl = uri("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/api/json").toURL() val artifact = ((JsonSlurper().parse(lastSuccessfulBuildUrl) as Map<*, *>)["artifacts"] as List<*>) .map { it as Map<*, *> } .map { it["fileName"] as String } - .first { it -> it.contains("Bukkit") } + .first { it -> it.contains("Paper") } project.ext["faweArtifact"] = artifact }