This makes it easier for downstream projects (forks) to replace the version fetching system with their own. It is as simple as implementing an interface and overriding the default implementation of org.bukkit.UnsafeValues#getVersionFetcher() It also makes it easier for us to organize things like the version history feature. Lastly I have updated the paper implementation to check against the site API rather than against jenkins.
229 lines
6.3 KiB
Diff
229 lines
6.3 KiB
Diff
From c3dcb41ecc3c27a968a757ea4dda9a9d35c7661f 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 00000000..118c7b67
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFireballHitEvent.java
|
|
@@ -0,0 +1,79 @@
|
|
+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;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+import org.jetbrains.annotations.Nullable;
|
|
+
|
|
+/**
|
|
+ * Fired when a DragonFireball collides with a block/entity and spawns an AreaEffectCloud
|
|
+ */
|
|
+public class EnderDragonFireballHitEvent extends EntityEvent implements Cancellable {
|
|
+ @Nullable private final Collection<LivingEntity> targets;
|
|
+ @NotNull private final AreaEffectCloud areaEffectCloud;
|
|
+
|
|
+ public EnderDragonFireballHitEvent(@NotNull DragonFireball fireball, @Nullable Collection<LivingEntity> targets, @NotNull AreaEffectCloud areaEffectCloud) {
|
|
+ super(fireball);
|
|
+ this.targets = targets;
|
|
+ this.areaEffectCloud = areaEffectCloud;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * The fireball involved in this event
|
|
+ */
|
|
+ @NotNull
|
|
+ @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
|
|
+ */
|
|
+ @Nullable
|
|
+ public Collection<LivingEntity> getTargets() {
|
|
+ return targets;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * @return The area effect cloud spawned in this collision
|
|
+ */
|
|
+ @NotNull
|
|
+ public AreaEffectCloud getAreaEffectCloud() {
|
|
+ return areaEffectCloud;
|
|
+ }
|
|
+
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+
|
|
+ @NotNull
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ 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 00000000..1915177f
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFlameEvent.java
|
|
@@ -0,0 +1,61 @@
|
|
+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;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * Fired when an EnderDragon spawns an AreaEffectCloud by shooting flames
|
|
+ */
|
|
+public class EnderDragonFlameEvent extends EntityEvent implements Cancellable {
|
|
+ @NotNull private final AreaEffectCloud areaEffectCloud;
|
|
+
|
|
+ public EnderDragonFlameEvent(@NotNull EnderDragon enderDragon, @NotNull AreaEffectCloud areaEffectCloud) {
|
|
+ super(enderDragon);
|
|
+ this.areaEffectCloud = areaEffectCloud;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * The enderdragon involved in this event
|
|
+ */
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public EnderDragon getEntity() {
|
|
+ return (EnderDragon) super.getEntity();
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * @return The area effect cloud spawned in this collision
|
|
+ */
|
|
+ @NotNull
|
|
+ public AreaEffectCloud getAreaEffectCloud() {
|
|
+ return areaEffectCloud;
|
|
+ }
|
|
+
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+
|
|
+ @NotNull
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ 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 00000000..8414bd80
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonShootFireballEvent.java
|
|
@@ -0,0 +1,61 @@
|
|
+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;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * Fired when an EnderDragon shoots a fireball
|
|
+ */
|
|
+public class EnderDragonShootFireballEvent extends EntityEvent implements Cancellable {
|
|
+ @NotNull private final DragonFireball fireball;
|
|
+
|
|
+ public EnderDragonShootFireballEvent(@NotNull EnderDragon entity, @NotNull DragonFireball fireball) {
|
|
+ super(entity);
|
|
+ this.fireball = fireball;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * The enderdragon shooting the fireball
|
|
+ */
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public EnderDragon getEntity() {
|
|
+ return (EnderDragon) super.getEntity();
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * @return The fireball being shot
|
|
+ */
|
|
+ @NotNull
|
|
+ public DragonFireball getFireball() {
|
|
+ return fireball;
|
|
+ }
|
|
+
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+
|
|
+ @NotNull
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ 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.21.0
|
|
|