Files
Purpur/patches/server/0049-Add-EntityPortalReadyEvent.patch
William Blake Galbreath 193b218210 Updated Upstream (Paper)
Upstream has released updates that appears to apply and compile correctly

Paper Changes:
979b53a7 Do not allow bee's to load chunks for beehives
13cb8373 Remote Connections shouldn't hold up shutdown
7dac5467 Fix bug in double register fix
87829d83 Remove incorrect IO flush for save-all that doesn't have flush parameter
31e751cb Fix unregistering entities from unloading chunks
bc351f6e Ensure Entity is never double registered
2ec0274b Fix many issues with dupe uuid resolve patch
756da10d (Actually) Don't duplicate velocity entry into hidden-configs
9b3679fb Don't duplicate velocity entry into hidden-configs
28cf6540 Pillager patrol spawn settings and per player options (#2924)
6bf04cd5 Reduce entity tracker updates on move
2020-03-31 19:27:23 -05:00

159 lines
8.5 KiB
Diff

From 37ed97b94d7947d693c771b1a3efe2b903e514df Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 11 Jan 2020 23:12:52 -0600
Subject: [PATCH] Add EntityPortalReadyEvent
---
.../java/net/minecraft/server/BlockPortal.java | 16 +++++++++-------
src/main/java/net/minecraft/server/Entity.java | 7 ++++---
.../net/minecraft/server/PortalTravelAgent.java | 5 +++--
.../java/net/minecraft/server/WorldServer.java | 2 +-
4 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/src/main/java/net/minecraft/server/BlockPortal.java b/src/main/java/net/minecraft/server/BlockPortal.java
index 09c7c1318..6880cdd7f 100644
--- a/src/main/java/net/minecraft/server/BlockPortal.java
+++ b/src/main/java/net/minecraft/server/BlockPortal.java
@@ -54,6 +54,7 @@ public class BlockPortal extends Block {
}
+ public boolean createPortal(GeneratorAccess generatoraccess, BlockPosition blockposition) { return a(generatoraccess, blockposition); } // Purpur - OBFHELPER
public boolean a(GeneratorAccess generatoraccess, BlockPosition blockposition) {
BlockPortal.Shape blockportal_shape = this.b(generatoraccess, blockposition);
@@ -67,8 +68,8 @@ public class BlockPortal extends Block {
}
}
- @Nullable
- public BlockPortal.Shape b(GeneratorAccess generatoraccess, BlockPosition blockposition) {
+ public BlockPortal.Shape createShape(GeneratorAccess generatoraccess, BlockPosition blockposition) { return b(generatoraccess, blockposition); } // Purpur - OBFHELPER
+ @Nullable public BlockPortal.Shape b(GeneratorAccess generatoraccess, BlockPosition blockposition) {
BlockPortal.Shape blockportal_shape = new BlockPortal.Shape(generatoraccess, blockposition, EnumDirection.EnumAxis.X);
if (blockportal_shape.d() && blockportal_shape.e == 0) {
@@ -189,6 +190,7 @@ public class BlockPortal extends Block {
private int height;
private int width;
java.util.List<org.bukkit.block.BlockState> blocks = new java.util.ArrayList<org.bukkit.block.BlockState>(); // CraftBukkit - add field
+ public static Block FRAME_BLOCK = Blocks.OBSIDIAN; // Purpur
public Shape(GeneratorAccess generatoraccess, BlockPosition blockposition, EnumDirection.EnumAxis enumdirection_enumaxis) {
this.a = generatoraccess;
@@ -228,14 +230,14 @@ public class BlockPortal extends Block {
for (i = 0; i < 22; ++i) {
BlockPosition blockposition1 = blockposition.shift(enumdirection, i);
- if (!this.a(this.a.getType(blockposition1)) || this.a.getType(blockposition1.down()).getBlock() != Blocks.OBSIDIAN) {
+ if (!this.a(this.a.getType(blockposition1)) || this.a.getType(blockposition1.down()).getBlock() != FRAME_BLOCK) { // Purpur
break;
}
}
Block block = this.a.getType(blockposition.shift(enumdirection, i)).getBlock();
- return block == Blocks.OBSIDIAN ? i : 0;
+ return block == FRAME_BLOCK ? i : 0; // Purpur
}
public int a() {
@@ -270,7 +272,7 @@ public class BlockPortal extends Block {
if (i == 0) {
block = this.a.getType(blockposition.shift(this.d)).getBlock();
- if (block != Blocks.OBSIDIAN) {
+ if (block != FRAME_BLOCK) { // Purpur
break label56;
// CraftBukkit start - add the block to our list
} else {
@@ -280,7 +282,7 @@ public class BlockPortal extends Block {
}
} else if (i == this.width - 1) {
block = this.a.getType(blockposition.shift(this.c)).getBlock();
- if (block != Blocks.OBSIDIAN) {
+ if (block != FRAME_BLOCK) { // Purpur
break label56;
// CraftBukkit start - add the block to our list
} else {
@@ -293,7 +295,7 @@ public class BlockPortal extends Block {
}
for (i = 0; i < this.width; ++i) {
- if (this.a.getType(this.position.shift(this.c, i).up(this.height)).getBlock() != Blocks.OBSIDIAN) {
+ if (this.a.getType(this.position.shift(this.c, i).up(this.height)).getBlock() != FRAME_BLOCK) { // Purpur
this.height = 0;
break;
// CraftBukkit start - add the block to our list
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index c0e4c42f1..da7cdacaa 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -169,9 +169,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
protected boolean af; public final boolean inPortal() { return this.af; } // Paper - OBFHELPER
protected int ag;
public DimensionManager dimension;
- protected BlockPosition ai;
- protected Vec3D aj;
- protected EnumDirection ak;
+ public BlockPosition ai; // Purpur - protected -> public
+ public Vec3D aj; // Purpur - protected -> public
+ public EnumDirection ak; // Purpur - protected -> public
private boolean invulnerable;
protected UUID uniqueID;
protected String am;
@@ -2220,6 +2220,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.world.getMethodProfiler().enter("portal");
this.ag = i;
this.portalCooldown = this.ba();
+ if (new net.pl3x.purpur.event.entity.EntityPortalReadyEvent(getBukkitEntity()).callEvent()) // Purpur
// CraftBukkit start
if (this instanceof EntityPlayer) {
((EntityPlayer) this).a(this.world.worldProvider.getDimensionManager().getType() == DimensionManager.NETHER ? DimensionManager.OVERWORLD : DimensionManager.NETHER, PlayerTeleportEvent.TeleportCause.NETHER_PORTAL);
diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java
index f84dd6d9b..f50e9670b 100644
--- a/src/main/java/net/minecraft/server/PortalTravelAgent.java
+++ b/src/main/java/net/minecraft/server/PortalTravelAgent.java
@@ -11,6 +11,7 @@ public class PortalTravelAgent {
private final WorldServer world;
private final Random b;
+ public Block FRAME_BLOCK = Blocks.OBSIDIAN; // Purpur
public PortalTravelAgent(WorldServer worldserver) {
this.world = worldserver;
@@ -233,7 +234,7 @@ public class PortalTravelAgent {
boolean flag1 = l2 < 0;
blockposition_mutableblockposition.d(j3, l3, i4);
- blockList.setTypeAndData(blockposition_mutableblockposition, flag1 ? Blocks.OBSIDIAN.getBlockData() : Blocks.AIR.getBlockData(), 3); // CraftBukkit
+ blockList.setTypeAndData(blockposition_mutableblockposition, flag1 ? FRAME_BLOCK.getBlockData() : Blocks.AIR.getBlockData(), 3); // CraftBukkit // Purpur
}
}
}
@@ -243,7 +244,7 @@ public class PortalTravelAgent {
for (i3 = -1; i3 < 4; ++i3) {
if (k2 == -1 || k2 == 2 || i3 == -1 || i3 == 3) {
blockposition_mutableblockposition.d(i5 + k2 * k5, j5 + i3, j2 + k2 * l5);
- blockList.setTypeAndData(blockposition_mutableblockposition, Blocks.OBSIDIAN.getBlockData(), 3); // CraftBukkit
+ blockList.setTypeAndData(blockposition_mutableblockposition, FRAME_BLOCK.getBlockData(), 3); // CraftBukkit // Purpur
}
}
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 173bc91a9..a47ed872a 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -65,7 +65,7 @@ public class WorldServer extends World {
public boolean savingDisabled;
private boolean everyoneSleeping;
private int emptyTime;
- private final PortalTravelAgent portalTravelAgent;
+ public PortalTravelAgent portalTravelAgent; // Purpur - private final -> public non-final
private final TickListServer<Block> nextTickListBlock;
private final TickListServer<FluidType> nextTickListFluid;
private final Set<NavigationAbstract> navigators;
--
2.24.0