mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 23:10:16 +01:00
SPIGOT-5853: DragonBattle#getEndPortalLocation() throws NPE on new world
* Add method to generate the end portal
This commit is contained in:
parent
1601ec31e3
commit
d424351010
2 changed files with 47 additions and 0 deletions
33
nms-patches/EnderDragonBattle.patch
Normal file
33
nms-patches/EnderDragonBattle.patch
Normal file
|
@ -0,0 +1,33 @@
|
|||
--- a/net/minecraft/server/EnderDragonBattle.java
|
||||
+++ b/net/minecraft/server/EnderDragonBattle.java
|
||||
@@ -245,7 +245,7 @@
|
||||
}
|
||||
|
||||
@Nullable
|
||||
- private ShapeDetector.ShapeDetectorCollection j() {
|
||||
+ public ShapeDetector.ShapeDetectorCollection j() { // PAIL private -> public, rename getExitPortalShape()
|
||||
int i;
|
||||
int j;
|
||||
|
||||
@@ -376,10 +376,10 @@
|
||||
|
||||
private void a(BlockPosition blockposition) {
|
||||
this.world.triggerEffect(3000, blockposition, 0);
|
||||
- WorldGenerator.END_GATEWAY.b((WorldGenFeatureConfiguration) WorldGenEndGatewayConfiguration.a()).a(this.world, this.world.getStructureManager(), this.world.getChunkProvider().getChunkGenerator(), new Random(), blockposition);
|
||||
+ WorldGenerator.END_GATEWAY.b(WorldGenEndGatewayConfiguration.a()).a(this.world, this.world.getStructureManager(), this.world.getChunkProvider().getChunkGenerator(), new Random(), blockposition); // CraftBukkit - decompile error
|
||||
}
|
||||
|
||||
- private void a(boolean flag) {
|
||||
+ public void a(boolean flag) { // PAIL private -> public, rename generateExitPortal()
|
||||
WorldGenEndTrophy worldgenendtrophy = new WorldGenEndTrophy(flag);
|
||||
|
||||
if (this.exitPortalLocation == null) {
|
||||
@@ -388,7 +388,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- worldgenendtrophy.b((WorldGenFeatureConfiguration) WorldGenFeatureConfiguration.k).a(this.world, this.world.getStructureManager(), this.world.getChunkProvider().getChunkGenerator(), new Random(), this.exitPortalLocation);
|
||||
+ worldgenendtrophy.b(WorldGenFeatureConfiguration.k).a(this.world, this.world.getStructureManager(), this.world.getChunkProvider().getChunkGenerator(), new Random(), this.exitPortalLocation); // CraftBukkit - decompile error
|
||||
}
|
||||
|
||||
private EntityEnderDragon o() {
|
|
@ -30,9 +30,23 @@ public class CraftDragonBattle implements DragonBattle {
|
|||
|
||||
@Override
|
||||
public Location getEndPortalLocation() {
|
||||
if (handle.exitPortalLocation == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Location(handle.world.getWorld(), handle.exitPortalLocation.getX(), handle.exitPortalLocation.getY(), handle.exitPortalLocation.getZ());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateEndPortal(boolean withPortals) {
|
||||
if (handle.exitPortalLocation != null || handle.j() != null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.handle.a(withPortals);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasBeenPreviouslyKilled() {
|
||||
return handle.isPreviouslyKilled();
|
||||
|
|
Loading…
Reference in a new issue