Ну вполне логично можно догадаться, что один из обьектов в выражении null
Либо getActiveChar(), либо attacker, либо player, либо attackerPlayer
Костыль - добавить проверку на то, что обьект не нулл на все выражения типо if ((getActiveChar() != null && getActiveChar().isPlayer()) ... итд
Не костыль - поставить брейкпоинт, посмотреть что конкретно там null, выяснить почему.