mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-25 12:05:53 +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
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
|
@Override
|
||||||
public Location getEndPortalLocation() {
|
public Location getEndPortalLocation() {
|
||||||
|
if (handle.exitPortalLocation == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return new Location(handle.world.getWorld(), handle.exitPortalLocation.getX(), handle.exitPortalLocation.getY(), handle.exitPortalLocation.getZ());
|
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
|
@Override
|
||||||
public boolean hasBeenPreviouslyKilled() {
|
public boolean hasBeenPreviouslyKilled() {
|
||||||
return handle.isPreviouslyKilled();
|
return handle.isPreviouslyKilled();
|
||||||
|
Loading…
Reference in New Issue
Block a user