Skip to content

Plain Craft Launcher 的一个分支版本,尝试修复一些UUID问题

License

Notifications You must be signed in to change notification settings

PCL-Community/PCL2-Uuid-Fix

 
 

Repository files navigation

Plain Craft Launcher UUID 修复版

Stars Issues 爱发电

介绍

由于一些历史原因,PCL 的采用了一种和其他启动器非常不同的方式生成离线玩家的 UUID,这导致 PCL 的离线游戏存档和其他启动器的存档可能不能互通,并对局域网联机的一些常见操作造成诸多不便。

本仓库对 PCL 进行了相应修改,使其能够以默认通用的方式生成离线玩家的 UUID,并通过一些选项允许玩家在启动时自定义自己的 UUID。

改动

相比原始的仓库版PCL,粗略的修改内容如下:

  • 修改了注册表根节点位置为HKCU\SOFTWARE\PCL-Community\Uuid-Fix
  • 修改了通用占位识别码为UUID-FIXD-ONTS-HARE
  • 用离线 UUID 选项替代了离线皮肤选项,并提供以下选项:
    • 默认:使用OfflinePlayer:玩家名生成 MD5 然后设置 UUID 版本为 3,变体为 RFC 4122
    • 正版玩家:获取某名在线玩家的 UUID 并应用。
    • 启动时询问:在启动时询问需要使用的 UUID,缺省与默认相同。

默认 UUID 的生成函数大致如下(位于ModLaunch.vb):

Public Function McLoginLegacyUuid(Name As String)
      Dim NameHash As String = GetStringMD5("OfflinePlayer:" & Name)
      Dim PendingVariant As Integer = Conversion.Val("&H" & NameHash(16))
      PendingVariant = (PendingVariant Mod 4) + 8
      Dim FinalVarient As String = PendingVariant.ToString("x")
      Dim FinalUuid As String = (NameHash.Substring(0, 12) & "3" & NameHash.Substring(13, 3) & FinalVarient & NameHash.Substring(17, 15)).ToLower()
      Return FinalUuid
End Function

杂项

根据 PCL 的使用许可,本修改版本不提供可用的二进制文件,请自行编译源代码。

使用效果展示

About

Plain Craft Launcher 的一个分支版本,尝试修复一些UUID问题

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Visual Basic .NET 100.0%