--- a/net/minecraft/server/commands/GiveCommand.java
+++ b/net/minecraft/server/commands/GiveCommand.java
@@ -65,32 +_,34 @@
                     int min = Math.min(maxStackSize, i1);
                     i1 -= min;
                     ItemStack itemStack1 = item.createItemStack(min, false);
-                    boolean flag = serverPlayer.getInventory().add(itemStack1);
+                    serverPlayer.getBukkitEntity().taskScheduler.schedule((ServerPlayer nmsEntity) -> { // Folia - region threading
+                    boolean flag = nmsEntity.getInventory().add(itemStack1); // Folia - region threading
                     if (flag && itemStack1.isEmpty()) {
-                        ItemEntity itemEntity = serverPlayer.drop(itemStack, false, false, false); // CraftBukkit - SPIGOT-2942: Add boolean to call event
+                        ItemEntity itemEntity = nmsEntity.drop(itemStack, false, false, false); // CraftBukkit - SPIGOT-2942: Add boolean to call event // Folia - region threading
                         if (itemEntity != null) {
                             itemEntity.makeFakeItem();
                         }
 
-                        serverPlayer.level()
+                        nmsEntity.level() // Folia - region threading
                             .playSound(
                                 null,
-                                serverPlayer.getX(),
-                                serverPlayer.getY(),
-                                serverPlayer.getZ(),
+                                nmsEntity.getX(), // Folia - region threading
+                                nmsEntity.getY(), // Folia - region threading
+                                nmsEntity.getZ(), // Folia - region threading
                                 SoundEvents.ITEM_PICKUP,
                                 SoundSource.PLAYERS,
                                 0.2F,
-                                ((serverPlayer.getRandom().nextFloat() - serverPlayer.getRandom().nextFloat()) * 0.7F + 1.0F) * 2.0F
+                                ((nmsEntity.getRandom().nextFloat() - nmsEntity.getRandom().nextFloat()) * 0.7F + 1.0F) * 2.0F // Folia - region threading
                             );
-                        serverPlayer.containerMenu.broadcastChanges();
+                        nmsEntity.containerMenu.broadcastChanges(); // Folia - region threading
                     } else {
-                        ItemEntity itemEntity = serverPlayer.drop(itemStack1, false);
+                        ItemEntity itemEntity = nmsEntity.drop(itemStack1, false); // Folia - region threading
                         if (itemEntity != null) {
                             itemEntity.setNoPickUpDelay();
-                            itemEntity.setTarget(serverPlayer.getUUID());
+                            itemEntity.setTarget(nmsEntity.getUUID()); // Folia - region threading
                         }
                     }
+                    }, null, 1L); // Folia - region threading
                 }
             }
 
