From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brody Beckwith <brody@beckwith.dev>
Date: Fri, 14 Jan 2022 00:40:42 -0500
Subject: [PATCH] Multi Block Change API


diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 3a96d1fe95952a1b0be0ef7b3cdf431e5bb8b54f..f954801f6a5d465b8545e75d7ff5af0352d6ec0d 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -579,6 +579,27 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
      */
     public void sendBlockDamage(@NotNull Location loc, float progress);
 
+    // Paper start
+    /**
+     * Send multiple block changes. This fakes a multi block change packet for each
+     * chunk section that a block change occurs. This will not actually change the world in any way.
+     *
+     * @param blockChanges A map of the locations you want to change to their new block data
+     */
+    public default void sendMultiBlockChange(@NotNull java.util.Map<Location, BlockData> blockChanges) {
+        sendMultiBlockChange(blockChanges, false);
+    }
+
+    /**
+     * Send multiple block changes. This fakes a multi block change packet for each
+     * chunk section that a block change occurs. This will not actually change the world in any way.
+     *
+     * @param blockChanges A map of the locations you want to change to their new block data
+     * @param suppressLightUpdates Whether to suppress light updates or not
+     */
+    public void sendMultiBlockChange(@NotNull java.util.Map<Location, BlockData> blockChanges, boolean suppressLightUpdates);
+    // Paper end
+
     /**
      * Send the equipment change of an entity. This fakes the equipment change
      * of an entity for a user. This will not actually change the inventory of
