Ладно я тогда напишухаю правильный ответ))
Вообщем Bukkit и FML используют разные класс лодеры. Чтоб ты понимал Foo(загруженный Bukkit).class != Foo(загруженный FML).class.
То есть если я сделаю поле классу типа такого public static final bar = Math.random();
и загружу этот класс одним и другим лодером, значения будут отличаться(9(
Это пожалуй главная проблема)) Поэтому остается только рефлекшеном. Ни в коем случае не подгружай либу баккита в мод, т.к. когда она попадет в контекст, метод Class.forName вернет класс подгруженый форджем.
P.S. Так как рефлекшен это медленно и не удобно у меня уже довольно давно появилась навязчивая идея сделать класс который будет подгружен баккит лодером Сlass.forName("some.bukkit.Class").getClassLoader()
и через него взаимодействовать с баккитом, но так как я это еще не делал советовать не могу))