Beispiel #1
0
        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);
            });
        }
Beispiel #2
0
 public void OnEntityInteract(EntityInteractEvent e)
 {
     Log.Info(
         $"Got entity interact event (Source={e.SourcePlayer.ToString()} Target={e.Entity.EntityId}) Action={e.Action.ToString()}");
 }