2021-06-14 21:58:32 +02:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Trigary <trigary0@gmail.com>
Date: Mon, 25 Jan 2021 14:53:57 +0100
2024-01-19 22:13:42 +01:00
Subject: [PATCH] Add DragonEggFormEvent
2021-06-14 21:58:32 +02:00
diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
2024-08-16 21:45:07 +02:00
index 412838a4eb3d29da5955bf1c279f66a2e7ccad12..0455c5fd2bb7955a0f343468b4bea760d6d35310 100644
2021-06-14 21:58:32 +02:00
--- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
+++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
2024-08-16 21:45:07 +02:00
@@ -409,8 +409,22 @@ public class EndDragonFight {
2021-06-14 21:58:32 +02:00
this.dragonEvent.setVisible(false);
this.spawnExitPortal(true);
this.spawnNewGateway();
2024-01-19 22:13:42 +01:00
+ // Paper start - Add DragonEggFormEvent
2023-06-08 02:54:54 +02:00
+ BlockPos eggPosition = this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.origin));
2021-10-02 19:21:49 +02:00
+ org.bukkit.craftbukkit.block.CraftBlockState eggState = org.bukkit.craftbukkit.block.CraftBlockStates.getBlockState(this.level, eggPosition);
2021-06-14 21:58:32 +02:00
+ eggState.setData(Blocks.DRAGON_EGG.defaultBlockState());
2021-11-24 20:33:17 +01:00
+ io.papermc.paper.event.block.DragonEggFormEvent eggEvent = new io.papermc.paper.event.block.DragonEggFormEvent(org.bukkit.craftbukkit.block.CraftBlock.at(this.level, eggPosition), eggState,
2022-06-09 10:51:45 +02:00
+ new org.bukkit.craftbukkit.boss.CraftDragonBattle(this));
2024-01-19 22:13:42 +01:00
+ // Paper end - Add DragonEggFormEvent
if (this.level.paperConfig().entities.behavior.enderDragonsDeathAlwaysPlacesDragonEgg || !this.previouslyKilled) { // Paper - Add toggle for always placing the dragon egg
2023-06-08 02:54:54 +02:00
- this.level.setBlockAndUpdate(this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.origin)), Blocks.DRAGON_EGG.defaultBlockState());
2024-01-19 22:13:42 +01:00
+ // Paper start - Add DragonEggFormEvent
2023-06-08 02:54:54 +02:00
+ // this.level.setBlockAndUpdate(this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.origin)), Blocks.DRAGON_EGG.defaultBlockState());
2021-06-14 21:58:32 +02:00
+ } else {
+ eggEvent.setCancelled(true);
2023-03-23 22:57:03 +01:00
+ }
2021-06-14 21:58:32 +02:00
+ if (eggEvent.callEvent()) {
+ eggEvent.getNewState().update(true);
2024-01-19 22:13:42 +01:00
+ // Paper end - Add DragonEggFormEvent
2023-03-23 22:57:03 +01:00
}
2021-06-14 21:58:32 +02:00
this.previouslyKilled = true;