Paper/patches/api/0434-More-DragonBattle-API.patch
Jake Potrebic 96d5e6ca48
Code Generation for TypedKeys (#9233)
Currently includes generated key holder classes for types
used in the Registry Modification API
2023-11-22 20:56:28 -08:00

56 lines
2.0 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
Date: Sun, 18 Dec 2022 13:40:17 -0800
Subject: [PATCH] More DragonBattle API
diff --git a/src/main/java/org/bukkit/boss/DragonBattle.java b/src/main/java/org/bukkit/boss/DragonBattle.java
index 8c55741cd17130686806c74627e11d464822053e..1d2ca775a243200bbcd4cbd8a750a9fb2628e73c 100644
--- a/src/main/java/org/bukkit/boss/DragonBattle.java
+++ b/src/main/java/org/bukkit/boss/DragonBattle.java
@@ -134,4 +134,44 @@ public interface DragonBattle {
*/
NONE;
}
+ // Paper start
+ /**
+ * Gets the number of gateways tracked by this DragonBattle.
+ * This starts out at 0 and will increase to 20, once for each
+ * kill of the {@link EnderDragon}.
+ *
+ * @return the number of gateways around the end island tracked by this
+ */
+ int getGatewayCount();
+
+ /**
+ * Tries to spawn a new end gateway using default game mechanics.
+ *
+ * @return true if successful, false if there is already the maximum.
+ */
+ boolean spawnNewGateway();
+
+ /**
+ * Spawns a new end gateway at the specified position. This will
+ * spawn regardless of the number of gateways already present.
+ *
+ * @param position position for the new gateway
+ */
+ void spawnNewGateway(@NotNull io.papermc.paper.math.Position position);
+
+ /**
+ * Gets the {@link org.bukkit.entity.EnderCrystal}s being used to respawn the dragon. If no respawn
+ * is ongoing, the list will be empty.
+ *
+ * @return the respawn crystals
+ */
+ java.util.@NotNull @org.jetbrains.annotations.Unmodifiable List<org.bukkit.entity.EnderCrystal> getRespawnCrystals();
+
+ /**
+ * Gets the {@link org.bukkit.entity.EnderCrystal}s on top of the pillars that heal the dragon.
+ *
+ * @return the healing crystals
+ */
+ java.util.@NotNull @org.jetbrains.annotations.Unmodifiable List<org.bukkit.entity.EnderCrystal> getHealingCrystals();
+ // Paper end
}