【Minecraft】BEにもuuidみたいなのがあった話
今の現状
(自分が)JavaプレイヤーとDiscordユーザを接続するBotを開発する。
↓
「そうだ、BEも接続できるようにしよう」
↓
(BEのuuidをGeyserMCぐらいでしか見たことがない)
↓
xuidを知らされる
xuidとは (簡単な解釈)
xuid = Xbox User Id
の略で、
Microsoft社が提供しているXbox Liveで、プレイヤーを識別するためのデータ。
BEのサーバでコンソールを確認すると、プレイヤーのログイン・ログアウト時にXUIDが表示されるもの。
へぇ~
へぇ~って思っただけ。
Java Editionの方には、uuidがあって、プレイヤーの情報とか簡単に取得できたからよかったけど、
Bedrock Editionは、GeyserMC(?)から生成される謎の0000から始まるuuidだけだと思ってたから、
なんか知識が増えた感がすごい(?) 知らなかったのがおかしいかもしれんけど
なんかよくわからんけどgeysermcのapiで取得できるみたい
https://api.geysermc.org で情報を取得できるらしい
https://api.geysermc.org/v2/xbox/xuid/{BEプレイヤーのmcid}
でxuidを取得できるらしい...
なんかよくわからんね
microsoft社の方でもapidocsがあるけど、使い方とurlが動かなくて諦めた
ちなみに、GeyserMCのAPIdocs
xuidがあるって言われてから探すのに時間がかかった
xuidの話については、検索にかければすぐ出てきたけど、GeyserMCのAPIを使って、xuidを取得できたり、することを検索するとJavaの方のdocsが出てしまうから大変だった。docsって調べてもJavaの記事ばっかり...(Javaだからしょうがないけど)
(余談) BEのスキンもAPIで取得できるらしい
/v2/skin/{xuid}
で取得できるらしく
https://api.geysermc.org/v2/xbox/xuid/{BEプレイヤーのmcid}
でxuidを取得して、xuidを貼ると、texture_id
が表示されるので、http://textures.minecraft.net/texture/{texture_id}
で情報を引くと、画像ファイルが表示されます。
最後に
他にも、アカウント情報、進行状況などがXUIDに紐づけられて管理されてるらしいです。
Javaより情報を引っ張りにくいので、これをBotに接続できたとしても、取得が難しそうになったりdbがおかしくなりそうだと思いました。
あとこれは自分が覚えておくための記事なのでもっと詳しく知りたい人は調べてください。
Discussion