use of org.bukkit.event.Cancellable in project Conquer by xXAndrew28Xx.
the class FUEventForwarder method onFactionCreate.
@EventHandler
public void onFactionCreate(FactionCreateEvent event) {
ConquerFactionCreateEvent forwardEvent = new ConquerFactionCreateEvent(FUPlayer.get(plugin, event.getFPlayer()), event.getFactionTag());
callEvent(forwardEvent);
if (forwardEvent.isCancelled()) {
if (event instanceof Cancellable) {
((Cancellable) event).setCancelled(true);
}
}
}
use of org.bukkit.event.Cancellable in project Conquer by xXAndrew28Xx.
the class LFEventForwarder method onFactionsChange.
@EventHandler
public void onFactionsChange(EventFactionsChange event) {
Event forwardEvent;
if (event.getFactionNew().isWilderness()) {
forwardEvent = new ConquerFactionLeaveEvent(LFFaction.get(plugin, event.getFactionOld()), LFPlayer.get(plugin, event.getFPlayer()));
} else {
forwardEvent = new ConquerFactionJoinEvent(LFFaction.get(plugin, event.getFactionNew()), LFPlayer.get(plugin, event.getFPlayer()));
}
callEvent(forwardEvent);
if (((Cancellable) forwardEvent).isCancelled()) {
event.setCancelled(true);
}
}
use of org.bukkit.event.Cancellable in project TriggerReactor by wysohn.
the class JavaPluginBridge method createInterrupterForInv.
@Override
public ProcessInterrupter createInterrupterForInv(Object e, Interpreter interpreter, Map<UUID, Long> cooldowns, Map<IInventory, InventoryTrigger> inventoryMap) {
return new ProcessInterrupter() {
@Override
public boolean onNodeProcess(Node node) {
if (interpreter.isCooldown()) {
if (e instanceof InventoryInteractEvent) {
HumanEntity he = ((InventoryInteractEvent) e).getWhoClicked();
if (he instanceof Player) {
Player player = (Player) he;
UUID uuid = player.getUniqueId();
cooldowns.put(uuid, interpreter.getCooldownEnd());
}
}
return false;
}
// is still running after the inventory is closed.
if (e instanceof InventoryOpenEvent || e instanceof InventoryClickEvent) {
Inventory inv = ((InventoryEvent) e).getInventory();
// it's not GUI so stop execution
if (!inventoryMap.containsKey(new BukkitInventory(inv)))
return true;
}
return false;
}
@Override
public boolean onCommand(Object context, String command, Object[] args) {
if ("CALL".equals(command)) {
if (args.length < 1)
throw new RuntimeException("Need parameter [String] or [String, boolean]");
if (args[0] instanceof String) {
Trigger trigger = getNamedTriggerManager().getTriggerForName((String) args[0]);
if (trigger == null)
throw new RuntimeException("No trigger found for Named Trigger " + args[0]);
if (args.length > 1 && args[1] instanceof Boolean) {
trigger.setSync((boolean) args[1]);
} else {
trigger.setSync(true);
}
if (trigger.isSync()) {
trigger.activate(e, interpreter.getVars());
} else {
// use snapshot to avoid concurrent modification
trigger.activate(e, new HashMap<>(interpreter.getVars()));
}
return true;
} else {
throw new RuntimeException("Parameter type not match; it should be a String." + " Make sure to put double quotes, if you provided String literal.");
}
} else if ("CANCELEVENT".equals(command)) {
if (!interpreter.isSync())
throw new RuntimeException("CANCELEVENT is illegal in async mode!");
if (context instanceof Cancellable) {
((Cancellable) context).setCancelled(true);
return true;
} else {
throw new RuntimeException(context + " is not a Cancellable event!");
}
}
return false;
}
};
}
use of org.bukkit.event.Cancellable in project Conquer by xXAndrew28Xx.
the class MSEventForwarder method onClaimChange.
@EventHandler
public void onClaimChange(EventFactionsChunksChange event) {
ConquerFaction faction = MSFaction.get(plugin, event.getNewFaction());
ConquerPlayer player = MSPlayer.get(plugin, event.getMPlayer());
Set<PS> chunks = event.getChunks();
Map<PS, EventFactionsChunkChangeType> chunkTypeMap = event.getChunkType();
// Check if it's an unclaim all
if (chunks.size() == faction.getClaims().length && chunkTypeMap.values().stream().allMatch(type -> type == EventFactionsChunkChangeType.SELL)) {
ConquerUnclaimAllEvent forwardEvent = new ConquerUnclaimAllEvent(faction, player);
callEvent(forwardEvent);
if (forwardEvent.isCancelled()) {
event.setCancelled(true);
}
}
for (PS chunk : chunks) {
EventFactionsChunkChangeType type = chunkTypeMap.get(chunk);
ConquerClaim claim = MSClaim.get(plugin, chunk);
Event forwardEvent;
switch(type) {
case NONE:
continue;
case BUY:
forwardEvent = new ConquerLandClaimEvent(claim, true, faction, player);
break;
case CONQUER:
case PILLAGE:
forwardEvent = new ConquerLandClaimEvent(claim, false, faction, player);
break;
default:
return;
}
callEvent(forwardEvent);
if (((Cancellable) forwardEvent).isCancelled()) {
event.setCancelled(true);
return;
}
}
}
use of org.bukkit.event.Cancellable in project Conquer by xXAndrew28Xx.
the class MSEventForwarder method onMembershipChange.
@EventHandler
public void onMembershipChange(EventFactionsMembershipChange event) {
ConquerFaction faction = MSFaction.get(plugin, event.getNewFaction());
ConquerPlayer player = MSPlayer.get(plugin, event.getMPlayer());
Event forwardEvent;
switch(event.getReason()) {
case JOIN:
case CREATE:
forwardEvent = new ConquerFactionJoinEvent(faction, player);
break;
case LEAVE:
case KICK:
case DISBAND:
forwardEvent = new ConquerFactionLeaveEvent(faction, player);
break;
default:
return;
}
callEvent(forwardEvent);
if (((Cancellable) forwardEvent).isCancelled()) {
event.setCancelled(true);
}
}
Aggregations