From d8c002f4233bd31e971ca4674884950253c33a97 Mon Sep 17 00:00:00 2001 From: Sven Date: Mon, 8 Dec 2025 13:28:32 +0100 Subject: [PATCH 1/6] Remove broken onDisable async task waiter --- src/main/kotlin/net/trueog/antipierayog/AntiPieRay.kt | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/main/kotlin/net/trueog/antipierayog/AntiPieRay.kt b/src/main/kotlin/net/trueog/antipierayog/AntiPieRay.kt index b3d088a..1a19377 100644 --- a/src/main/kotlin/net/trueog/antipierayog/AntiPieRay.kt +++ b/src/main/kotlin/net/trueog/antipierayog/AntiPieRay.kt @@ -113,13 +113,5 @@ class AntiPieRay : JavaPlugin() { override fun onDisable() { Bukkit.getScheduler().cancelTasks(this) PacketEvents.getAPI().terminate() - - while (getActiveTasks() > 0) { - Thread.sleep(25) - } - } - - fun getActiveTasks(): Int { - return Bukkit.getScheduler().activeWorkers.count { it.owner == this } } } -- 2.47.3 From 0641966f38f3f920adc94aa9e263e4af44326290 Mon Sep 17 00:00:00 2001 From: Sven Date: Thu, 22 Jan 2026 13:26:54 +0100 Subject: [PATCH 2/6] Use NMS to get the block type much faster --- build.gradle.kts | 6 ++++++ .../net/trueog/antipierayog/BlockEntityHider.kt | 15 ++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index e5d2bcd..1970106 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,6 +3,7 @@ import java.io.BufferedReader plugins { eclipse kotlin("jvm") version "2.2.20" + id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" id("com.diffplug.spotless") version "7.0.4" id("com.gradleup.shadow") version "8.3.6" } @@ -32,12 +33,17 @@ repositories { } dependencies { + paperweight.paperDevBundle("1.19.4-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:1.19.4-R0.1-SNAPSHOT") implementation("com.github.retrooper:packetevents-spigot:2.9.5") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") } +paperweight.reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.REOBF_PRODUCTION + tasks { + assemble { dependsOn(reobfJar) } build { dependsOn(spotlessApply) dependsOn(shadowJar) diff --git a/src/main/kotlin/net/trueog/antipierayog/BlockEntityHider.kt b/src/main/kotlin/net/trueog/antipierayog/BlockEntityHider.kt index b70abf1..ee7a81f 100644 --- a/src/main/kotlin/net/trueog/antipierayog/BlockEntityHider.kt +++ b/src/main/kotlin/net/trueog/antipierayog/BlockEntityHider.kt @@ -5,10 +5,14 @@ import java.util.concurrent.ConcurrentHashMap import kotlin.math.abs import kotlin.math.ceil import kotlin.math.min +import net.minecraft.core.BlockPos +import net.minecraft.server.level.ServerLevel import org.bukkit.Bukkit import org.bukkit.Location import org.bukkit.Material import org.bukkit.World +import org.bukkit.block.Block +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld import org.bukkit.entity.Player import org.bukkit.util.BlockIterator import org.bukkit.util.Vector @@ -85,6 +89,15 @@ class BlockEntityHider { Vector(-0.49, -0.49, -0.49), ) + val Block.typeFast: Material + get() { + val world = (world as CraftWorld).handle + val serverChunkCache = (world as ServerLevel).getChunkSource() + val chunk = serverChunkCache.getChunkAtIfLoadedMainThread(this.x shr 4, this.z shr 4) + val blockState = chunk.getBlockState(BlockPos(this.x, this.y, this.z)) + return blockState.bukkitMaterial + } + fun canSee(eye: Location, loc: Location): Set? { // Get the center val blockCenterLoc = loc.clone().add(0.5, 0.5, 0.5) @@ -125,7 +138,7 @@ class BlockEntityHider { if (hitBlock == loc.block) { break } - val hitBlockType = hitBlock.type + val hitBlockType = hitBlock.typeFast if (!isAir(hitBlockType) && !isLiquid(hitBlockType) && !isTransparent(hitBlockType)) { if (eyeOffset == Vector(0, 0, 0)) { blockingBlocks += hitBlock.location.toBlockPosition() -- 2.47.3 From bf808d57e547d323c2d796571891e6e9074fe187 Mon Sep 17 00:00:00 2001 From: Sven Date: Thu, 22 Jan 2026 13:43:36 +0100 Subject: [PATCH 3/6] Make variable name clearer --- src/main/kotlin/net/trueog/antipierayog/BlockEntityHider.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/net/trueog/antipierayog/BlockEntityHider.kt b/src/main/kotlin/net/trueog/antipierayog/BlockEntityHider.kt index ee7a81f..89193fc 100644 --- a/src/main/kotlin/net/trueog/antipierayog/BlockEntityHider.kt +++ b/src/main/kotlin/net/trueog/antipierayog/BlockEntityHider.kt @@ -91,8 +91,8 @@ class BlockEntityHider { val Block.typeFast: Material get() { - val world = (world as CraftWorld).handle - val serverChunkCache = (world as ServerLevel).getChunkSource() + val craftWorld = (world as CraftWorld).handle + val serverChunkCache = (craftWorld as ServerLevel).getChunkSource() val chunk = serverChunkCache.getChunkAtIfLoadedMainThread(this.x shr 4, this.z shr 4) val blockState = chunk.getBlockState(BlockPos(this.x, this.y, this.z)) return blockState.bukkitMaterial -- 2.47.3 From fc5aca4a1463c61aeff70a079160a983a7d3e7ca Mon Sep 17 00:00:00 2001 From: Sven Date: Thu, 22 Jan 2026 13:47:52 +0100 Subject: [PATCH 4/6] Downgrade Paperweight userdev to work with Gradle 8.14.3 --- build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle.kts b/build.gradle.kts index 6de7c03..55e5390 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,6 +4,7 @@ plugins { eclipse kotlin("jvm") version "2.1.21" id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" + id("io.papermc.paperweight.userdev") version "2.0.0-beta.18" id("com.diffplug.spotless") version "8.1.0" id("com.gradleup.shadow") version "8.3.9" } -- 2.47.3 From 6f30645b336cb0823adbe239d3a6b358ad8d6fce Mon Sep 17 00:00:00 2001 From: Sven Date: Thu, 22 Jan 2026 13:48:04 +0100 Subject: [PATCH 5/6] Update Kotlin to 2.2.20 --- build.gradle.kts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 55e5390..3a33e02 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,8 +2,7 @@ import java.io.BufferedReader plugins { eclipse - kotlin("jvm") version "2.1.21" - id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" + kotlin("jvm") version "2.2.20" id("io.papermc.paperweight.userdev") version "2.0.0-beta.18" id("com.diffplug.spotless") version "8.1.0" id("com.gradleup.shadow") version "8.3.9" -- 2.47.3 From 67747b34f0f8bbbdaabe1c4afe1a4a3333ec518f Mon Sep 17 00:00:00 2001 From: Sven Date: Thu, 22 Jan 2026 13:50:37 +0100 Subject: [PATCH 6/6] Update PacketEvents to 2.11.1 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3a33e02..84023d5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -36,7 +36,7 @@ dependencies { paperweight.paperDevBundle("1.19.4-R0.1-SNAPSHOT") compileOnly("io.papermc.paper:paper-api:1.19.4-R0.1-SNAPSHOT") - implementation("com.github.retrooper:packetevents-spigot:2.9.5") + implementation("com.github.retrooper:packetevents-spigot:2.11.1") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") } -- 2.47.3