У меня есть событие EntityInteract
@SubscribeEvent(priority = EventPriority.HIGHEST)
public static void EntityInteractEvent(PlayerInteractEvent.EntityInteract event) {
if (event.getPlayer() != null && event.getWorld() != null && event.getTarget() instanceof AbstractHorseEntity) {
PlayerEntity player = event.getPlayer();
AbstractHorseEntity horseEntity = (AbstractHorseEntity) event.getTarget();
if (player.isCrouching()) {
Item main = player.getHeldItemMainhand().getItem();
for (Item a : allowed) {
if (main.equals(a)) {
String[] result = new HorseStats().getHorseStats(horseEntity);
for (String s : result) {
if (s != null && !s.isEmpty())
player.sendMessage(new TranslationTextComponent(s));
}
event.setCancellationResult(ActionResultType.SUCCESS);
event.setResult(Event.Result.DENY);
event.setCanceled(true);
return;
}
}
}
}
}
Оно не отменяется, когда я нажимаю на лошадь с разрешенным предметом. Таким образом Сервер все еще получает щелчок, и инвентарь Лошади открыт.
Как я могу предотвратить это?
Событие корректно инициируется и обрабатывается, сообщения ChatMessages печатаются на клиенте.