mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 07:48:53 +01:00
7438edc9a1
This adds a new Future based, Consumer<Chunk> based, and ability to control whether or not to generate to the Async Chunk API. Until Async Chunks merges, these API's are still synchronous, but this commit will allow plugins to start using the API's in use with the Async Chunks beta.
211 lines
5.9 KiB
Diff
211 lines
5.9 KiB
Diff
From 7388904ff97bc9690a82713c6d2dde88ae1551bc Mon Sep 17 00:00:00 2001
|
|
From: BillyGalbreath <Blake.Galbreath@GMail.com>
|
|
Date: Sat, 21 Jul 2018 01:51:05 -0500
|
|
Subject: [PATCH] EnderDragon Events
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFireballHitEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFireballHitEvent.java
|
|
new file mode 100644
|
|
index 000000000..ef2a8dab9
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFireballHitEvent.java
|
|
@@ -0,0 +1,72 @@
|
|
+package com.destroystokyo.paper.event.entity;
|
|
+
|
|
+import org.bukkit.entity.AreaEffectCloud;
|
|
+import org.bukkit.entity.DragonFireball;
|
|
+import org.bukkit.entity.LivingEntity;
|
|
+import org.bukkit.event.Cancellable;
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.bukkit.event.entity.EntityEvent;
|
|
+
|
|
+import java.util.Collection;
|
|
+
|
|
+/**
|
|
+ * Fired when a DragonFireball collides with a block/entity and spawns an AreaEffectCloud
|
|
+ */
|
|
+public class EnderDragonFireballHitEvent extends EntityEvent implements Cancellable {
|
|
+ private final Collection<LivingEntity> targets;
|
|
+ private final AreaEffectCloud areaEffectCloud;
|
|
+
|
|
+ public EnderDragonFireballHitEvent(DragonFireball fireball, Collection<LivingEntity> targets, AreaEffectCloud areaEffectCloud) {
|
|
+ super(fireball);
|
|
+ this.targets = targets;
|
|
+ this.areaEffectCloud = areaEffectCloud;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * The fireball involved in this event
|
|
+ */
|
|
+ @Override
|
|
+ public DragonFireball getEntity() {
|
|
+ return (DragonFireball) super.getEntity();
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * The living entities hit by fireball
|
|
+ *
|
|
+ * May be null if no entities were hit
|
|
+ *
|
|
+ * @return the targets
|
|
+ */
|
|
+ public Collection<LivingEntity> getTargets() {
|
|
+ return targets;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * @return The area effect cloud spawned in this collision
|
|
+ */
|
|
+ public AreaEffectCloud getAreaEffectCloud() {
|
|
+ return areaEffectCloud;
|
|
+ }
|
|
+
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ private boolean cancelled = false;
|
|
+
|
|
+ @Override
|
|
+ public boolean isCancelled() {
|
|
+ return cancelled;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setCancelled(boolean cancel) {
|
|
+ cancelled = cancel;
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFlameEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFlameEvent.java
|
|
new file mode 100644
|
|
index 000000000..d8c3ab330
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFlameEvent.java
|
|
@@ -0,0 +1,56 @@
|
|
+package com.destroystokyo.paper.event.entity;
|
|
+
|
|
+import org.bukkit.entity.AreaEffectCloud;
|
|
+import org.bukkit.entity.EnderDragon;
|
|
+import org.bukkit.event.Cancellable;
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.bukkit.event.entity.EntityEvent;
|
|
+
|
|
+/**
|
|
+ * Fired when an EnderDragon spawns an AreaEffectCloud by shooting flames
|
|
+ */
|
|
+public class EnderDragonFlameEvent extends EntityEvent implements Cancellable {
|
|
+ private final AreaEffectCloud areaEffectCloud;
|
|
+
|
|
+ public EnderDragonFlameEvent(EnderDragon enderDragon, AreaEffectCloud areaEffectCloud) {
|
|
+ super(enderDragon);
|
|
+ this.areaEffectCloud = areaEffectCloud;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * The enderdragon involved in this event
|
|
+ */
|
|
+ @Override
|
|
+ public EnderDragon getEntity() {
|
|
+ return (EnderDragon) super.getEntity();
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * @return The area effect cloud spawned in this collision
|
|
+ */
|
|
+ public AreaEffectCloud getAreaEffectCloud() {
|
|
+ return areaEffectCloud;
|
|
+ }
|
|
+
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ private boolean cancelled = false;
|
|
+
|
|
+ @Override
|
|
+ public boolean isCancelled() {
|
|
+ return cancelled;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setCancelled(boolean cancel) {
|
|
+ cancelled = cancel;
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonShootFireballEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonShootFireballEvent.java
|
|
new file mode 100644
|
|
index 000000000..aa70dda10
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonShootFireballEvent.java
|
|
@@ -0,0 +1,56 @@
|
|
+package com.destroystokyo.paper.event.entity;
|
|
+
|
|
+import org.bukkit.entity.DragonFireball;
|
|
+import org.bukkit.entity.EnderDragon;
|
|
+import org.bukkit.event.Cancellable;
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.bukkit.event.entity.EntityEvent;
|
|
+
|
|
+/**
|
|
+ * Fired when an EnderDragon shoots a fireball
|
|
+ */
|
|
+public class EnderDragonShootFireballEvent extends EntityEvent implements Cancellable {
|
|
+ private final DragonFireball fireball;
|
|
+
|
|
+ public EnderDragonShootFireballEvent(EnderDragon entity, DragonFireball fireball) {
|
|
+ super(entity);
|
|
+ this.fireball = fireball;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * The enderdragon shooting the fireball
|
|
+ */
|
|
+ @Override
|
|
+ public EnderDragon getEntity() {
|
|
+ return (EnderDragon) super.getEntity();
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * @return The fireball being shot
|
|
+ */
|
|
+ public DragonFireball getFireball() {
|
|
+ return fireball;
|
|
+ }
|
|
+
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ private boolean cancelled = false;
|
|
+
|
|
+ @Override
|
|
+ public boolean isCancelled() {
|
|
+ return cancelled;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setCancelled(boolean cancel) {
|
|
+ cancelled = cancel;
|
|
+ }
|
|
+}
|
|
--
|
|
2.19.0
|
|
|