admin Сделал вывод, получил это:
Нажатие ПКМ:
class org.spongepowered.api.event.InteractBlockEvent$Secondary$MainHand$Impl
class org.spongepowered.api.event.InteractBlockEvent$Secondary$OffHand$Impl
Нажатие ЛКМ:
class org.spongepowered.api.event.InteractBlockEvent$Primary$MainHand$Impl
Ну я так понимаю, причина этому такая, что у события InteractBlockEvent.Secondary
источником может быть как MainHand
так и OffHand
, а в случае с InteractBlockEvent.Primary
такого быть не может. Вроде логично, но почему-то сразу очевидным не было. Да и странно что сам интерфейс Primary
имеет такую конструкцию, но сколько я не пытался, я не смог вызвать сразу два события для Primary
.
interface Primary extends InteractBlockEvent, HandInteractEvent {
/**
* A {@link Primary} event where the interaction is from the client's main hand.
*/
interface MainHand extends Primary {}
/**
* A {@link Primary} event where the interaction is from the client's off hand.
*/
interface OffHand extends Primary {}
}
Собственно вопрос: как тогда слушать любое ПКМ(MainHand
так и OffHand
) так, чтобы рука значения не имела и не было дубликата события?