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
|
|
|
|
Subject: [PATCH] add DragonEggFormEvent
|
|
|
|
|
|
|
|
|
|
|
|
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
|
2023-09-10 04:28:03 +02:00
|
|
|
index bdd394d5fc5b08d0f40c75924e5ad22ec6637af8..5c0767a0bc37b5f0aa3f8892826e58f93f11cf97 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
|
2023-08-06 02:21:59 +02:00
|
|
|
@@ -407,9 +407,23 @@ public class EndDragonFight {
|
2021-06-14 21:58:32 +02:00
|
|
|
this.dragonEvent.setVisible(false);
|
|
|
|
this.spawnExitPortal(true);
|
|
|
|
this.spawnNewGateway();
|
|
|
|
+ // Paper start - 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));
|
2021-06-14 21:58:32 +02:00
|
|
|
+ // Paper end - DragonEggFormEvent
|
2022-06-09 10:51:45 +02:00
|
|
|
if (this.level.paperConfig().entities.behavior.enderDragonsDeathAlwaysPlacesDragonEgg || !this.previouslyKilled) { // Paper - always place 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());
|
2021-06-14 21:58:32 +02:00
|
|
|
+ // Paper start - 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);
|
2023-03-23 22:57:03 +01:00
|
|
|
}
|
2021-06-14 21:58:32 +02:00
|
|
|
+ // Paper end - DragonEggFormEvent
|
|
|
|
|
|
|
|
this.previouslyKilled = true;
|
|
|
|
this.dragonKilled = true;
|