From b2a72dbcd80488f217761186e1303677195bf06a Mon Sep 17 00:00:00 2001 From: gnembon Date: Sat, 28 Dec 2019 17:57:52 -0400 Subject: [PATCH] WOOL --- .../carpet/fakes/TicketInfoInterface.java | 8 ++++++++ ...alForcerTicketInfo_portalCachingMixin.java | 19 +++++++++++++++++++ .../PortalForcer_portalCachingMixin.java | 8 +++++--- src/main/resources/carpet.mixins.json | 1 + 4 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 src/main/java/carpet/fakes/TicketInfoInterface.java create mode 100644 src/main/java/carpet/mixins/PortalForcerTicketInfo_portalCachingMixin.java diff --git a/src/main/java/carpet/fakes/TicketInfoInterface.java b/src/main/java/carpet/fakes/TicketInfoInterface.java new file mode 100644 index 00000000..3a93bead --- /dev/null +++ b/src/main/java/carpet/fakes/TicketInfoInterface.java @@ -0,0 +1,8 @@ +package carpet.fakes; + +import net.minecraft.util.math.BlockPos; + +public interface TicketInfoInterface +{ + BlockPos getPos(); +} diff --git a/src/main/java/carpet/mixins/PortalForcerTicketInfo_portalCachingMixin.java b/src/main/java/carpet/mixins/PortalForcerTicketInfo_portalCachingMixin.java new file mode 100644 index 00000000..8cacbd2d --- /dev/null +++ b/src/main/java/carpet/mixins/PortalForcerTicketInfo_portalCachingMixin.java @@ -0,0 +1,19 @@ +package carpet.mixins; + +import carpet.fakes.TicketInfoInterface; +import net.minecraft.util.math.BlockPos; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(targets = "net.minecraft.world.PortalForcer$TicketInfo") +public class PortalForcerTicketInfo_portalCachingMixin implements TicketInfoInterface +{ + @Shadow @Final public BlockPos pos; + + @Override + public BlockPos getPos() + { + return pos; + } +} diff --git a/src/main/java/carpet/mixins/PortalForcer_portalCachingMixin.java b/src/main/java/carpet/mixins/PortalForcer_portalCachingMixin.java index f5e2fde2..8b0a7e90 100644 --- a/src/main/java/carpet/mixins/PortalForcer_portalCachingMixin.java +++ b/src/main/java/carpet/mixins/PortalForcer_portalCachingMixin.java @@ -2,6 +2,7 @@ package carpet.mixins; import carpet.CarpetSettings; import carpet.fakes.PortalForcerInterface; +import carpet.fakes.TicketInfoInterface; import net.minecraft.entity.Entity; import net.minecraft.server.world.ChunkTicketType; import net.minecraft.server.world.ServerWorld; @@ -58,9 +59,10 @@ public class PortalForcer_portalCachingMixin implements PortalForcerInterface { // vanilla got removed, but we stored it meaning we not only need to add it but also let it chunkload map.put(key, ticketInfo); - ColumnPos cpos = (ColumnPos)key; - BlockPos fakePos = new BlockPos(((ColumnPos) key).x, 0, ((ColumnPos) key).z); - world.method_14178().addTicket(ChunkTicketType.PORTAL, new ChunkPos(fakePos), 3, (ColumnPos) key); + //((TicketInfoInterface)ticketInfo).getPos(); + //ColumnPos cpos = (ColumnPos)key; + //BlockPos fakePos = new BlockPos(((ColumnPos) key).x, 0, ((ColumnPos) key).z); + world.method_14178().addTicket(ChunkTicketType.PORTAL, new ChunkPos( ((TicketInfoInterface)ticketInfo).getPos()), 3, (ColumnPos) key); } return ticketInfo; } diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 6191c3a2..bc07d103 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -89,6 +89,7 @@ "PortalForcer_portalCachingMixin", "PortalBlock_portalCachingMixin", + "PortalForcerTicketInfo_portalCachingMixin", "Entity_portalSuffocationMixin", "PortalForcer_portalSuffocationMixin",