Skip to content

Commit 8e876b4

Browse files
committed
Kaiiju Vanilla end portal teleportation
1 parent a4794fb commit 8e876b4

File tree

34 files changed

+87
-21
lines changed

34 files changed

+87
-21
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2+
From: MrHua269 <wangxyper@163.com>
3+
Date: Mon, 5 Aug 2024 14:48:18 +0800
4+
Subject: [PATCH] Kaiiju Vanilla end portal teleportation
5+
6+
7+
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
8+
index 39e96b21e77607782da13b4c74c65d8a68af2433..3958bc6d5172698af88555352a5321083c2367d3 100644
9+
--- a/src/main/java/net/minecraft/world/entity/Entity.java
10+
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
11+
@@ -109,6 +109,7 @@ import net.minecraft.world.level.block.Rotation;
12+
import net.minecraft.world.level.block.SoundType;
13+
import net.minecraft.world.level.block.state.BlockState;
14+
import net.minecraft.world.level.border.WorldBorder;
15+
+import net.minecraft.world.level.dimension.LevelStem;
16+
import net.minecraft.world.level.entity.EntityAccess;
17+
import net.minecraft.world.level.entity.EntityInLevelCallback;
18+
import net.minecraft.world.level.gameevent.DynamicGameEventListener;
19+
@@ -4229,13 +4230,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
20+
targetPos, 16, // load 16 blocks to be safe from block physics
21+
ca.spottedleaf.concurrentutil.executor.standard.PrioritisedExecutor.Priority.HIGH,
22+
(chunks) -> {
23+
- net.minecraft.world.level.levelgen.feature.EndPlatformFeature.createEndPlatform(destination, targetPos.below(), true, null);
24+
+ //net.minecraft.world.level.levelgen.feature.EndPlatformFeature.createEndPlatform(destination, targetPos.below(), true, null); // Kaiiju - Vanilla end teleportation - moved down
25+
26+
+ // Kaiiju start - Vanilla end teleportation
27+
+ Vec3 finalPos;
28+
+ if (this instanceof Player) finalPos = Vec3.atBottomCenterOf(targetPos.below());
29+
+ else finalPos = Vec3.atBottomCenterOf(targetPos);
30+
+ // Kaiiju end
31+
// the portal obsidian is placed at targetPos.y - 2, so if we want to place the entity
32+
// on the obsidian, we need to spawn at targetPos.y - 1
33+
portalInfoCompletable.complete(
34+
new net.minecraft.world.level.portal.DimensionTransition(
35+
- destination, Vec3.atBottomCenterOf(targetPos.below()), Vec3.ZERO, 90.0f, 0.0f,
36+
+ destination, Vec3.atBottomCenterOf(targetPos.below()), this.getDeltaMovement(), 90.0f, 0.0f, // Kaiiju - Vanilla end teleportation
37+
DimensionTransition.PLAY_PORTAL_SOUND.then(DimensionTransition.PLACE_PORTAL_TICKET),
38+
org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.END_PORTAL
39+
)
40+
@@ -4432,6 +4438,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
41+
if (!this.canPortalAsync(destination, takePassengers)) {
42+
return false;
43+
}
44+
+ // Kaiiju start - sync end platform spawning & entity teleportation
45+
+ final java.util.function.Consumer<Entity> tpComplete = type == PortalType.END && destination.getTypeKey() == LevelStem.END ?
46+
+ e -> net.minecraft.world.level.levelgen.feature.EndPlatformFeature.createEndPlatform(destination, ServerLevel.END_SPAWN_POINT.below(), true, null) : teleportComplete;
47+
+ // Kaiiju end
48+
49+
Vec3 initialPosition = this.position();
50+
ChunkPos initialPositionChunk = new ChunkPos(
51+
@@ -4496,9 +4506,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
52+
info.postDimensionTransition().onTransition(teleported);
53+
}
54+
55+
- if (teleportComplete != null) {
56+
+ // Kaiiju start - vanilla end teleportation
57+
+ /*if (teleportComplete != null) {
58+
teleportComplete.accept(teleported);
59+
+ }*/
60+
+ if (tpComplete != null){
61+
+ tpComplete.accept(teleported);
62+
}
63+
+ // Kaiiju end
64+
}
65+
);
66+
});

