From aa34e9bddd42ce8a58b67fa29c7c1a835a03e5a6 Mon Sep 17 00:00:00 2001 From: md_5 Date: Fri, 9 Feb 2018 18:02:53 +1100 Subject: SPIGOT-3805: Minecart does not teleport through Nether Portal --- nms-patches/EntityMinecartAbstract.patch | 40 +++++++++++++++++++------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/nms-patches/EntityMinecartAbstract.patch b/nms-patches/EntityMinecartAbstract.patch index 5f5d0706..cff91691 100644 --- a/nms-patches/EntityMinecartAbstract.patch +++ b/nms-patches/EntityMinecartAbstract.patch @@ -85,16 +85,24 @@ if (this.getType() > 0) { this.d(this.getType() - 1); } -@@ -166,7 +216,7 @@ - - i = this.Z(); - if (this.ak) { -- if (minecraftserver.getAllowNether()) { -+ if (true || minecraftserver.getAllowNether()) { // CraftBukkit - multi-world should still allow teleport even if default vanilla nether disabled - if (!this.isPassenger() && this.al++ >= i) { - this.al = i; - this.portalCooldown = this.aM(); -@@ -266,6 +316,18 @@ +@@ -160,6 +210,8 @@ + + int i; + ++ // CraftBukkit - handled in postTick ++ /* + if (!this.world.isClientSide && this.world instanceof WorldServer) { + this.world.methodProfiler.a("portal"); + MinecraftServer minecraftserver = this.world.getMinecraftServer(); +@@ -199,6 +251,7 @@ + + this.world.methodProfiler.b(); + } ++ */ + + if (this.world.isClientSide) { + if (this.at > 0) { +@@ -266,6 +319,18 @@ } this.setYawPitch(this.yaw, this.pitch); @@ -113,7 +121,7 @@ if (this.v() == EntityMinecartAbstract.EnumMinecartType.RIDEABLE && this.motX * this.motX + this.motZ * this.motZ > 0.01D) { List list = this.world.getEntities(this, this.getBoundingBox().grow(0.20000000298023224D, 0.0D, 0.20000000298023224D), IEntitySelector.a(this)); -@@ -274,8 +336,24 @@ +@@ -274,8 +339,24 @@ Entity entity = (Entity) list.get(l); if (!(entity instanceof EntityHuman) && !(entity instanceof EntityIronGolem) && !(entity instanceof EntityMinecartAbstract) && !this.isVehicle() && !entity.isPassenger()) { @@ -138,7 +146,7 @@ entity.collide(this); } } -@@ -287,6 +365,14 @@ +@@ -287,6 +368,14 @@ Entity entity1 = (Entity) iterator.next(); if (!this.w(entity1) && entity1.isCollidable() && entity1 instanceof EntityMinecartAbstract) { @@ -153,7 +161,7 @@ entity1.collide(this); } } -@@ -297,7 +383,7 @@ +@@ -297,7 +386,7 @@ } protected double p() { @@ -162,7 +170,7 @@ } public void a(int i, int j, int k, boolean flag) {} -@@ -308,16 +394,20 @@ +@@ -308,16 +397,20 @@ this.motX = MathHelper.a(this.motX, -d0, d0); this.motZ = MathHelper.a(this.motZ, -d0, d0); if (this.onGround) { @@ -189,7 +197,7 @@ } } -@@ -505,7 +595,7 @@ +@@ -505,7 +598,7 @@ } protected void r() { @@ -198,7 +206,7 @@ this.motX *= 0.996999979019165D; this.motY *= 0.0D; this.motZ *= 0.996999979019165D; -@@ -780,4 +870,26 @@ +@@ -780,4 +873,26 @@ } } -- cgit v1.2.3