geforkt von Mirrors/Paper
Add Player#sendEquipmentChange(Map) API (#8800)
Dieser Commit ist enthalten in:
Ursprung
42fecd0a5f
Commit
2eca2a27b0
33
patches/api/0427-Add-Player-sendEquipmentChange-Map-API.patch
Normale Datei
33
patches/api/0427-Add-Player-sendEquipmentChange-Map-API.patch
Normale Datei
@ -0,0 +1,33 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Aya <31237389+tal5@users.noreply.github.com>
|
||||
Date: Fri, 20 Jan 2023 13:49:35 +0000
|
||||
Subject: [PATCH] Add Player#sendEquipmentChange(Map) API
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index de960716478477ce199526b8f860cfafa1541ee9..eb2fd6f0e09e50eeacfe4ceccf8fdede55c135a3 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -666,7 +666,21 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
* @param slot The slot of the spoofed equipment change
|
||||
* @param item The ItemStack to display for the player
|
||||
*/
|
||||
- public void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull EquipmentSlot slot, @NotNull ItemStack item);
|
||||
+ // Paper start
|
||||
+ default void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull EquipmentSlot slot, @NotNull ItemStack item) {
|
||||
+ this.sendEquipmentChange(entity, java.util.Map.of(slot, item));
|
||||
+ };
|
||||
+
|
||||
+ /**
|
||||
+ * Send an equipment change for an entity. This fakes the equipment change
|
||||
+ * of an entity for a user. This will not actually change the inventory of
|
||||
+ * the specified entity in any way.
|
||||
+ *
|
||||
+ * @param entity The entity that the player will see the change for
|
||||
+ * @param equipmentChanges A map of slots to the items they will be changed to, cannot contain null values.
|
||||
+ */
|
||||
+ void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull java.util.Map<EquipmentSlot, ItemStack> equipmentChanges);
|
||||
+ // Paper end
|
||||
|
||||
// Paper start
|
||||
/**
|
38
patches/server/0958-Add-Player-sendEquipmentChange-Map-API.patch
Normale Datei
38
patches/server/0958-Add-Player-sendEquipmentChange-Map-API.patch
Normale Datei
@ -0,0 +1,38 @@
|
||||
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 b32f44beab2c9790ee2da8403e362e8b3ecc6175..7b795a8f23a617d1d80f72f3262e11a1c9f806be 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -1055,17 +1055,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<EquipmentSlot, ItemStack> 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<Pair<net.minecraft.world.entity.EquipmentSlot, net.minecraft.world.item.ItemStack>> equipment = Arrays.asList(
|
||||
- new Pair<>(CraftEquipmentSlot.getNMS(slot), CraftItemStack.asNMSCopy(item))
|
||||
- );
|
||||
+ List<Pair<net.minecraft.world.entity.EquipmentSlot, net.minecraft.world.item.ItemStack>> equipment = new ArrayList<>(equipmentChanges.size());
|
||||
+ for (Map.Entry<EquipmentSlot, ItemStack> 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));
|
||||
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren