【spigot1.12】GameProfileでのスキン変更について

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.316396)

【spigot1.12】GameProfileでのスキン変更について

投稿記事by pico » 2018年5月05日(土) 19:27

GameProfileをputするところまで完成している(はず)のですが、なかなかGameProfileの設定がうまくいきません。何か間違っている点があるのでしょうか?
GameProfileですがプレイヤーのUUIDをmojangAPIに投げるのではなく、自前のpngを使用したいので完全に自作しています。

GameProfileをputする前後のGameProfileとdecodeしたvalueです。
確認しましたが正常にput出来ているのでvalueの書式の問題だと思っているのですが...

put前GameProfile
コード: 全て選択
com.mojang.authlib.GameProfile@53367f44[id=efeea291-d632-4ff2-b56f-68e3c8b699a3,name=I_love_kakkii,properties={textures=[com.mojang.authlib.properties.Property@5a9ef36b]},legacy=false]


put前value
コード: 全て選択
{"timestamp":1525515134488,"profileId":"efeea291d6324ff2b56f68e3c8b699a3","profileName":"I_love_kakkii","textures":{"SKIN":{"url":"http://textures.minecraft.net/texture/4267eb7aae17587bfcbf6e7917b56daacf9c2e87293bfc738575af46bb4","metadata":{"model":"slim"}}}}


put後GameProfile
コード: 全て選択
com.mojang.authlib.GameProfile@53367f44[id=efeea291-d632-4ff2-b56f-68e3c8b699a3,name=I_love_kakkii,properties={textures=[com.mojang.authlib.properties.Property@2506bf22]},legacy=false]


put後value
コード: 全て選択
{"timestamp":1525515149976,"profileId":"efeea291d6324ff2b56f68e3c8b699a3","profileName":"I_love_kakkii","textures":{"SKIN":{"url":"http://textures.minecraft.net/texture/6418d8b8c407aae2ba6c352f4de178e906c51a5658a9507a7f63648510c0a7"}}}
最後に編集したユーザー pico [ 2018年5月09日(水) 11:56 ], 累計 2 回
アバター
pico
ID:0f35adab
大工さん
 
記事: 41
登録日時: 2016年8月02日(火) 18:49

  • (PostNo.316397)

Re: 【spigot1.12】GameProfileでのスキン変更について(

投稿記事by pico » 2018年5月05日(土) 19:31

こっちは自己解決しました

処理を実行するとプレイヤーのスキンがアレックスになります...
また、処理を実行したアカウントから見るとスキンは変わっていないままです。

処理を実行したアカウントから見てもスキンを変える方法もできればお願いします。

putしたあとの処理に間違えっている所があれば指摘お願いします。
(packetのsendにはProtocollibを使用しています)

コード: 全て選択
((CraftPlayer)p).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, ((CraftPlayer)p).getHandle()));
            ((CraftPlayer)p).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, ((CraftPlayer)p).getHandle()));


            p.spigot().respawn();

            Player players;
            for(Player pls : Bukkit.getOnlinePlayers()){
                players = pls;
                players.hidePlayer(p);
            }

            for(Player pls : Bukkit.getOnlinePlayers()){
                players = pls;
                players.showPlayer(p);
            }
アバター
pico
ID:0f35adab
大工さん
 
記事: 41
登録日時: 2016年8月02日(火) 18:49


Return to 質問:開発・制作関連

x