Skip to content

Commit b4b84b1

Browse files
committed
Reapply "Fix LimboAPI login injection on Velocity-CTD (DEFAULT_PERMISSION_RESO…" (Elytrium#239)
This reverts commit 4f1d58d.
1 parent b845d00 commit b4b84b1

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

plugin/src/main/java/net/elytrium/limboapi/injection/login/LoginTasksQueue.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,9 +292,19 @@ private void connectToServer(Logger logger, ConnectedPlayer player, MinecraftCon
292292
PROFILE_FIELD = MethodHandles.privateLookupIn(ConnectedPlayer.class, MethodHandles.lookup())
293293
.findSetter(ConnectedPlayer.class, "profile", GameProfile.class);
294294

295-
Field defaultPermissionsField = ConnectedPlayer.class.getDeclaredField("DEFAULT_PERMISSIONS");
296-
defaultPermissionsField.setAccessible(true);
297-
DEFAULT_PERMISSIONS = (PermissionProvider) defaultPermissionsField.get(null);
295+
PermissionProvider defaultPermissions;
296+
try {
297+
Field defaultPermissionsField = ConnectedPlayer.class.getDeclaredField("DEFAULT_PERMISSIONS");
298+
defaultPermissionsField.setAccessible(true);
299+
defaultPermissions = (PermissionProvider) defaultPermissionsField.get(null);
300+
} catch (NoSuchFieldException e) {
301+
Field defaultPermissionResolverField = ConnectedPlayer.class.getDeclaredField("DEFAULT_PERMISSION_RESOLVER");
302+
defaultPermissionResolverField.setAccessible(true);
303+
PermissionFunction defaultResolver = (PermissionFunction) defaultPermissionResolverField.get(null);
304+
// Velocity-CTD does not expose DEFAULT_PERMISSIONS; adapt its resolver to the PermissionProvider contract.
305+
defaultPermissions = subject -> (PermissionFunction) defaultResolver;
306+
}
307+
DEFAULT_PERMISSIONS = defaultPermissions;
298308

299309
SET_PERMISSION_FUNCTION_METHOD = MethodHandles.privateLookupIn(ConnectedPlayer.class, MethodHandles.lookup())
300310
.findVirtual(ConnectedPlayer.class, "setPermissionFunction", MethodType.methodType(void.class, PermissionFunction.class));

0 commit comments

Comments
 (0)