1111import org .bukkit .Bukkit ;
1212import org .bukkit .Color ;
1313import org .bukkit .Material ;
14+ import org .bukkit .NamespacedKey ;
1415import org .bukkit .enchantments .Enchantment ;
1516import org .bukkit .entity .Player ;
1617import org .bukkit .inventory .ItemFlag ;
@@ -148,6 +149,8 @@ public static ItemStack getItemFromProperties(String[] properties,Player player)
148149 List <String > customModelComponentDataFloats = new ArrayList <>();
149150 List <String > customModelComponentDataColors = new ArrayList <>();
150151
152+ String itemModel = null ;
153+
151154 ItemStack savedItem = null ;
152155
153156 for (String property : properties ) {
@@ -169,6 +172,8 @@ public static ItemStack getItemFromProperties(String[] properties,Player player)
169172 }else if (property .startsWith ("custom_model_component_data_colors:" )){
170173 String [] splitC = property .replace ("custom_model_component_data_colors:" , "" ).split ("\\ |" );
171174 customModelComponentDataColors .addAll (Arrays .asList (splitC ));
175+ }else if (property .startsWith ("item_model:" )){
176+ itemModel = property .replace ("item_model:" ,"" );
172177 }else if (property .startsWith ("durability:" )) {
173178 durability = Short .parseShort (property .replace ("durability:" , "" ));
174179 }else if (property .startsWith ("name:" )) {
@@ -245,6 +250,13 @@ public static ItemStack getItemFromProperties(String[] properties,Player player)
245250 meta .setCustomModelDataComponent (customModelDataComponent );
246251 }
247252
253+ if (serverVersion .serverVersionGreaterEqualThan (serverVersion ,ServerVersion .v1_21_R3 )){
254+ if (itemModel != null ){
255+ String [] sep = itemModel .split ("\\ |" );
256+ meta .setItemModel (new NamespacedKey (sep [0 ],sep [1 ]));
257+ }
258+ }
259+
248260 if (!enchants .isEmpty ()) {
249261 for (int i =0 ;i <enchants .size ();i ++) {
250262 String [] sep2 = enchants .get (i ).split (";" );
0 commit comments