diff --git a/patches/server/0040-Fix-teleportAsync-rotation-API.patch b/patches/server/0040-Fix-teleportAsync-rotation-API.patch new file mode 100644 index 0000000..0dbce83 --- /dev/null +++ b/patches/server/0040-Fix-teleportAsync-rotation-API.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: kugge +Date: Thu, 22 Jun 2023 20:32:58 +0200 +Subject: [PATCH] Fix teleportAsync rotation API + + +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +index 76bcfda336e9cfa039d80ea3ccbebbc3d2b13f7f..24617b3994c0f148f1c17928e18aa1e1a784e6f5 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +@@ -1329,7 +1329,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + boolean success = nmsEntity.teleportAsync( + ((CraftWorld)locationClone.getWorld()).getHandle(), + new net.minecraft.world.phys.Vec3(locationClone.getX(), locationClone.getY(), locationClone.getZ()), +- null, null, net.minecraft.world.phys.Vec3.ZERO, ++ locationClone.getYaw(), locationClone.getPitch(), net.minecraft.world.phys.Vec3.ZERO, // Kaiiju - fix teleportAsync() rotation + cause == null ? TeleportCause.UNKNOWN : cause, + Entity.TELEPORT_FLAG_LOAD_CHUNK | Entity.TELEPORT_FLAG_UNMOUNT, // preserve behavior with old API: dismount the entity so it can teleport + (Entity entityTp) -> { diff --git a/patches/server/0040-Optimize-getEffectiveRange.patch b/patches/server/0040-Optimize-getEffectiveRange.patch deleted file mode 100644 index e4317ae..0000000 --- a/patches/server/0040-Optimize-getEffectiveRange.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: kugge -Date: Thu, 22 Jun 2023 18:27:54 +0200 -Subject: [PATCH] Optimize getEffectiveRange() - - -diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 3fc2b4a91d2b9727972d6b43b6d2c04b1df3c698..5cda4179246956d8d3ce452da7d53689b0d591c2 100644 ---- a/src/main/java/net/minecraft/server/level/ChunkMap.java -+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1374,12 +1374,27 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - } - } - -+ // Kaiiju start - Cache scaled range -+ int scaledMemory = -1; // Kaiiju -+ int scaledAsked = -1; // Kaiiju -+ short scaledRecalculateCounter = 0; // Kaiiju -+ // Kaiiju end -+ - private int scaledRange(int initialDistance) { -- return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); -+ // Kaiiju start - Cache scaled range -+ if (scaledAsked == initialDistance && --scaledRecalculateCounter > 0) { -+ return scaledMemory; -+ } -+ scaledRecalculateCounter = 10000; // TODO: Play with this value -+ scaledMemory = ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); -+ scaledAsked = initialDistance; -+ return scaledMemory; -+ // Kaiiju end - } - - private int getEffectiveRange() { - int i = this.range; -+ if (this.entity.passengers.isEmpty()) return this.scaledRange(i); // Kaiiju - Optimize getEffectiveRange() - Iterator iterator = this.entity.getIndirectPassengers().iterator(); - - while (iterator.hasNext()) {