mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 08:57:44 +01:00
Upstream has released updates that appears to apply and compile correctly Paper Changes: cc477e6a Force Plugins that use delayed tasks for init back in their place 597263fd Don't skip full player connection tick when dead e2c23475 Revert loaded entity list (#3304) fa87db6b Move another NetworkManager util into the inner class (#3303) 841c7d18 Make loaded entity list logic more consistent (#3301) 36f34f01 Updated Upstream (Bukkit/CraftBukkit) 5ca5f131 Rebuild all patches using the new rebuild pattern 1ccff6fa Add villager reputation API 5c0bfffa Speed up rebuilding patches and reduce diff f37381ea Optimize Network Manager to not need synchronization 8f9df2ed Anti Xray cleanup 878c66f1 No-Tick view distance implementation - Closes #3196 b87743c1 Stop copy-on-write operations for updating light data 97a9c972 Optimize isOutsideRange to use distance maps b4e629a2 Use distance map to optimise entity tracker / Misc Utils d80d1517 Optimize Entity Ticking to Loaded Chunks only 31d7686d Add item slot helper methods for various inventories (#3221) 75e1e3b3 Mob Goal API c7bc393a Revert "Don't flush packet queue off main thread" 1abd2bd2 Don't flush packet queue off main thread a4ed58a9 Clean up Direct Memory Region Files Fix for different Java versions 55e35019 Set cap on JDK per-thread native byte buffer cache b5101f4f Cleanup Region Files Direct Memory on close 81e655d7 Optimize Voxel Shape Merging ed9fc11f Sync position on teleportation 9c326fce Nanothing to see here 3e9fc24b Attempt to fix FastLogin maybe
159 lines
8.5 KiB
Diff
159 lines
8.5 KiB
Diff
From 6c262a836b9e397bba5943f9f130ecdf09a26063 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 944199404..ceba4f355 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;
|
|
@@ -2283,6 +2283,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 c4a09eda3..71719ce63 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
@@ -75,7 +75,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
|
|
|