patches/server/0029-Pufferfish-Reduce-entity-fluid-lookups-if-no-fluids.patch renamed to patches/server/0030-Pufferfish-Reduce-entity-fluid-lookups-if-no-fluids.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ index 0000000000000000000000000000000000000000..0523b3da3fb254bce1998bae6410c632
3131
+ }
3232
+}
3333
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
34-
index 39e96b21e77607782da13b4c74c65d8a68af2433..32f027b67b9bd18e486eb321d8874a1e523c1a00 100644
34+
index 3958bc6d5172698af88555352a5321083c2367d3..44a08cc2e94d52747ba6a66e4b57543dfa5f66c2 100644
3535
--- a/src/main/java/net/minecraft/world/entity/Entity.java
3636
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
37-
@@ -5259,9 +5259,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
37+
@@ -5274,9 +5274,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
3838
}
3939

4040
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
@@ -50,7 +50,7 @@ index 39e96b21e77607782da13b4c74c65d8a68af2433..32f027b67b9bd18e486eb321d8874a1e
5050
AABB axisalignedbb = this.getBoundingBox().deflate(0.001D);
5151
int i = Mth.floor(axisalignedbb.minX);
5252
int j = Mth.ceil(axisalignedbb.maxX);
53-
@@ -5335,6 +5340,133 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
53+
@@ -5350,6 +5355,133 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
5454
}
5555
}
5656

patches/server/0031-Pufferfish-Entity-TTL.patch renamed to patches/server/0032-Pufferfish-Entity-TTL.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ index 0000000000000000000000000000000000000000..15697d69659b6e1e776acf5094684b5f
4949
+ }
5050
+}
5151
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
52-
index 32f027b67b9bd18e486eb321d8874a1e523c1a00..c808b59b0461ccd78fa57932f51bbb268c1d965f 100644
52+
index 44a08cc2e94d52747ba6a66e4b57543dfa5f66c2..d5ad15b95a4f1a0145821ca8a6362e4d5722bf7b 100644
5353
--- a/src/main/java/net/minecraft/world/entity/Entity.java
5454
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
55-
@@ -857,6 +857,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
55+
@@ -858,6 +858,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
5656
}
5757

5858
public void tick() {

patches/server/0032-Pufferfish-Dynamic-Activation-of-Brain.patch renamed to patches/server/0033-Pufferfish-Dynamic-Activation-of-Brain.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,10 @@ index b5cb700e2cd1de2f78ad582245208c056fa6fa79..80123dd30328336b02a5e2e3414ece44
8383
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
8484
entity.discard();
8585
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
86-
index c808b59b0461ccd78fa57932f51bbb268c1d965f..0c94d54a380968019aec07d0563f20ceb4fa2ce3 100644
86+
index d5ad15b95a4f1a0145821ca8a6362e4d5722bf7b..577a194e9d9828520560e3546dba8532ca18782a 100644
8787
--- a/src/main/java/net/minecraft/world/entity/Entity.java
8888
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
89-
@@ -429,6 +429,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
89+
@@ -430,6 +430,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
9090
private UUID originWorld;
9191
public boolean freezeLocked = false; // Paper - Freeze Tick Lock API
9292
public boolean fixedPose = false; // Paper - Expand Pose API

patches/server/0038-Gale-Optimize-sun-burn-tick.patch renamed to patches/server/0039-Gale-Optimize-sun-burn-tick.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ Subject: [PATCH] Gale Optimize sun burn tick
55

66

77
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
8-
index 0c94d54a380968019aec07d0563f20ceb4fa2ce3..c1953e9860c60c96e31336189e54176fe46f3a3c 100644
8+
index 577a194e9d9828520560e3546dba8532ca18782a..6870db1f03e44e8023e173a0d7a6a7f09f41e989 100644
99
--- a/src/main/java/net/minecraft/world/entity/Entity.java
1010
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
11-
@@ -314,7 +314,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
11+
@@ -315,7 +315,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
1212
public double xo;
1313
public double yo;
1414
public double zo;
@@ -17,7 +17,7 @@ index 0c94d54a380968019aec07d0563f20ceb4fa2ce3..c1953e9860c60c96e31336189e54176f
1717
private BlockPos blockPosition;
1818
private ChunkPos chunkPosition;
1919
private Vec3 deltaMovement;
20-
@@ -2121,9 +2121,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
20+
@@ -2122,9 +2122,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2121
/** @deprecated */
2222
@Deprecated
2323
public float getLightLevelDependentMagicValue() {

patches/server/0039-Gale-Don-t-load-chunks-to-activate-climbing-entities.patch renamed to patches/server/0040-Gale-Don-t-load-chunks-to-activate-climbing-entities.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ index 0000000000000000000000000000000000000000..ed62d25d6cd6dfcf8c5db20ced36eb3d
3131
+ }
3232
+}
3333
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
34-
index c1953e9860c60c96e31336189e54176fe46f3a3c..3b23cd9d321a5eec5a237983315bf9ec7f76fe7f 100644
34+
index 6870db1f03e44e8023e173a0d7a6a7f09f41e989..928f53951b2c47fb0a5dbae4dc6b8b97f78f4555 100644
3535
--- a/src/main/java/net/minecraft/world/entity/Entity.java
3636
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
37-
@@ -5544,6 +5544,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
37+
@@ -5559,6 +5559,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
3838
return this.inBlockState;
3939
}
4040

