登入器(啟動器)研究 - 帳號登錄
參考資料
啟動遊戲的方式為(範列, 參數依實際需要設定)
java -Xmn128M -Xms256M -Xmx512M -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=1 -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:MaxGCPauseMillis=500 -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -cp "mcp_data\.minecraft\bin\*" -Djava.library.path="mcp_data\.minecraft\bin\natives" net.minecraft.client.Minecraft username sessionID;
若不希望出現命令視窗, 則可以把java改為javaw
上述範例的遊戲路徑設定為『.\mcp_data\.minecraft\』
而上述命令需要的username sessionID則是本文的重點
Minecraft的帳號登入流程
1. 將帳號與密碼登入到註冊網站
https://login.minecraft.net/?user=<USERNAME>&password=<PASSWORD>&version=13
其中
<USERNAME>填入申請的帳號(名稱或是mail)
<PASSWORD>則是填入密碼
2. 若該帳號為付費帳號
則回應類似以下的資料格式
1343825972000:deprecated:<username >:<sessionID>:dba0c48e1c584963b9e93a038a66bb98
其中username與sessionID則是啟動遊戲要帶入的遊戲帳號資料
3. 若該帳號非付費帳號
則回應類似以下的資料格式"Bad login"
代表該帳號並非付費帳號, 此時就無法使用上述命令啟動遊戲(亦非本文討論內容)
至於程式實做部分
基於上述原則下以VB、VC++、VC#或JAVA皆可完成
而程式更新的部分也不在本文討論範圍內
補充說明
以官方登入器來說
成功登入帳號後會產生lastlogin的檔案
裡面記錄成功登錄後的資訊
所以官方登入起啟動後會先檢查此檔案
若無此檔案則進行帳號驗證並在驗證成功後產生lastlogin
若登入失敗但有lastlogin則會出現plat offline的選項
若登入失敗且也無lastlogin則會無法進如遊戲