diff options
author | md_5 <git@md-5.net> | 2016-05-10 21:47:39 +1000 |
---|---|---|
committer | md_5 <git@md-5.net> | 2016-05-10 21:47:39 +1000 |
commit | c5e9a169fa564f3b8119b6666f8df59d5a9b45c3 (patch) | |
tree | 9f3b1ce732f0082b71512b1dddb7abb35526226e /nms-patches/PortalTravelAgent.patch | |
parent | 4cb32587ac1ff543b2efa9498f8d0d358cb90c12 (diff) | |
download | craftbukkit-c5e9a169fa564f3b8119b6666f8df59d5a9b45c3.tar craftbukkit-c5e9a169fa564f3b8119b6666f8df59d5a9b45c3.tar.gz craftbukkit-c5e9a169fa564f3b8119b6666f8df59d5a9b45c3.tar.lz craftbukkit-c5e9a169fa564f3b8119b6666f8df59d5a9b45c3.tar.xz craftbukkit-c5e9a169fa564f3b8119b6666f8df59d5a9b45c3.zip |
Minecraft 1.9.4
Diffstat (limited to 'nms-patches/PortalTravelAgent.patch')
-rw-r--r-- | nms-patches/PortalTravelAgent.patch | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/nms-patches/PortalTravelAgent.patch b/nms-patches/PortalTravelAgent.patch index 8094e731..d44c9470 100644 --- a/nms-patches/PortalTravelAgent.patch +++ b/nms-patches/PortalTravelAgent.patch @@ -1,17 +1,18 @@ --- a/net/minecraft/server/PortalTravelAgent.java +++ b/net/minecraft/server/PortalTravelAgent.java -@@ -1,6 +1,10 @@ - package net.minecraft.server; - - import com.google.common.collect.Lists; +@@ -4,6 +4,11 @@ + import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; + import it.unimi.dsi.fastutil.objects.ObjectIterator; + import java.util.Random; ++// CraftBukkit start +import org.bukkit.Location; +import org.bukkit.event.entity.EntityPortalExitEvent; +import org.bukkit.util.Vector; -+ - import java.util.Iterator; - import java.util.List; - import java.util.Random; -@@ -27,6 +31,19 @@ ++// CraftBukkit end + + public class PortalTravelAgent { + +@@ -26,6 +31,19 @@ int i = MathHelper.floor(entity.locX); int j = MathHelper.floor(entity.locY) - 1; int k = MathHelper.floor(entity.locZ); @@ -31,7 +32,7 @@ byte b0 = 1; byte b1 = 0; -@@ -43,16 +60,63 @@ +@@ -42,16 +60,63 @@ } } @@ -100,8 +101,8 @@ boolean flag1 = true; Object object = BlockPosition.ZERO; long k = ChunkCoordIntPair.a(i, j); -@@ -65,12 +129,12 @@ - portaltravelagent_chunkcoordinatesportal.c = this.world.getTime(); +@@ -64,12 +129,12 @@ + portaltravelagent_chunkcoordinatesportal.b = this.world.getTime(); flag1 = false; } else { - BlockPosition blockposition = new BlockPosition(entity); @@ -116,9 +117,9 @@ for (BlockPosition blockposition2 = blockposition.a(l, this.world.Z() - 1 - blockposition.getY(), i1); blockposition2.getY() >= 0; blockposition2 = blockposition1) { blockposition1 = blockposition2.down(); if (this.world.getType(blockposition2).getBlock() == Blocks.PORTAL) { -@@ -95,6 +159,29 @@ +@@ -93,6 +158,29 @@ + if (flag1) { this.c.put(k, new PortalTravelAgent.ChunkCoordinatesPortal((BlockPosition) object, this.world.getTime())); - this.d.add(Long.valueOf(k)); } + // CraftBukkit start - Move entity teleportation logic into exit + return (BlockPosition) object; @@ -146,7 +147,7 @@ double d2 = (double) ((BlockPosition) object).getX() + 0.5D; double d3 = (double) ((BlockPosition) object).getY() + 0.5D; -@@ -133,30 +220,59 @@ +@@ -131,30 +219,59 @@ f4 = 1.0F; } @@ -224,7 +225,7 @@ int l = i; int i1 = j; int j1 = k; -@@ -181,10 +297,10 @@ +@@ -179,10 +296,10 @@ double d4; for (i2 = i - b0; i2 <= i + b0; ++i2) { @@ -237,7 +238,7 @@ label271: for (k2 = this.world.Z() - 1; k2 >= 0; --k2) { -@@ -216,7 +332,7 @@ +@@ -214,7 +331,7 @@ } } @@ -246,7 +247,7 @@ d4 = d1 * d1 + d3 * d3 + d2 * d2; if (d0 < 0.0D || d4 < d0) { d0 = d4; -@@ -233,10 +349,10 @@ +@@ -231,10 +348,10 @@ if (d0 < 0.0D) { for (i2 = i - b0; i2 <= i + b0; ++i2) { @@ -259,7 +260,7 @@ label219: for (k2 = this.world.Z() - 1; k2 >= 0; --k2) { -@@ -261,7 +377,7 @@ +@@ -259,7 +376,7 @@ } } @@ -268,14 +269,14 @@ d4 = d1 * d1 + d3 * d3 + d2 * d2; if (d0 < 0.0D || d4 < d0) { d0 = d4; -@@ -362,5 +478,10 @@ +@@ -358,5 +475,10 @@ super(blockposition.getX(), blockposition.getY(), blockposition.getZ()); - this.c = i; + this.b = i; } + + @Override + public int compareTo(BaseBlockPosition o) { -+ return this.i(o); ++ return this.l(o); + } } } |