patches/server/0041-Gale-Skip-entity-move-if-movement-is-zero.patch renamed to patches/server/0042-Gale-Skip-entity-move-if-movement-is-zero.patch

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ Subject: [PATCH] Gale Skip entity move if movement is zero
55

66

77
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
8-
index 3b23cd9d321a5eec5a237983315bf9ec7f76fe7f..3ff85d9e5ecef61ca5bcec4c260d88e2d5c61bea 100644
8+
index 928f53951b2c47fb0a5dbae4dc6b8b97f78f4555..ceb0bf3071865c85dfa5a270150ff487c2c02c4c 100644
99
--- a/src/main/java/net/minecraft/world/entity/Entity.java
1010
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
11-
@@ -323,6 +323,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
11+
@@ -324,6 +324,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
1212
public float yRotO;
1313
public float xRotO;
1414
private AABB bb;
1515
+ private boolean boundingBoxChanged = false; // Gale - VMP - skip entity move if movement is zero
1616
public boolean onGround;
1717
public boolean horizontalCollision;
1818
public boolean verticalCollision;
19-
@@ -1136,6 +1137,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
19+
@@ -1137,6 +1138,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2020
//Luminol end
2121

2222
public void move(MoverType movementType, Vec3 movement) {
@@ -28,7 +28,7 @@ index 3b23cd9d321a5eec5a237983315bf9ec7f76fe7f..3ff85d9e5ecef61ca5bcec4c260d88e2
2828
final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity
2929
// Paper start - detailed watchdog information
3030
ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread("Cannot move an entity off-main");
31-
@@ -4963,6 +4969,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
31+
@@ -4978,6 +4984,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
3232
}
3333

3434
public final void setBoundingBox(AABB boundingBox) {

patches/server/0049-KioCG-Chunk-API-and-display-of-chunkhot-in-tpsbar.patch renamed to patches/server/0050-KioCG-Chunk-API-and-display-of-chunkhot-in-tpsbar.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,10 +332,10 @@ index 1859477e96709368683fe5707327e92f56fbfc8e..4c4814094552fa4382b1cbe649f24f47
332332
+ // KioCG end
333333
}
334334
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
335-
index 3ff85d9e5ecef61ca5bcec4c260d88e2d5c61bea..bd0e0cd7888dbb24d941aedd88e9232e98935cab 100644
335+
index ceb0bf3071865c85dfa5a270150ff487c2c02c4c..ae39e58170085f83303d53eb6b7eb72f0a961be3 100644
336336
--- a/src/main/java/net/minecraft/world/entity/Entity.java
337337
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
338-
@@ -5984,4 +5984,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
338+
@@ -5999,4 +5999,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
339339
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
340340
}
341341
// Paper end - Expose entity id counter

patches/server/0053-Fix-MC-2025.patch renamed to patches/server/0054-Fix-MC-2025.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix-MC-2025
55

66

77
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
8-
index bd0e0cd7888dbb24d941aedd88e9232e98935cab..075f3766e51d40fdb4ce2dd36bf19bc4c24d24eb 100644
8+
index ae39e58170085f83303d53eb6b7eb72f0a961be3..133fd4c50df80420015d0c32f487f0176ad07393 100644
99
--- a/src/main/java/net/minecraft/world/entity/Entity.java
1010
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
11-
@@ -2622,6 +2622,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
11+
@@ -2623,6 +2623,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
1212
nbttagcompound.putBoolean("Paper.FreezeLock", true);
1313
}
1414
// Paper end
@@ -25,7 +25,7 @@ index bd0e0cd7888dbb24d941aedd88e9232e98935cab..075f3766e51d40fdb4ce2dd36bf19bc4
2525
return nbttagcompound;
2626
} catch (Throwable throwable) {
2727
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
28-
@@ -2699,6 +2709,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
28+
@@ -2700,6 +2710,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2929
this.reapplyPosition();
3030
}
3131

0 commit comments

Comments
 (0)