Smooth world teleports
This commit is contained in:
@@ -29,7 +29,7 @@ index fa56cd09102a89692b42f1d14257990508c5c720..f9251183df72ddc56662fd3f02acf216
|
||||
setListData(vector);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 1e3185f84c3017a4f756bdf14e397604b74edf4e..b8f55af3e9640ca19662623d0e738f34cc0e71e4 100644
|
||||
index 74c6c9b6ea7f0f3564f76db4cdac1c89789434ed..586df67649d8f022299bb40c07b330118ba28c7b 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -305,7 +305,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<Runnab
|
||||
@@ -71,10 +71,10 @@ index 1e3185f84c3017a4f756bdf14e397604b74edf4e..b8f55af3e9640ca19662623d0e738f34
|
||||
tickSection = curTime;
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index fb9a857dd119333b49867bb48846679ffa8193e1..1c335e6ae94b010bf293400b74b23a6f00a996a9 100644
|
||||
index 692c4066584c3f468b16ca63f56d124d9b9b741a..85ab8a08444d70ab39c1f42611616f4ad5afffc2 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -2469,6 +2469,7 @@ public final class CraftServer implements Server {
|
||||
@@ -2509,6 +2509,7 @@ public final class CraftServer implements Server {
|
||||
@Override
|
||||
public double[] getTPS() {
|
||||
return new double[] {
|
||||
|
||||
@@ -7,7 +7,7 @@ Original code by pl3xgaming, licensed under MIT
|
||||
You can find the original code on https://github.com/pl3xgaming/Purpur
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index fe38270c83555fd2008f9ce873ba2964a283e6a8..142ca290c1964fe78dcfe247d5e927ae5a2ddf2f 100644
|
||||
index 2bc5bb4fbfb8b354c08e00059727d96426bcdaac..71d7fb64181f626a773865f1d57f567686aaa7c0 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1111,6 +1111,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -19,10 +19,10 @@ index fe38270c83555fd2008f9ce873ba2964a283e6a8..142ca290c1964fe78dcfe247d5e927ae
|
||||
// CraftBukkit end
|
||||
this.setLevel(worldserver);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index b6d3e77b5ea67f9c2a35e37ac35d5f77e8436995..36e8f89609b9b4078ab7a134b780b87400633c03 100644
|
||||
index 0e5b670ecbde0a917af961aa7099b0a073d1d8f6..d657d63820754ef419428e672556f129ebc057fb 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -2716,12 +2716,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
@@ -2718,12 +2718,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
return Vec3.directionFromRotation(this.getRotationVector());
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ index b6d3e77b5ea67f9c2a35e37ac35d5f77e8436995..36e8f89609b9b4078ab7a134b780b874
|
||||
|
||||
this.isInsidePortal = true;
|
||||
diff --git a/src/main/java/xyz/arthurb/mirai/MiraiConfig.java b/src/main/java/xyz/arthurb/mirai/MiraiConfig.java
|
||||
index 8a06c7ef1c239b4999aa58bbe95da68aca903a19..5b3e83d7ca76819bed73a261736949968806b332 100644
|
||||
index 99c8d1287c0a0a434911219b898a5e07cc78dcb4..05fffebec57fa28790a3daba62697baa14e6cb57 100644
|
||||
--- a/src/main/java/xyz/arthurb/mirai/MiraiConfig.java
|
||||
+++ b/src/main/java/xyz/arthurb/mirai/MiraiConfig.java
|
||||
@@ -231,5 +231,11 @@ public class MiraiConfig {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Change defaults in YAML config files
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
index a94be051d8c7aec6fe6bc00e14994c3b493cd28d..5d211fc499e9b38d29be4de2b3389b9d86f9f638 100644
|
||||
index f404f163626959478756451d9e97a98f8f109da6..8669538a878684e71e55e50a692df93135b5f7da 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
@@ -203,7 +203,7 @@ public class PaperConfig {
|
||||
@@ -74,7 +74,7 @@ index a94be051d8c7aec6fe6bc00e14994c3b493cd28d..5d211fc499e9b38d29be4de2b3389b9d
|
||||
consoleHasAllPermissions = getBoolean("settings.console-has-all-permissions", consoleHasAllPermissions);
|
||||
}
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
index 7db27ff19a66454a941d24d3c6fb47830e927509..13079953c62948c9f036d01f0cd216e4f9809bea 100644
|
||||
index 86edf7ddd025b54b2fc1907a306168bd56dd5396..c316ee859c466288e05e13f5d27aa6a8e26d878b 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -59,9 +59,9 @@ public class PaperWorldConfig {
|
||||
@@ -305,7 +305,7 @@ index 7db27ff19a66454a941d24d3c6fb47830e927509..13079953c62948c9f036d01f0cd216e4
|
||||
log("Withers properly target players: " + fixWitherTargetingBug);
|
||||
}
|
||||
|
||||
@@ -894,8 +906,13 @@ public class PaperWorldConfig {
|
||||
@@ -899,8 +911,13 @@ public class PaperWorldConfig {
|
||||
private Table<String, String, Integer> sensorTickRates;
|
||||
private Table<String, String, Integer> behaviorTickRates;
|
||||
private void tickRates() {
|
||||
@@ -321,7 +321,7 @@ index 7db27ff19a66454a941d24d3c6fb47830e927509..13079953c62948c9f036d01f0cd216e4
|
||||
log("Tick rates:");
|
||||
sensorTickRates = loadTickRates("sensor");
|
||||
behaviorTickRates = loadTickRates("behavior");
|
||||
@@ -934,7 +951,7 @@ public class PaperWorldConfig {
|
||||
@@ -939,7 +956,7 @@ public class PaperWorldConfig {
|
||||
public it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<net.minecraft.resources.ResourceLocation> featureSeeds = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>();
|
||||
private void featureSeeds() {
|
||||
featureSeeds.defaultReturnValue(-1);
|
||||
|
||||
@@ -7,10 +7,10 @@ Original code by pl3xgaming, licensed under MIT
|
||||
You can find the original code on https://github.com/pl3xgaming/Purpur
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 36e8f89609b9b4078ab7a134b780b87400633c03..49e8682640a44cf2fd880551fd78672937ae908b 100644
|
||||
index d657d63820754ef419428e672556f129ebc057fb..d1580c9b07b18c441e2b0f5bb9b3864c46f91fd2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -3836,12 +3836,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
@@ -3857,12 +3857,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
this.xRotO = this.getXRot();
|
||||
this.yRotO = this.getYRot();
|
||||
}
|
||||
@@ -31,7 +31,7 @@ index 36e8f89609b9b4078ab7a134b780b87400633c03..49e8682640a44cf2fd880551fd786729
|
||||
int minBlockX = Mth.floor(axisalignedbb.minX);
|
||||
int maxBlockX = Mth.ceil(axisalignedbb.maxX);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
index 56838c9f214c0f75041e75c45ad1a0c72fcacc66..91650996837a6932f1b9ccef5c25e9e18d7d1df0 100644
|
||||
index 4da560f6e4da0750bda78b900b2d916d58adfccb..3c290290bc2088cfcf68a80d097dd2f7e2c796b7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
@@ -327,4 +327,10 @@ public class Squid extends WaterAnimal {
|
||||
|
||||
@@ -7,10 +7,10 @@ Original code by pl3xgaming, licensed under MIT
|
||||
You can find the original code on https://github.com/pl3xgaming/Purpur
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 49e8682640a44cf2fd880551fd78672937ae908b..6abee01345f739b064f280821394e18d96fa9c56 100644
|
||||
index d1580c9b07b18c441e2b0f5bb9b3864c46f91fd2..2726bd04363c7952181adbccf03d1146fd30fc0f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -2721,7 +2721,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
@@ -2723,7 +2723,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
if (this.isOnPortalCooldown()) {
|
||||
if (!(xyz.arthurb.mirai.MiraiConfig.playerFixStuckPortal && this instanceof Player && !pos.equals(portalPos))) // Purpur
|
||||
this.setPortalCooldown();
|
||||
@@ -19,7 +19,7 @@ index 49e8682640a44cf2fd880551fd78672937ae908b..6abee01345f739b064f280821394e18d
|
||||
if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) {
|
||||
this.portalEntrancePos = pos.immutable();
|
||||
portalPos = BlockPos.ZERO; // Purpur
|
||||
@@ -3354,7 +3354,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
@@ -3375,7 +3375,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
}
|
||||
|
||||
public boolean canChangeDimensions() {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Don't send equipment updates if only durability changed
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 0b6331f333e7cbdb76f83cbc2acb027e5716bc07..8e056efb5062c07de6a3e589e70535ab082bdfbe 100644
|
||||
index 8f6903aaac8da81c70e1fc98d5be708ca3586848..4d4880c1da93ba071b626ff9d6848697f3d9201b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -3011,7 +3011,7 @@ public abstract class LivingEntity extends Entity {
|
||||
@@ -3010,7 +3010,7 @@ public abstract class LivingEntity extends Entity {
|
||||
|
||||
ItemStack itemstack1 = this.getItemBySlot(enumitemslot);
|
||||
|
||||
|
||||
@@ -156,10 +156,10 @@ index d175a41fd8c24813904019e25432c4a796db0b7b..ba2beaf0689b074a6b653fdf9dfbd7ba
|
||||
|
||||
if (this.entity instanceof LivingEntity) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index adc89ce8cf50abaceaed433092bd3ef97035fb70..80bc033a58e8cd85de066db61fbce75a92181635 100644
|
||||
index f39be126e53e5325518615ce37c6e25eddbc1cb3..17efaa85da02b32169d6df2bff1289cd1133035f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -2971,7 +2971,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
@@ -2973,7 +2973,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
@@ -169,7 +169,7 @@ index adc89ce8cf50abaceaed433092bd3ef97035fb70..80bc033a58e8cd85de066db61fbce75a
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index cea92f1dc663bf0648b2bd877d86ca380a517bc9..b869f6462813839ef147b5367a42cd0c557f0f7e 100644
|
||||
index ce713e1857121ca52467ad561c4fbb30ae054d87..efe1c292059c6cadf4d26eac9e5a2a10f2b65a80 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -633,7 +633,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -182,7 +182,7 @@ index cea92f1dc663bf0648b2bd877d86ca380a517bc9..b869f6462813839ef147b5367a42cd0c
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 6c7cb224229fa3aa64d6cf3b25a2213e31165931..ddbeccdd3afd8eb2b515cda3c3841f6e27ddcf59 100644
|
||||
index f7b05cb6c145adadf0836ea9f7903675b002569a..1e177619330cbd3e0f83ecbeb4302612323fde44 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -2003,7 +2003,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
|
||||
36
patches/server/0072-Smooth-world-teleports.patch
Normal file
36
patches/server/0072-Smooth-world-teleports.patch
Normal file
@@ -0,0 +1,36 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Etil <81570777+etil2jz@users.noreply.github.com>
|
||||
Date: Wed, 13 Oct 2021 18:49:08 +0200
|
||||
Subject: [PATCH] Smooth world teleports
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 71d7fb64181f626a773865f1d57f567686aaa7c0..3504a24e562b30c18d4c25f126d4113a5c8b7747 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -263,6 +263,7 @@ public class ServerPlayer extends Player {
|
||||
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
|
||||
public boolean needsChunkCenterUpdate; // Paper - no-tick view distance // Paper - public
|
||||
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event
|
||||
+ public boolean smoothWorldTeleport; // Mirai
|
||||
|
||||
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) {
|
||||
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 71a742704038fa7a1174ce1d118735d917095f60..2931b46638d256d0dc9f89ebb78d0d24e073f82a 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -952,11 +952,11 @@ public abstract class PlayerList {
|
||||
}
|
||||
// CraftBukkit start
|
||||
LevelData worlddata = worldserver1.getLevelData();
|
||||
- entityplayer1.connection.send(new ClientboundRespawnPacket(worldserver1.dimensionType(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), entityplayer1.gameMode.getGameModeForPlayer(), entityplayer1.gameMode.getPreviousGameModeForPlayer(), worldserver1.isDebug(), worldserver1.isFlat(), flag));
|
||||
+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.send(new ClientboundRespawnPacket(worldserver1.dimensionType(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), entityplayer1.gameMode.getGameModeForPlayer(), entityplayer1.gameMode.getPreviousGameModeForPlayer(), worldserver1.isDebug(), worldserver1.isFlat(), flag)); // Mirai
|
||||
entityplayer1.connection.send(new ClientboundSetChunkCacheRadiusPacket(worldserver1.getChunkSource().chunkMap.playerChunkManager.getLoadDistance())); // Spigot // Paper - no-tick view distance// Paper - replace old player chunk management
|
||||
entityplayer1.setLevel(worldserver1);
|
||||
entityplayer1.unsetRemoved();
|
||||
- entityplayer1.connection.teleport(new Location(worldserver1.getWorld(), entityplayer1.getX(), entityplayer1.getY(), entityplayer1.getZ(), entityplayer1.getYRot(), entityplayer1.getXRot()));
|
||||
+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.teleport(new Location(worldserver1.getWorld(), entityplayer1.getX(), entityplayer1.getY(), entityplayer1.getZ(), entityplayer1.getYRot(), entityplayer1.getXRot())); // Mirai
|
||||
entityplayer1.setShiftKeyDown(false);
|
||||
|
||||
// entityplayer1.connection.b(entityplayer1.locX(), entityplayer1.locY(), entityplayer1.locZ(), entityplayer1.getYRot(), entityplayer1.getXRot());
|
||||
Reference in New Issue
Block a user