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

38 lines
1.6 KiB
Diff

From 9e9d3cfdcd213943f525a3d1a81abd7db6c38797 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 3de2d40a4..c31bed6ac 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