11package de .pascalpex .pexnpc .npc ;
22
3+ import com .google .common .collect .ImmutableMultimap ;
4+ import com .google .common .collect .Multimap ;
35import com .mojang .authlib .GameProfile ;
46import com .mojang .authlib .properties .Property ;
7+ import com .mojang .authlib .properties .PropertyMap ;
58import de .pascalpex .pexnpc .files .Config ;
69import net .minecraft .network .syncher .EntityDataAccessor ;
710import net .minecraft .network .syncher .EntityDataSerializers ;
1013import net .minecraft .server .level .ClientInformation ;
1114import net .minecraft .server .level .ServerLevel ;
1215import net .minecraft .server .level .ServerPlayer ;
16+ import net .minecraft .world .entity .Avatar ;
1317import org .bukkit .Bukkit ;
1418import org .bukkit .Location ;
1519import org .bukkit .craftbukkit .CraftServer ;
@@ -51,9 +55,13 @@ public PlaceableNPC(NPC npc) {
5155 builder .append (suffix );
5256 suffix = builder .toString ();
5357
54- GameProfile gameProfile = new GameProfile (UUID .randomUUID (), actualName );
5558 NPCSkin skin = npc .getSkin ();
56- gameProfile .getProperties ().put ("textures" , new Property ("textures" , skin .texture (), skin .signature ()));
59+ Multimap <String , Property > profileProperties = new ImmutableMultimap .Builder <String , Property >()
60+ .put ("textures" , new Property ("textures" , skin .texture (), skin .signature ()))
61+ .build ();
62+
63+ GameProfile gameProfile = new GameProfile (UUID .randomUUID (), actualName , new PropertyMap (profileProperties ));
64+
5765
5866 Location loc = npc .getLocation ();
5967 MinecraftServer server = ((CraftServer ) Bukkit .getServer ()).getServer ();
@@ -67,10 +75,10 @@ public PlaceableNPC(NPC npc) {
6775 int skinMode = Config .getSkinMode ();
6876 switch (skinMode ) {
6977 case 2 :
70- watcher .set (new EntityDataAccessor <>(17 , EntityDataSerializers .BYTE ), (byte ) 126 );
78+ watcher .set (new EntityDataAccessor <>(Avatar . DATA_PLAYER_MODE_CUSTOMISATION . id () , EntityDataSerializers .BYTE ), (byte ) 126 );
7179 break ;
7280 case 3 :
73- watcher .set (new EntityDataAccessor <>(17 , EntityDataSerializers .BYTE ), (byte ) 127 );
81+ watcher .set (new EntityDataAccessor <>(Avatar . DATA_PLAYER_MODE_CUSTOMISATION . id () , EntityDataSerializers .BYTE ), (byte ) 127 );
7482 break ;
7583 default :
7684 break ;
0 commit comments