geforkt von Mirrors/Paper
35 Zeilen
2.4 KiB
Diff
35 Zeilen
2.4 KiB
Diff
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
|
|
index 3c5e18a5d136917c65bbfe1311c881d1b8bbd164..5ba7bf72f08980b1c16240a5376ad8c3c9379100 100644
|
|
--- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
|
+++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
|
@@ -407,8 +407,22 @@ public class EndDragonFight {
|
|
this.dragonEvent.setVisible(false);
|
|
this.spawnExitPortal(true);
|
|
this.spawnNewGateway();
|
|
+ // Paper start - Add DragonEggFormEvent
|
|
+ BlockPos eggPosition = this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.origin));
|
|
+ org.bukkit.craftbukkit.block.CraftBlockState eggState = org.bukkit.craftbukkit.block.CraftBlockStates.getBlockState(this.level, eggPosition);
|
|
+ eggState.setData(Blocks.DRAGON_EGG.defaultBlockState());
|
|
+ io.papermc.paper.event.block.DragonEggFormEvent eggEvent = new io.papermc.paper.event.block.DragonEggFormEvent(org.bukkit.craftbukkit.block.CraftBlock.at(this.level, eggPosition), eggState,
|
|
+ new org.bukkit.craftbukkit.boss.CraftDragonBattle(this));
|
|
+ // Paper end - Add DragonEggFormEvent
|
|
if (this.level.paperConfig().entities.behavior.enderDragonsDeathAlwaysPlacesDragonEgg || !this.previouslyKilled) { // Paper - Add toggle for always placing the dragon egg
|
|
- this.level.setBlockAndUpdate(this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.origin)), Blocks.DRAGON_EGG.defaultBlockState());
|
|
+ // Paper start - Add DragonEggFormEvent
|
|
+ // this.level.setBlockAndUpdate(this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.origin)), Blocks.DRAGON_EGG.defaultBlockState());
|
|
+ } else {
|
|
+ eggEvent.setCancelled(true);
|
|
+ }
|
|
+ if (eggEvent.callEvent()) {
|
|
+ eggEvent.getNewState().update(true);
|
|
+ // Paper end - Add DragonEggFormEvent
|
|
}
|
|
|
|
this.previouslyKilled = true;
|