-
Bug
-
Resolution: Fixed
-
Minecraft 14w31a, Minecraft 1.8-pre2, Minecraft 1.8.4, Minecraft 1.8.7, Minecraft 15w44b, Minecraft 1.9 Pre-Release 4, Minecraft 1.9, Minecraft 1.10.2, Minecraft 16w41a, Minecraft 16w42a, Minecraft 1.12.2, Minecraft 17w50a, Minecraft 1.13-pre7, Minecraft 1.13-pre8, Minecraft 1.13, Minecraft 18w31a, Minecraft 1.13.1, Minecraft 1.13.2, Minecraft 18w48a, Minecraft 18w48b, Minecraft 18w49a, Minecraft 18w50a, Minecraft 19w05a, Minecraft 19w11b, Minecraft 19w12b, Minecraft 19w13b, Minecraft 1.14, Minecraft 1.14.2, Minecraft 1.14.3 Pre-Release 3, Minecraft 1.14.3 Pre-Release 4, 1.14.4, 1.15.1, 1.15.2, 20w07a, 20w18a, 1.16.1, 1.16.2, 20w51a, 1.16.5, 21w14a, 21w15a, 1.17, 1.17.1 Release Candidate 1, 1.17.1, 1.18.1, 1.18.2, 22w12a, 1.19, 1.19.2, 1.19.3, 23w06a
-
Confirmed
-
Networking, Text
-
Low
The bug
When you start a server and while the server is starting open or update the server list in your client, "Old" is shown as the the status of the server (untranslated).
How to reproduce
- Open the server list in your client
- Add a server with the ip localhost
- Start a server on your computer
- Refresh the server list of your client multiple times
The reason
The following is based on decompiled version of Minecraft 1.8 using MCP. All method and class names are the names used in the decompiled version.
The reason why this happens is that the network connection is created before the values for the net.minecraft.network.ServerStatusResponse object of the server are set. If the client pings the server between this period of time, the returned net.minecraft.network.status.server.S00PacketServerInfo packet contains the net.minecraft.network.ServerStatusResponse object with no values set. The public void handleServerInfo(S00PacketServerInfo packetIn) method of the anonymous class based on the net.minecraft.network.status.INetHandlerStatusClient interface created in the net.minecraft.client.network.OldServerPinger class shows then "Old" ("Invalid protocol version" would probably fit better).
Opening the network connection after the server thread was started might make more sense (but I am not sure about this one as I am not very familiar with network managing).