9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-21 16:09:19 +00:00
Files
Leaf/patches/server/0028-Slice-Smooth-Teleports.patch
Dreeam 778edd2e05 Updated Upstream (Paper/Gale/Purpur)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@1c3c47a Correctly check enchants for ItemStack#damage (#11240)
PaperMC/Paper@1187544 Fix teleport event getTo returning null (#11239)
PaperMC/Paper@dd941cc Re-add patches for can-place/can-destroy API (#11238)
PaperMC/Paper@ab0d24a Configuration for horizontal-only item merging (#11219)
PaperMC/Paper@098bd39 Remove arbitrary book page limit (#11228)
PaperMC/Paper@f97aff7 [ci skip] Fix Effect javadocs (#11182)
PaperMC/Paper@4a97ba3 Fix `setSendViewDistance`'s return (#11247)
PaperMC/Paper@1798e94 Fix BasicCommand suggestion arg count (#11241)
PaperMC/Paper@7c9240f Improve standard messenger logging
PaperMC/Paper@9ab644e Fix `TooltipContext.create` being wrong(#11254)
PaperMC/Paper@11b4ac7 Fix disableEndCredits world config (#11261)
PaperMC/Paper@bf5852a Fix NPE for PlayerPostRespawnEvent#getRespawnedLocation (#11268)
PaperMC/Paper@fb53074 Apply optimise collision checking in move packet handling patch
PaperMC/Paper@81bfda8 [ci skip] Specify rebase location in CONTRIBUTING (#11255)
PaperMC/Paper@9571983 Fix scanForLegacyEnderDragon world config (#11262)
PaperMC/Paper@ec55c11 Fix indestructable light blocks (#11275)
PaperMC/Paper@1b8ab11 Add Configuration for vertical Despawn Ranges (#10440)
PaperMC/Paper@534ab86 [ci-skip] Revert "Add Configuration for vertical Despawn Ranges (#10440)" (#11278)
PaperMC/Paper@e619744 Allow skipping of world symlink validation (#11250)
PaperMC/Paper@78216fe Re-implement portalCreateRadius world config (#11267)
PaperMC/Paper@4829fbf Handle custom registry elements properly (#11230)
PaperMC/Paper@d5ffc57 Implement more methods for horse inventories (#11147)
PaperMC/Paper@52ae4ad Migrate ArmorStand meta to using entity tag (#11107)
PaperMC/Paper@75655ec Add Configuration for vertical Despawn Ranges (#11279)
PaperMC/Paper@0e73617 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#11284)
PaperMC/Paper@66a97cc Update item data sanitization (#11227)
PaperMC/Paper@2e82fd2 Add even more Enchantment API (#11115)
PaperMC/Paper@57dd822 Leashable API (#10961)
PaperMC/Paper@8c3018a Fix Selector Arguments not working with permission (#11286)
PaperMC/Paper@4401748 Fix CraftBukkit drag system (#10703)
PaperMC/Paper@64c9ee6 Allow getting/setting the sign's editor uuid (#10637)

Gale Changes:
Dreeam-qwq/Gale@dc228bb Updated Upstream (Paper)
Dreeam-qwq/Gale@ecbaa9c Updated Upstream (Paper)
Dreeam-qwq/Gale@7e2df5b Updated Upstream (Paper)
Dreeam-qwq/Gale@ea59414 Updated Upstream (Paper)
Dreeam-qwq/Gale@e373e97 Updated Upstream (Paper)

Purpur Changes:
PurpurMC/Purpur@366af80 Updated Upstream (Paper)
PurpurMC/Purpur@07979c3 Updated Upstream (Paper)
PurpurMC/Purpur@3f790ac Updated Upstream (Paper)
PurpurMC/Purpur@201e928 Updated Upstream (Pufferfish) (#1575)
PurpurMC/Purpur@f2307b8 Updated Upstream (Paper)
PurpurMC/Purpur@bba87bf Updated Upstream (Paper)
PurpurMC/Purpur@f530395 Fix no exp drops from spawners using silk touch pickaxe without option enabled  (#1582)
2024-08-17 19:03:05 -04:00

58 lines
3.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Cryptite <cryptite@gmail.com>
Date: Sat, 13 Aug 2022 08:58:14 -0500
Subject: [PATCH] Slice: Smooth Teleports
Original license: MIT
Original project: https://github.com/Cryptite/Slice
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index e6d22346d37261751563b039ae2ad8629ff83d8e..d05f687cc2a765058c8eabfcb50d1cc84a13073d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -307,6 +307,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
private boolean tpsBar = false; // Purpur
private boolean compassBar = false; // Purpur
private boolean ramBar = false; // Purpur
+ public boolean smoothWorldTeleport; // Slice
// Paper start - rewrite chunk system
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 03aa00fda048a634777dfc28a8b45599ae4c4b3b..6bf9d97992b17aa985e16d9367b64bbe1b0b6dfe 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -903,10 +903,10 @@ public abstract class PlayerList {
ServerLevel worldserver1 = entityplayer1.serverLevel();
LevelData worlddata = worldserver1.getLevelData();
- entityplayer1.connection.send(new ClientboundRespawnPacket(entityplayer1.createCommonSpawnInfo(worldserver1), (byte) i));
+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.send(new ClientboundRespawnPacket(entityplayer1.createCommonSpawnInfo(worldserver1), (byte) i)); // Slice
entityplayer1.connection.send(new ClientboundSetChunkCacheRadiusPacket(worldserver1.spigotConfig.viewDistance)); // Spigot
entityplayer1.connection.send(new ClientboundSetSimulationDistancePacket(worldserver1.spigotConfig.simulationDistance)); // Spigot
- entityplayer1.connection.teleport(CraftLocation.toBukkit(entityplayer1.position(), worldserver1.getWorld(), entityplayer1.getYRot(), entityplayer1.getXRot())); // CraftBukkit
+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.teleport(CraftLocation.toBukkit(entityplayer1.position(), worldserver1.getWorld(), entityplayer1.getYRot(), entityplayer1.getXRot())); // CraftBukkit // Slice
entityplayer1.connection.send(new ClientboundSetDefaultSpawnPositionPacket(worldserver.getSharedSpawnPos(), worldserver.getSharedSpawnAngle()));
entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel));
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index d57cb8e3fec8db07dea328abeada47829eda111c..04aa0c7d2946a38427951217f2b865b005011ef5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1361,6 +1361,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
}
+ // Slice start
+ public void teleportWithoutRespawn(Location location) {
+ ServerPlayer serverPlayer = getHandle();
+ serverPlayer.smoothWorldTeleport = true;
+ teleport(location);
+ serverPlayer.smoothWorldTeleport = false;
+ }
+ // Slice end
+
@Override
public boolean teleport(Location location, PlayerTeleportEvent.TeleportCause cause) {
// Paper start - Teleport API