Add support for ArcLight 1.21

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
This commit is contained in:
Irmo van den Berge committed 2025-07-04 23:06:46 +02:00
1 parent 1a127c1562
commit 86a557ac45
4 files changed
+37 -3

No files matched your search

@@ -228,7 +228,7 @@ class PortalHandler_1_14_1 extends PortalHandler implements Listener {
/*
* <IS_MAIN_WORLD>
* public static boolean isMainEndWorld(org.bukkit.World world) {
* World world = ((org.bukkit.craftbukkit.CraftWorld) world).getHandle();
* World world = (World) ((org.bukkit.craftbukkit.CraftWorld) world).getHandle();
* #if version >= 1.18
* return world.dimension() == World.END;
* #elseif version >= 1.17
@@ -250,7 +250,13 @@ class PortalHandler_1_14_1 extends PortalHandler implements Listener {
* BlockPosition blockposition = new BlockPosition(startBlock.getX(), startBlock.getY(), startBlock.getZ());
* PortalTravelAgent agent = new PortalTravelAgent(world);
* #if version >= 1.21
* #if forge && !exists net.minecraft.world.level.portal.PortalTravelAgent public java.util.Optional<net.minecraft.core.BlockPosition> findClosestPortalPosition(net.minecraft.core.BlockPosition blockposition, net.minecraft.world.level.border.WorldBorder worldborder, int radius);
* // We must use the bool method, the craftbukkit-added radius version doesn't exist
* boolean isSmallRadius = (radius <= 16);
* java.util.Optional opt_result = agent.findClosestPortalPosition(blockposition, isSmallRadius, world.getWorldBorder());
* #else
* java.util.Optional opt_result = agent.findClosestPortalPosition(blockposition, world.getWorldBorder(), radius);
* #endif
* if (!opt_result.isPresent()) {
* return null;
* }
@@ -313,7 +319,12 @@ class PortalHandler_1_14_1 extends PortalHandler implements Listener {
* } else {
* axis = (Math.random() < 0.5) ? EnumDirection$EnumAxis.Z : EnumDirection$EnumAxis.X;
* }
* #require PortalTravelAgent public java.util.Optional<net.minecraft.BlockUtil.Rectangle> createPortal();
* #if forge && !exists net.minecraft.world.level.portal.PortalTravelAgent public java.util.Optional<net.minecraft.BlockUtil.Rectangle> createPortal(net.minecraft.core.BlockPosition blockposition, net.minecraft.core.EnumDirection.EnumAxis enumdirection_enumaxis, net.minecraft.world.entity.Entity entity, int createRadius);
* agent.createPortal(blockposition, axis);
* #else
* agent.createPortal(blockposition, axis, initiator, createRadius);
* #endif
* #elseif version >= 1.16
* // Use default entity if null, set it up properly
* if (initiator == null) {
@@ -5,7 +5,13 @@ optional class Advancement {
public static org.bukkit.advancement.Advancement toBukkit(Object advancement_or_holder) {
#if version >= 1.20.2
#if exists net.minecraft.advancements.AdvancementHolder public final org.bukkit.advancement.Advancement toBukkit();
return ((AdvancementHolder) advancement_or_holder).toBukkit();
#elseif exists org.bukkit.craftbukkit.advancement.CraftAdvancement public CraftAdvancement(net.minecraft.advancements.AdvancementHolder handle);
return new org.bukkit.craftbukkit.advancement.CraftAdvancement((AdvancementHolder) advancement_or_holder);
#else
#error No conversion from AdvancementHolder to CraftAdvancement detected
#endif
#else
return ((Advancement) advancement_or_holder).bukkit;
#endif
@@ -201,10 +201,19 @@ class ClientboundCustomPayloadPacket extends Packet {
#if version >= 1.20.5
CustomPacketPayload payload = instance.payload();
if (payload instanceof DiscardedPayload) {
DiscardedPayload discarded = (DiscardedPayload) payload;
#if exists net.minecraft.network.protocol.common.custom.DiscardedPayload public byte[] data();
return ((DiscardedPayload) payload).data();
#if forge && exists net.minecraft.network.protocol.common.custom.DiscardedPayload public byte[] bridge$getData();
return discarded.bridge$getData();
#else
return discarded.data();
#endif
#else
io.netty.buffer.ByteBuf payloadData = ((DiscardedPayload) payload).data();
#if forge && exists net.minecraft.network.protocol.common.custom.DiscardedPayload public io.netty.buffer.ByteBuf bridge$getData();
io.netty.buffer.ByteBuf payloadData = discarded.bridge$getData();
#else
io.netty.buffer.ByteBuf payloadData = discarded.data();
#endif
byte[] data = new byte[payloadData.readableBytes()];
payloadData.readBytes(data);
return data;
@@ -128,10 +128,18 @@ import net.minecraft.world.level.storage.ValueOutput;
#endif
#if version >= 1.21
#remap net.minecraft.world.entity.Entity public final void igniteForSeconds(float seconds);
#if forge && exists net.minecraft.world.entity.Entity public void setSecondsOnFire(float seconds, boolean callEvent);
#remap net.minecraft.world.entity.Entity public final void igniteForSeconds:setSecondsOnFire(float seconds, boolean callEvent);
#else
#remap net.minecraft.world.entity.Entity public final void igniteForSeconds(float seconds, boolean callEvent);
#endif
#elseif version >= 1.20.5
#remap net.minecraft.world.entity.Entity public final void igniteForSeconds(int seconds);
#if forge && exists net.minecraft.world.entity.Entity public void setSecondsOnFire(int seconds, boolean callEvent);
#remap net.minecraft.world.entity.Entity public final void igniteForSeconds:setSecondsOnFire(int seconds, boolean callEvent);
#else
#remap net.minecraft.world.entity.Entity public final void igniteForSeconds(int seconds, boolean callEvent);
#endif
#elseif version >= 1.18
#remap net.minecraft.world.entity.Entity public void igniteForSeconds:setSecondsOnFire(int seconds);
#remap net.minecraft.world.entity.Entity public void igniteForSeconds:setSecondsOnFire(int seconds, boolean callEvent);