public class BukkitReflection { public static ServerPlayer getServerPlayer(Player p) { var m = Reflection.getMethodCached("{obc}.entity.CraftPlayer", "getHandle"); return invoke(m, p); } private static T invoke(java.lang.reflect.Method m, Object instance, Object... args) { try { return (T) m.invoke(instance, args); } catch (Exception e) { throw new RuntimeException(e); } } }