From c4ea626e33567f6ea4d7b1d01bf494deedabc76c Mon Sep 17 00:00:00 2001 From: Luck Date: Fri, 11 Nov 2016 20:43:05 +0000 Subject: [PATCH] Fix PM migration --- .../migration/MigrationPermissionManager.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sponge/src/main/java/me/lucko/luckperms/sponge/migration/MigrationPermissionManager.java b/sponge/src/main/java/me/lucko/luckperms/sponge/migration/MigrationPermissionManager.java index 729fdc5e3..690ec8d31 100644 --- a/sponge/src/main/java/me/lucko/luckperms/sponge/migration/MigrationPermissionManager.java +++ b/sponge/src/main/java/me/lucko/luckperms/sponge/migration/MigrationPermissionManager.java @@ -38,6 +38,7 @@ import org.spongepowered.api.plugin.PluginContainer; import org.spongepowered.api.service.permission.PermissionService; import org.spongepowered.api.service.permission.Subject; +import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.List; import java.util.Optional; @@ -60,8 +61,17 @@ public class MigrationPermissionManager extends SubCommand { return CommandResult.STATE_ERROR; } - // Cast to PermissionService. PEX has all of it's damned classes defined as package private. - PermissionService pmService = (PermissionService) pm.get().getInstance().get(); + // Get PM's PermissionService + PermissionService pmService; + + try { + Class clazz = Class.forName("io.github.djxy.permissionmanager.PermissionService"); + Field instance = clazz.getDeclaredField("instance"); + pmService = (PermissionService) instance.get(null); + } catch (Throwable t) { + t.printStackTrace(); + return CommandResult.FAILURE; + } // Migrate groups log.info("PermissionManager Migration: Starting group migration.");