/** * Calls the event executor * * @param event The event * @throws EventException If an event handler throws an exception. */ public void callEvent(final Event event) throws EventException { if (event instanceof Cancellable){ if (((Cancellable) event).isCancelled() && isIgnoringCancelled()){ return; } } executor.execute(listener, event); }
@Override protected boolean isCancelled(E event) { return ((Cancellable) event).isCancelled(); } }
@Override public boolean isCancelled(BindableEvent o) { if(o._GetObject() instanceof Cancellable) { return ((Cancellable) o._GetObject()).isCancelled(); } else { return false; } } }
/** * Calls the event executor * * @param event The event * @throws EventException If an event handler throws an exception. */ public void callEvent(final Event event) throws EventException { if (event instanceof Cancellable){ if (((Cancellable) event).isCancelled() && isIgnoringCancelled()){ return; } } executor.execute(listener, event); }
StringBuilder builder = new StringBuilder(); builder.append("Was the action blocked? ").append(cancellable.isCancelled() ? "YES" : "NO").append("\n");
/** * Fire the {@code eventToFire} and return whether the event was cancelled. * * @param eventToFire the event to fire * @param <T> an event that can be fired and is cancellable * @return true if the event was cancelled */ public static <T extends Event & Cancellable> boolean fireAndTestCancel(T eventToFire) { Bukkit.getServer().getPluginManager().callEvent(eventToFire); return eventToFire.isCancelled(); }
/** * Fire the {@code eventToFire} and cancel the original if the fired event * is cancelled. * * @param original the original event to potentially cancel * @param eventToFire the event to fire to consider cancelling the original event * @param <T> an event that can be fired and is cancellable * @return true if the event was fired and it caused the original event to be cancelled */ public static <T extends Event & Cancellable> boolean fireToCancel(Cancellable original, T eventToFire) { Bukkit.getServer().getPluginManager().callEvent(eventToFire); if (eventToFire.isCancelled()) { original.setCancelled(true); return true; } return false; }
/** * Fire the {@code eventToFire} and cancel the original if the fired event * is cancelled. * * @param original the original event to potentially cancel * @param eventToFire the event to fire to consider cancelling the original event * @param <T> an event that can be fired and is cancellable * @return true if the event was fired and it caused the original event to be cancelled */ public static <T extends Event & Cancellable> boolean fireItemEventToCancel(PlayerInteractEvent original, T eventToFire) { Bukkit.getServer().getPluginManager().callEvent(eventToFire); if (eventToFire.isCancelled()) { original.setUseItemInHand(Result.DENY); return true; } return false; }
@SuppressWarnings("unchecked") private static <T extends Event & Cancellable> void handleInventoryHolderUse(T originalEvent, Cause cause, InventoryHolder holder) { if (originalEvent.isCancelled()) { return; } if (holder instanceof Entity) { Events.fireToCancel(originalEvent, new UseEntityEvent(originalEvent, cause, (Entity) holder)); } else if (holder instanceof BlockState) { Events.fireToCancel(originalEvent, new UseBlockEvent(originalEvent, cause, ((BlockState) holder).getBlock())); } else if (holder instanceof DoubleChest) { InventoryHolder left = ((DoubleChest) holder).getLeftSide(); InventoryHolder right = ((DoubleChest) holder).getRightSide(); if (left instanceof Chest) { Events.fireToCancel(originalEvent, new UseBlockEvent(originalEvent, cause, ((Chest) left).getBlock())); } if (right instanceof Chest) { Events.fireToCancel(originalEvent, new UseBlockEvent(originalEvent, cause, ((Chest) right).getBlock())); } } }