From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Helvetica Volubi Date: Tue, 28 Jul 2026 20:40:01 +0800 Subject: [PATCH] Anonymous Object: Fix folia nether portal ticket placement As requested by the original author, this patch will be anonymous and hide the original commit address. This patch is used with permission from the original author. Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/net/minecraft/util/BlockUtil.java b/net/minecraft/util/BlockUtil.java index ea93ac07ec6d4e83d1d0904daf721132e2bbecc3..4252672ad2aaf03d50e5ea6a681e9964fd9a6137 100644 --- a/net/minecraft/util/BlockUtil.java +++ b/net/minecraft/util/BlockUtil.java @@ -138,12 +138,20 @@ public class BlockUtil { public final BlockPos minCorner; public final int axis1Size; public final int axis2Size; + public BlockPos foundOrigin; // Anonymous - Fix folia nether portal ticket placement public FoundRectangle(final BlockPos minCorner, final int axis1Size, final int axis2Size) { this.minCorner = minCorner; this.axis1Size = axis1Size; this.axis2Size = axis2Size; + this.foundOrigin = minCorner; // Anonymous - Fix folia nether portal ticket placement - prevent edge conditions(idk if someone would do this so just prevent it) } + // Anonymous start - Fix folia nether portal ticket placement + public FoundRectangle withFoundOrigin(BlockPos origin) { + this.foundOrigin = origin; + return this; + } + // Anonymous end } public static class IntBounds { diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java index f15f0ca83ff2313d2e025db984c4fa1d492c5a70..6d6b1024ef7467bc7f72693a655a25eeede1b0f8 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -4847,7 +4847,7 @@ public abstract class Entity portalInfoCompletable.complete( new TeleportTransition(destination, Vec3.atCenterOf(targetPos), Vec3.ZERO, 90.0f, 0.0f, - TeleportTransition.PLAY_PORTAL_SOUND.then(TeleportTransition.PLACE_PORTAL_TICKET)) + TeleportTransition.PLAY_PORTAL_SOUND.then(ent -> ent.placePortalTicket(targetPos))) // Anonymous - Fix folia nether portal ticket placement ); return; } @@ -4859,7 +4859,7 @@ public abstract class Entity portalInfoCompletable.complete( net.minecraft.world.level.block.NetherPortalBlock.createDimensionTransition( destination, portal, originalPortalDirection, relativePos, - Entity.this, TeleportTransition.PLAY_PORTAL_SOUND.then(TeleportTransition.PLACE_PORTAL_TICKET) + Entity.this, TeleportTransition.PLAY_PORTAL_SOUND.then(ent -> ent.placePortalTicket(portal.foundOrigin)) // Anonymous - Fix folia nether portal ticket placement ) ); } diff --git a/net/minecraft/world/level/block/NetherPortalBlock.java b/net/minecraft/world/level/block/NetherPortalBlock.java index 29fc9521c2c8333c999647dd833899393a838064..e8d2b52a3948755c8d3912a4ad1204cea5f78674 100644 --- a/net/minecraft/world/level/block/NetherPortalBlock.java +++ b/net/minecraft/world/level/block/NetherPortalBlock.java @@ -204,7 +204,7 @@ public class NetherPortalBlock extends Block implements Portal { return BlockUtil.getLargestRectangleAround(found, portalState.getValue(BlockStateProperties.HORIZONTAL_AXIS), 21, Direction.Axis.Y, 21, (pos) -> { return world.getBlockStateFromEmptyChunk(pos) == portalState; - }); + }).withFoundOrigin(found); // Anonymous - Fix folia nether portal ticket placement } // Folia end - region threading