mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 00:47:42 +01:00
Upstream has released updates that appears to apply and compile correctly Paper Changes: b75eeca0 Boost light task priority to ensure it doesnt hold up chunk loads 3d2bc848 Ensure VillagerTrades doesn't load async - fixes #3495 e470f1ef Add more information to Timing Reports f4a47db6 Improve Thread Pool usage to allow single threads for single cpu servers a4fe910f Fix sounds when using worldedit regen command 70ad51a8 Updated Upstream (Bukkit/CraftBukkit) d7cfa4fa Improve legacy format serialization more
159 lines
8.5 KiB
Diff
159 lines
8.5 KiB
Diff
From b57d0b74f8cafb178eada55ddc0ea8370bc9da1e 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 09c7c13183..6880cdd7f9 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 46bc91524b..39bd34ab34 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -170,9 +170,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;
|
|
@@ -2287,6 +2287,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 f84dd6d9be..f50e9670bc 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 8018bf6dd8..3546424a1c 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
@@ -76,7 +76,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
|
|
|