protected override void HandleItemUseOnEntityTransaction(ItemUseOnEntityTransaction transaction) { if (!Level.TryGetEntity <Entity>(transaction.EntityId, out var entity) || !entity.IsSpawned || entity.HealthManager.IsDead || entity.HealthManager.IsInvulnerable) { return; } // var entity = Level.GetEntity(transaction.EntityId); // if (entity == null || !entity.IsSpawned || entity.HealthManager.IsDead || entity.HealthManager.IsInvulnerable) // return; var actionType = (McpeInventoryTransaction.ItemUseOnEntityAction)transaction.ActionType; EntityInteractEvent interactEvent = new EntityInteractEvent(entity, this, actionType); EventDispatcher.DispatchEventAsync(interactEvent).Then(result => { if (result.IsCancelled) { return; } base.HandleItemUseOnEntityTransaction(transaction); }); }
public void OnEntityInteract(EntityInteractEvent e) { Log.Info( $"Got entity interact event (Source={e.SourcePlayer.ToString()} Target={e.Entity.EntityId}) Action={e.Action.ToString()}"); }