Don't skip full player connection tick when dead
Still need to send keep alives and kick for idle Fixes #3299
This commit is contained in:
parent
e2c23475b5
commit
597263fd55
5 changed files with 22 additions and 15 deletions
|
@ -60,7 +60,7 @@ index f1222fcb2bd52b8781d0f92c94e1472fa7b1e493..28f48f22522ef8c3c66381abcf017f08
|
||||||
if (entityplayer != null) {
|
if (entityplayer != null) {
|
||||||
this.g = LoginListener.EnumProtocolState.DELAY_ACCEPT;
|
this.g = LoginListener.EnumProtocolState.DELAY_ACCEPT;
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
index 2e81f3a1d93d66c94e9f0d425f9cee6db4940913..8800a8fcf9a09aa8cf5555e136734856d0c5b1f4 100644
|
index 2e81f3a1d93d66c94e9f0d425f9cee6db4940913..d77b28ab4a5fc93a325a0d5594f66f4f143bd318 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
@@ -69,6 +69,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -69,6 +69,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
|
@ -71,7 +71,7 @@ index 2e81f3a1d93d66c94e9f0d425f9cee6db4940913..8800a8fcf9a09aa8cf5555e136734856
|
||||||
public EntityPlayer player;
|
public EntityPlayer player;
|
||||||
private int e;
|
private int e;
|
||||||
private long lastKeepAlive = SystemUtils.getMonotonicMillis(); private void setLastPing(long lastPing) { this.lastKeepAlive = lastPing;}; private long getLastPing() { return this.lastKeepAlive;}; // Paper - OBFHELPER
|
private long lastKeepAlive = SystemUtils.getMonotonicMillis(); private void setLastPing(long lastPing) { this.lastKeepAlive = lastPing;}; private long getLastPing() { return this.lastKeepAlive;}; // Paper - OBFHELPER
|
||||||
@@ -142,6 +143,17 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -142,6 +143,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
||||||
public void tick() {
|
public void tick() {
|
||||||
|
@ -82,13 +82,20 @@ index 2e81f3a1d93d66c94e9f0d425f9cee6db4940913..8800a8fcf9a09aa8cf5555e136734856
|
||||||
+ playerJoinReady.run();
|
+ playerJoinReady.run();
|
||||||
+ }
|
+ }
|
||||||
+ // Don't tick if not valid (dead), otherwise we load chunks below
|
+ // Don't tick if not valid (dead), otherwise we load chunks below
|
||||||
+ if (!this.player.valid) {
|
+ if (this.player.valid) {
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
this.syncPosition();
|
this.syncPosition();
|
||||||
this.player.lastX = this.player.locX();
|
this.player.lastX = this.player.locX();
|
||||||
this.player.lastY = this.player.locY();
|
this.player.lastY = this.player.locY();
|
||||||
|
@@ -183,7 +193,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
|
this.r = null;
|
||||||
|
this.D = false;
|
||||||
|
this.E = 0;
|
||||||
|
- }
|
||||||
|
+ }} // Paper - end if (valid)
|
||||||
|
|
||||||
|
this.minecraftServer.getMethodProfiler().enter("keepAlive");
|
||||||
|
// Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
index 6a4e4f93eb36ca388523a36abf38bcae3ad375e8..61c7f5f9528ceea34af8dbf4503b9c320b7f67a1 100644
|
index 6a4e4f93eb36ca388523a36abf38bcae3ad375e8..61c7f5f9528ceea34af8dbf4503b9c320b7f67a1 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
|
|
|
@ -9,10 +9,10 @@ their position to the ground/exit location when entering the bed, resulting in
|
||||||
the server believing they're still in the air.
|
the server believing they're still in the air.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
index 8800a8fcf9a09aa8cf5555e136734856d0c5b1f4..38ec22f4c0348e9198eededee05cde58c0248de4 100644
|
index d77b28ab4a5fc93a325a0d5594f66f4f143bd318..0ad23cd1f79621e64fa25582b36b1b26301e2264 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
@@ -162,7 +162,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -160,7 +160,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
this.player.setLocation(this.l, this.m, this.n, this.player.yaw, this.player.pitch);
|
this.player.setLocation(this.l, this.m, this.n, this.player.yaw, this.player.pitch);
|
||||||
++this.e;
|
++this.e;
|
||||||
this.processedMovePackets = this.receivedMovePackets;
|
this.processedMovePackets = this.receivedMovePackets;
|
||||||
|
|
|
@ -69,10 +69,10 @@ index 0b23a0548d52a30c064d624e39a896a9791aab3b..c988c929f1063b417d10d84b0c131277
|
||||||
public boolean hasPermission(int i) {
|
public boolean hasPermission(int i) {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
index 38ec22f4c0348e9198eededee05cde58c0248de4..a180df220e46eb62f00ae00e2482e1d8d07cb107 100644
|
index 0ad23cd1f79621e64fa25582b36b1b26301e2264..13b4bab38203eccf09d805c441615f61bc796190 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
@@ -576,8 +576,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -574,8 +574,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
ParseResults<CommandListenerWrapper> parseresults = this.minecraftServer.getCommandDispatcher().a().parse(stringreader, this.player.getCommandListener());
|
ParseResults<CommandListenerWrapper> parseresults = this.minecraftServer.getCommandDispatcher().a().parse(stringreader, this.player.getCommandListener());
|
||||||
|
|
||||||
this.minecraftServer.getCommandDispatcher().a().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> {
|
this.minecraftServer.getCommandDispatcher().a().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> {
|
||||||
|
@ -87,7 +87,7 @@ index 38ec22f4c0348e9198eededee05cde58c0248de4..a180df220e46eb62f00ae00e2482e1d8
|
||||||
});
|
});
|
||||||
}); // Paper - This needs to be on main
|
}); // Paper - This needs to be on main
|
||||||
}
|
}
|
||||||
@@ -587,7 +591,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -585,7 +589,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
|
|
||||||
builder = builder.createOffset(builder.getInput().lastIndexOf(' ') + 1);
|
builder = builder.createOffset(builder.getInput().lastIndexOf(' ') + 1);
|
||||||
completions.forEach(builder::suggest);
|
completions.forEach(builder::suggest);
|
||||||
|
|
|
@ -5,10 +5,10 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
index a180df220e46eb62f00ae00e2482e1d8d07cb107..02bda8bee469da7d1f845fac58f5d5a762fe76c4 100644
|
index 13b4bab38203eccf09d805c441615f61bc796190..76df4bdf8831f993d52bb6561ff5e05c774811e7 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
@@ -691,7 +691,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -689,7 +689,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
@Override
|
@Override
|
||||||
public void a(PacketPlayInPickItem packetplayinpickitem) {
|
public void a(PacketPlayInPickItem packetplayinpickitem) {
|
||||||
PlayerConnectionUtils.ensureMainThread(packetplayinpickitem, this, this.player.getWorldServer());
|
PlayerConnectionUtils.ensureMainThread(packetplayinpickitem, this, this.player.getWorldServer());
|
||||||
|
|
|
@ -13,10 +13,10 @@ it is triggering a massive movement velocity.
|
||||||
This will ensure that the servers position is synchronized anytime player is teleported.
|
This will ensure that the servers position is synchronized anytime player is teleported.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
index 02bda8bee469da7d1f845fac58f5d5a762fe76c4..a188d9f3b600e1013e31d681f9c6a8deb64ada7e 100644
|
index 76df4bdf8831f993d52bb6561ff5e05c774811e7..10155fcfa5936c6fce2300e21352c5a56b75de6c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
@@ -500,6 +500,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -498,6 +498,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
this.o = this.teleportPos.x;
|
this.o = this.teleportPos.x;
|
||||||
this.p = this.teleportPos.y;
|
this.p = this.teleportPos.y;
|
||||||
this.q = this.teleportPos.z;
|
this.q = this.teleportPos.z;
|
||||||
|
@ -24,7 +24,7 @@ index 02bda8bee469da7d1f845fac58f5d5a762fe76c4..a188d9f3b600e1013e31d681f9c6a8de
|
||||||
if (this.player.H()) {
|
if (this.player.H()) {
|
||||||
this.player.I();
|
this.player.I();
|
||||||
}
|
}
|
||||||
@@ -1271,6 +1272,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -1269,6 +1270,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
|
|
||||||
this.A = this.e;
|
this.A = this.e;
|
||||||
this.player.setLocation(d0, d1, d2, f, f1);
|
this.player.setLocation(d0, d1, d2, f, f1);
|
||||||
|
|
Loading…
Reference in a new issue