From 4772ca3022c49bfab37c703f72cbca7654fb5848 Mon Sep 17 00:00:00 2001 From: Wouter Gritter Date: Fri, 14 Aug 2026 12:53:49 +0200 Subject: [PATCH] Bump lmbda to 3.0.0, defining generated handlers with the proxy's lookup instead of the plugin's Reapplies the lmbda 3.0.0 bump reverted in f918d0d6. --- gradle/libs.versions.toml | 2 +- .../com/velocitypowered/proxy/event/CustomHandlerAdapter.java | 4 +--- .../com/velocitypowered/proxy/event/VelocityEventManager.java | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 985c9d97..9c12ac2d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ kyori-ansi = "net.kyori:ansi:1.1.1" guava = "com.google.guava:guava:33.6.0-jre" gson = "com.google.code.gson:gson:2.14.0" guice = "com.google.inject:guice:7.0.0" -lmbda = "org.lanternpowered:lmbda:2.0.0" +lmbda = "org.lanternpowered:lmbda:3.0.0" log4j-api = { module = "org.apache.logging.log4j:log4j-api", version.ref = "log4j" } log4j-core = { module = "org.apache.logging.log4j:log4j-core", version.ref = "log4j" } log4j-slf4j-impl = { module = "org.apache.logging.log4j:log4j-slf4j2-impl", version.ref = "log4j" } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/event/CustomHandlerAdapter.java b/proxy/src/main/java/com/velocitypowered/proxy/event/CustomHandlerAdapter.java index 8b9df6dd..88e731f0 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/event/CustomHandlerAdapter.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/event/CustomHandlerAdapter.java @@ -60,9 +60,7 @@ final class CustomHandlerAdapter { UntargetedEventHandler buildUntargetedHandler(final Method method) throws IllegalAccessException { final MethodHandle methodHandle = methodHandlesLookup.unreflect(method); - final MethodHandles.Lookup defineLookup = MethodHandles.privateLookupIn( - method.getDeclaringClass(), methodHandlesLookup); - final LambdaType lambdaType = functionType.defineClassesWith(defineLookup); + final LambdaType lambdaType = functionType.defineClassesWith(methodHandlesLookup); final F invokeFunction = LambdaFactory.create(lambdaType, methodHandle); final BiFunction handlerFunction = handlerBuilder.apply(invokeFunction); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/event/VelocityEventManager.java b/proxy/src/main/java/com/velocitypowered/proxy/event/VelocityEventManager.java index 9d54b2d0..b56b907c 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/event/VelocityEventManager.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/event/VelocityEventManager.java @@ -243,7 +243,7 @@ public class VelocityEventManager implements EventManager { } else { type = untargetedVoidHandlerType; } - return LambdaFactory.create(type.defineClassesWith(lookup), methodHandle); + return LambdaFactory.create(type.defineClassesWith(methodHandlesLookup), methodHandle); } static final class MethodHandlerInfo {