虽然不开MC服务器了，但是偶尔还玩MC，因此最近有了一些新的发现。

在1.21.11中，客户端判断当前是否在TAB栏显示玩家头像的逻辑是：当前不处于单人游戏中，且与服务器之间的网络连接已经加密，而离线登录时是不会进行加密的。

也就是说要显示头像，必须触发加密，而实现这一点就只能外置登录或正版登录，对于离线模式服务器来说做不到（外置登录服务器在这里和正版的逻辑是一样的）。

在26.2中，我发现login包当中多了一个`onlineMode`字段，而该字段与服务器是否真正处于在线模式、是否加密了连接无关——服务器可以在离线登录的同时将这个字段设置为`true`，而客户端似乎完全信任它。

这实际上给了我们一个强制显示玩家头像的机会，我合理怀疑这个特性可能是在26.1开始就存在的，但是没有验证。所以我制作了这个Velocity插件来做这件事：

https://github.com/cygbs/OfflineFix

除了显示TAB栏头像以外，我不太清楚将这个字段设置为`true`对于离线模式服务器来说有什么额外的实际好处。但是这肯定不是一个bug，而是一个特性，因为Mojang似乎没准备修复它。

我不确定我是否是第一个发现的，但是这确实非常有意思。
