Move patches around
This commit is contained in:
117
patches/server-remapped/add-DragonEggFormEvent.patch
Normal file
117
patches/server-remapped/add-DragonEggFormEvent.patch
Normal file
@@ -0,0 +1,117 @@
|
||||
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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
|
||||
@@ -0,0 +0,0 @@ import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfigur
|
||||
import net.minecraft.world.phys.AABB;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
+import io.papermc.paper.event.block.DragonEggFormEvent; // Paper - DragonEggFormEvent
|
||||
|
||||
public class EndDragonFight {
|
||||
|
||||
@@ -0,0 +0,0 @@ public class EndDragonFight {
|
||||
this.dragonEvent.setVisible(false);
|
||||
this.spawnExitPortal(true);
|
||||
this.spawnNewGateway();
|
||||
+ // Paper start - DragonEggFormEvent
|
||||
+ BlockPos eggPosition = this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getPosition());
|
||||
+ org.bukkit.craftbukkit.block.CraftBlock eggBlock = org.bukkit.craftbukkit.block.CraftBlock.at(this.level, eggPosition);
|
||||
+ org.bukkit.craftbukkit.block.CraftBlockState eggState = new org.bukkit.craftbukkit.block.CraftBlockState(eggBlock);
|
||||
+ eggState.setData(Blocks.DRAGON_EGG.defaultBlockState());
|
||||
+ DragonEggFormEvent eggEvent = new DragonEggFormEvent(eggBlock, eggState,
|
||||
+ new org.bukkit.craftbukkit.boss.CraftDragonBattle(this));
|
||||
+ // Paper end - DragonEggFormEvent
|
||||
if (this.level.paperConfig.enderDragonsDeathAlwaysPlacesDragonEgg || !this.previouslyKilled) { // Paper - always place dragon egg
|
||||
- this.level.setBlockAndUpdate(this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.END_PODIUM_LOCATION), Blocks.DRAGON_EGG.defaultBlockState());
|
||||
+ // Paper start - DragonEggFormEvent
|
||||
+ //this.world.setTypeUpdate(this.world.getHighestBlockYAt(HeightMap.Type.MOTION_BLOCKING, WorldGenEndTrophy.a), Blocks.DRAGON_EGG.getBlockData());
|
||||
+ } else {
|
||||
+ eggEvent.setCancelled(true);
|
||||
+ }
|
||||
+ if (eggEvent.callEvent()) {
|
||||
+ eggEvent.getNewState().update(true);
|
||||
}
|
||||
+ // Paper end - DragonEggFormEvent
|
||||
|
||||
this.previouslyKilled = true;
|
||||
this.dragonKilled = true;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/EndPodiumFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/EndPodiumFeature.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/levelgen/feature/EndPodiumFeature.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/EndPodiumFeature.java
|
||||
@@ -0,0 +0,0 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
|
||||
|
||||
public class EndPodiumFeature extends Feature<NoneFeatureConfiguration> {
|
||||
|
||||
- public static final BlockPos END_PODIUM_LOCATION = BlockPos.ZERO;
|
||||
+ public static final BlockPos END_PODIUM_LOCATION = BlockPos.ZERO; public static BlockPos getPosition() { return END_PODIUM_LOCATION; } // Paper - OBFHELPER
|
||||
private final boolean active;
|
||||
|
||||
public EndPodiumFeature(boolean open) {
|
||||
@@ -0,0 +0,0 @@ public class EndPodiumFeature extends Feature<NoneFeatureConfiguration> {
|
||||
this.active = open;
|
||||
}
|
||||
|
||||
- public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, NoneFeatureConfiguration config) {
|
||||
- Iterator iterator = BlockPos.betweenClosed(new BlockPos(pos.getX() - 4, pos.getY() - 1, pos.getZ() - 4), new BlockPos(pos.getX() + 4, pos.getY() + 32, pos.getZ() + 4)).iterator();
|
||||
+ public boolean generate(WorldGenLevel generatoraccessseed, ChunkGenerator chunkgenerator, Random random, BlockPos blockposition, NoneFeatureConfiguration worldgenfeatureemptyconfiguration) { // Paper - decompile fix
|
||||
+ Iterator iterator = BlockPos.betweenClosed(new BlockPos(blockposition.getX() - 4, blockposition.getY() - 1, blockposition.getZ() - 4), new BlockPos(blockposition.getX() + 4, blockposition.getY() + 32, blockposition.getZ() + 4)).iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
BlockPos blockposition1 = (BlockPos) iterator.next();
|
||||
- boolean flag = blockposition1.closerThan((Vec3i) pos, 2.5D);
|
||||
+ boolean flag = blockposition1.closerThan((Vec3i) blockposition, 2.5D);
|
||||
|
||||
- if (flag || blockposition1.closerThan((Vec3i) pos, 3.5D)) {
|
||||
- if (blockposition1.getY() < pos.getY()) {
|
||||
+ if (flag || blockposition1.closerThan((Vec3i) blockposition, 3.5D)) {
|
||||
+ if (blockposition1.getY() < blockposition.getY()) {
|
||||
if (flag) {
|
||||
- this.setBlock(world, blockposition1, Blocks.BEDROCK.defaultBlockState());
|
||||
- } else if (blockposition1.getY() < pos.getY()) {
|
||||
- this.setBlock(world, blockposition1, Blocks.END_STONE.defaultBlockState());
|
||||
+ this.setBlock(generatoraccessseed, blockposition1, Blocks.BEDROCK.defaultBlockState());
|
||||
+ } else if (blockposition1.getY() < blockposition.getY()) {
|
||||
+ this.setBlock(generatoraccessseed, blockposition1, Blocks.END_STONE.defaultBlockState());
|
||||
}
|
||||
- } else if (blockposition1.getY() > pos.getY()) {
|
||||
- this.setBlock(world, blockposition1, Blocks.AIR.defaultBlockState());
|
||||
+ } else if (blockposition1.getY() > blockposition.getY()) {
|
||||
+ this.setBlock(generatoraccessseed, blockposition1, Blocks.AIR.defaultBlockState());
|
||||
} else if (!flag) {
|
||||
- this.setBlock(world, blockposition1, Blocks.BEDROCK.defaultBlockState());
|
||||
+ this.setBlock(generatoraccessseed, blockposition1, Blocks.BEDROCK.defaultBlockState());
|
||||
} else if (this.active) {
|
||||
- this.setBlock(world, new BlockPos(blockposition1), Blocks.END_PORTAL.defaultBlockState());
|
||||
+ this.setBlock(generatoraccessseed, new BlockPos(blockposition1), Blocks.END_PORTAL.defaultBlockState());
|
||||
} else {
|
||||
- this.setBlock(world, new BlockPos(blockposition1), Blocks.AIR.defaultBlockState());
|
||||
+ this.setBlock(generatoraccessseed, new BlockPos(blockposition1), Blocks.AIR.defaultBlockState());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; ++i) {
|
||||
- this.setBlock(world, pos.above(i), Blocks.BEDROCK.defaultBlockState());
|
||||
+ this.setBlock(generatoraccessseed, blockposition.above(i), Blocks.BEDROCK.defaultBlockState());
|
||||
}
|
||||
|
||||
- BlockPos blockposition2 = pos.above(2);
|
||||
+ BlockPos blockposition2 = blockposition.above(2);
|
||||
Iterator iterator1 = Direction.Plane.HORIZONTAL.iterator();
|
||||
|
||||
while (iterator1.hasNext()) {
|
||||
Direction enumdirection = (Direction) iterator1.next();
|
||||
|
||||
- this.setBlock(world, blockposition2.relative(enumdirection), (BlockState) Blocks.WALL_TORCH.defaultBlockState().setValue(WallTorchBlock.FACING, enumdirection));
|
||||
+ this.setBlock(generatoraccessseed, blockposition2.relative(enumdirection), (BlockState) Blocks.WALL_TORCH.defaultBlockState().setValue(WallTorchBlock.FACING, enumdirection));
|
||||
}
|
||||
|
||||
return true;
|
||||
Reference in New Issue
Block a user