Files
AkarinMC/patches/server/0019-Remove-stream-for-ender-teleport.patch
2020-04-15 22:19:23 +07:00

38 lines
1.6 KiB
Diff

From 237b5d67d51b19415344941091274092356a623b Mon Sep 17 00:00:00 2001
From: Sotr <i@omc.hk>
Date: Wed, 15 Apr 2020 04:16:44 +0700
Subject: [PATCH] Remove stream for ender teleport
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 3de2d40a4d..c31bed6ac2 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -2842,7 +2842,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
WorldServer worldserver = (WorldServer) this.world;
this.setPositionRotation(d0, d1, d2, this.yaw, this.pitch);
- this.cg().forEach((entity) -> {
+ this.collectPassengers().forEach((entity) -> { // Akarin - remove stream
worldserver.chunkCheck(entity);
entity.aF = true;
entity.a(Entity::teleportAndSync);
@@ -3091,6 +3091,14 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public Stream<Entity> cg() {
return Stream.concat(Stream.of(this), this.passengers.stream().flatMap(Entity::cg));
}
+ // Akarin start - non-stream version
+ public List<Entity> collectPassengers() {
+ List<Entity> result = Lists.newArrayList(this);
+ for (Entity passenger : this.passengers)
+ result.addAll(passenger.collectPassengers());
+ return result;
+ }
+ // Akarin end
public boolean hasSinglePlayerPassenger() {
Set<Entity> set = Sets.newHashSet();
--
2.25.1.windows.1