mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
159 lines
8.5 KiB
Diff
159 lines
8.5 KiB
Diff
From 07539f4ce3643cee95496fedb20ed575f77402f3 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 ca6ff6380f..3c640ec8b3 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -168,9 +168,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;
|
|
@@ -2314,6 +2314,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 22a1c4ebfa..c4086ace1f 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
|
|
|