From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aya <31237389+tal5@users.noreply.github.com> Date: Fri, 20 Jan 2023 13:49:59 +0000 Subject: [PATCH] Add Player#sendEquipmentChange(Map) API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 0da6a1a688a67868472143a254942eddc5a91b49..ded1f3034da67d89efaf4b31620ea2e43002f41d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1068,17 +1068,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.sendSignChange0(components, loc, dyeColor, hasGlowingText); // Paper } + // Paper start @Override - public void sendEquipmentChange(LivingEntity entity, EquipmentSlot slot, ItemStack item) { + public void sendEquipmentChange(LivingEntity entity, Map equipmentChanges) { Preconditions.checkArgument(entity != null, "entity must not be null"); - Preconditions.checkArgument(slot != null, "slot must not be null"); - Preconditions.checkArgument(item != null, "item must not be null"); + Preconditions.checkNotNull(equipmentChanges, "equipmentChanges must not be null"); if (this.getHandle().connection == null) return; - List> equipment = Arrays.asList( - new Pair<>(CraftEquipmentSlot.getNMS(slot), CraftItemStack.asNMSCopy(item)) - ); + List> equipment = new ArrayList<>(equipmentChanges.size()); + for (Map.Entry entry : equipmentChanges.entrySet()) { + Preconditions.checkNotNull(entry.getKey(), "EquipmentSlot key must not be null"); + Preconditions.checkNotNull(entry.getValue(), "ItemStack value must not be null"); + equipment.add(new Pair<>(CraftEquipmentSlot.getNMS(entry.getKey()), CraftItemStack.asNMSCopy(entry.getValue()))); + } + // Paper end this.getHandle().connection.send(new ClientboundSetEquipmentPacket(entity.getEntityId(), equipment)); }