aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/MinecraftServer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/MinecraftServer.cpp')
-rw-r--r--Minecraft.Client/MinecraftServer.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/Minecraft.Client/MinecraftServer.cpp b/Minecraft.Client/MinecraftServer.cpp
index 55b02cb9..54be25ff 100644
--- a/Minecraft.Client/MinecraftServer.cpp
+++ b/Minecraft.Client/MinecraftServer.cpp
@@ -2169,12 +2169,16 @@ void MinecraftServer::tick()
}
Entity::tickExtraWandering(); // 4J added
- PIXBeginNamedEvent(0,"Connection tick");
- connection->tick();
- PIXEndNamedEvent();
+ // Process player disconnect/kick queue BEFORE ticking connections.
+ // PendingConnection::handleLogin rejects duplicate XUIDs, so the old
+ // player must be removed from PlayerList before a reconnecting client's
+ // LoginPacket is processed.
PIXBeginNamedEvent(0,"Players tick");
players->tick();
PIXEndNamedEvent();
+ PIXBeginNamedEvent(0,"Connection tick");
+ connection->tick();
+ PIXEndNamedEvent();
// 4J - removed
#if 0