mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2026-01-04 15:41:40 +00:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@1595e4a Make watchdog thread extend TickThread again PaperMC/Paper@34a2917 Add default canUse and permission methods to BasicCommand (#11047) PaperMC/Paper@99ae7bb Don't require author and title to be set on signed book meta (#11068) PaperMC/Paper@9fd5b3c Add AttributeModifier constructor without EquipmentSlotGroup (#11079) PaperMC/Paper@8b35adc Fix HelpCommand searching (#11066) PaperMC/Paper@b4f04ff Add Plugin#getDataPath (#11080) PaperMC/Paper@05e5865 Add ItemType#getItemRarity (#11049) PaperMC/Paper@aa929d6 Call PlayerLaunchProjectileEvent for wind charge (#10911) PaperMC/Paper@8b23018 Avoid collision shapes outside world border in findFreePosition PaperMC/Paper@3b45454 Port random ticking optimisation from Moonrise PaperMC/Paper@77fcb29 Apply incremental player/level saving patch PaperMC/Paper@9fd7710 Apply automatic regionfile header recalculation patch PaperMC/Paper@b57b24d Do not try to stop main thread during watchdog shutdown PaperMC/Paper@2cd8c46 Add OMINOUS_ITEM_SPAWNER SpawnReason (#10897) Gale Changes: Dreeam-qwq/Gale@8631b42 Updated Upstream (Paper) Dreeam-qwq/Gale@9b17b16 [ci skip] Add upstream commit msg generator Dreeam-qwq/Gale@75850c6 Updated Upstream (Paper) Dreeam-qwq/Gale@655a887 [ci skip] Update auto upstream Dreeam-qwq/Gale@c38b773 Updated Upstream (Paper) Dreeam-qwq/Gale@65a5517 Add back Optimize random calls in chunk ticking Purpur Changes: PurpurMC/Purpur@458dc18 Updated Upstream (Paper), closes #1556 PurpurMC/Purpur@87cf9f1 Updated Upstream (Paper)
58 lines
3.9 KiB
Diff
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 5b645db318a73f352838d779e3be16ff866bf3f6..000ee5bf7ef715511e4232d757e8360037bfe8f4 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 d34e31c6f7591bfdd34a6f2fe9376a515f20c3b7..442b5ccc446d0dfc69f2d2e88003a77647af78f6 100644
|
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
@@ -900,10 +900,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 ee1d4d83b856b9a7eba28a6f72256bb5dc33b67b..9325d2c676899fcedc360ea9183339c91af026dc 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
|