aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0376-Ensure-safe-gateway-teleport.patch
blob: f0c0928d233f4f39acca7afd04877ae74475b562 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: kickash32 <kickash32@gmail.com>
Date: Fri, 15 May 2020 01:10:03 -0400
Subject: [PATCH] Ensure safe gateway teleport


diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
index 223550eccdf0a5596b8595a30f02ad891ffd91ea..d0e8842a2c4f7dbd0d6ac3694b2a6a5395d8a542 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
@@ -105,7 +105,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
             List<Entity> list = world.getEntitiesOfClass(Entity.class, new AABB(pos), TheEndGatewayBlockEntity::canEntityTeleport);
 
             if (!list.isEmpty()) {
-                TheEndGatewayBlockEntity.teleportEntity(world, pos, state, (Entity) list.get(world.random.nextInt(list.size())), blockEntity);
+                // Paper start - Ensure safe gateway teleport
+                for (Entity entity : list) {
+                    if (entity.canChangeDimensions()) {
+                        TheEndGatewayBlockEntity.teleportEntity(world, pos, state, entity, blockEntity);
+                        break;
+                    }
+                }
+                // Paper end - Ensure safe gateway teleport
             }
 
             if (blockEntity.age % 2400L == 0L) {