Spawnowanie sztucznego gracza ze skinem

Dyskusja w 'Tworzenie pluginów' rozpoczęta przez użytkownika AlanOGLL, Gru 17, 2016.

  1. AlanOGLL
    Offline

    AlanOGLL Nowicjusz

    Wiadomości:
    11
    Polubienia:
    1
    Punkty:
    8
    Witam, w moim pluginie potrzebuję spawnowania sztucznego gracza, jednak przy testowaniu tego nie pokazuje dobrego skina, tylko albo steve, albo ten drugi defaultowy. Wszystko odbywa się na wersji 1.8, a oto kod:
    Kod (text):
    1.  
    2. private static EntityPlayer npc;
    3.     public static void loadNpcs(){
    4.         MinecraftServer nmsServer = ((CraftServer) Bukkit.getServer()).getServer();
    5.         WorldServer nmsWorld = ((CraftWorld) Bukkit.getWorlds().get(0)).getHandle();
    6.         npc = new EntityPlayer(nmsServer, nmsWorld, new GameProfile(UUID.fromString("069a79f4-44e9-4726-a5be-fca90e38aaf5"), "Notch"), new PlayerInteractManager(nmsWorld));
    7.     }
    8.     @EventHandler
    9.     public void onPlayerJoin(PlayerJoinEvent e){
    10.         npc.setLocation(e.getPlayer().getLocation().getX(), e.getPlayer().getLocation().getY(), e.getPlayer().getLocation().getZ(), 0, 0);
    11.         PlayerConnection connection = ((CraftPlayer) e.getPlayer()).getHandle().playerConnection;
    12.         connection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, npc));
    13.         connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
    14.     }
    15.  
     
  2. GotoFinal
    Offline

    GotoFinal Użytkownik

    Wiadomości:
    304
    Polubienia:
    198
    Punkty:
    103
    Musisz też wysłać pakiet od skina, w wersjach 1.8 i wyżej odpowiada za to pakiet od tab-a do każdego gracza który ma zobaczyć skina, tam jest wartość GameProfile z nickiem, uuid, i danymi skina.
     
    AlanOGLL lubi to.
  3. AlanOGLL
    Offline

    AlanOGLL Nowicjusz

    Wiadomości:
    11
    Polubienia:
    1
    Punkty:
    8
    Nie rozumiem za bardzo, mam zrobić coś w tym stylu?
    Kod (text):
    1.  
    2.         connection.sendPacket(new GameProfile(UUID.fromString("069a79f4-44e9-4726-a5be-fca90e38aaf5"), "Notch"));
    3.  
     
  4. GotoFinal
    Offline

    GotoFinal Użytkownik

    Wiadomości:
    304
    Polubienia:
    198
    Punkty:
    103
  5. AlanOGLL
    Offline

    AlanOGLL Nowicjusz

    Wiadomości:
    11
    Polubienia:
    1
    Punkty:
    8
    @up Skoro ty nie pamiętasz, to ja tym bardziej ;/ Nigdy w pakiety sie nie bawiłem, więc domyślać się jest ciężko
     
  6. GotoFinal
    Offline

    GotoFinal Użytkownik

    Wiadomości:
    304
    Polubienia:
    198
    Punkty:
    103
    nikt nie pamięta nazw wszystkich pakietów, dla tego jak się nie pamięta, to się szuka, wszystkie pakiety mają w nazwie że są pakietami, i wystraczy poszukać po nazwie czegoś co ma sens i/lub sprawdzić pola w tej klasie, czy odpowiadają jako-tako temu co na wiki, jak nie potrafisz tego zrozumieć, to użyj API, np ProtocolLib + PacketWrapper https://github.com/dmulloy2/PacketW...7430d36017e4b1a888e6c8d0b41222b/PacketWrapper - z 1.8
    i wtedy można użyć tego API, łatwiej tutaj rozpoznać pakiety po nazwie, no i łatwiej je tworzyc.
     
  7. KrzychuHD
    Offline

    KrzychuHD Nowicjusz

    Wiadomości:
    9
    Polubienia:
    1
    Punkty:
    8
    Odnosnie silnika Diorite to juz wyszedl?? :D
     
  8. GotoFinal
    Offline

    GotoFinal Użytkownik

    Wiadomości:
    304
    Polubienia:
    198
    Punkty:
    103
    nope, raczej nie prędko to będzie używane, minecraft się szybko rozwija, a ja nie mam dużo wolnego czasu a i dużo w projekcie jest popsute i trzeba zmienić, więc nikt nie wie czy i kiedy się pojawi.
     
  9. Vaneska
    Offline

    Vaneska Nowicjusz

    Wiadomości:
    11
    Polubienia:
    0
    Punkty:
    6
    Polecam SkinsRestorer. Wystarczy zalozyc skina na siebi i wgrac na npc - zapisac - gotowe:) Jesli w ogole o to ci chodzilo xD pozdrawiam