--- a/net/minecraft/server/commands/WorldBorderCommand.java
+++ b/net/minecraft/server/commands/WorldBorderCommand.java
@@ -134,18 +_,39 @@
         );
     }
 
+    // Folia start - region threading
+    private static void sendMessage(CommandSourceStack src, CommandSyntaxException ex) {
+        src.sendFailure((Component)ex.getRawMessage());
+    }
+    // Folia end - region threading
+
     private static int setDamageBuffer(CommandSourceStack source, float distance) throws CommandSyntaxException {
+        // Folia start - region threading
+        io.papermc.paper.threadedregions.RegionizedServer.getInstance().addTask(() -> {
+            try {
+                // Folia end - region threading
         WorldBorder worldBorder = source.getLevel().getWorldBorder(); // CraftBukkit
         if (worldBorder.getDamageSafeZone() == distance) {
             throw ERROR_SAME_DAMAGE_BUFFER.create();
         } else {
             worldBorder.setDamageSafeZone(distance);
             source.sendSuccess(() -> Component.translatable("commands.worldborder.damage.buffer.success", String.format(Locale.ROOT, "%.2f", distance)), true);
-            return (int)distance;
+            return; // Folia - region threading
         }
+        // Folia start - region threading
+            } catch (CommandSyntaxException ex) {
+                sendMessage(source, ex);
+            }
+        });
+        return 1;
+        // Folia end - region threading
     }
 
     private static int setDamageAmount(CommandSourceStack source, float damagePerBlock) throws CommandSyntaxException {
+        // Folia start - region threading
+        io.papermc.paper.threadedregions.RegionizedServer.getInstance().addTask(() -> {
+            try {
+                // Folia end - region threading
         WorldBorder worldBorder = source.getLevel().getWorldBorder(); // CraftBukkit
         if (worldBorder.getDamagePerBlock() == damagePerBlock) {
             throw ERROR_SAME_DAMAGE_AMOUNT.create();
@@ -154,39 +_,79 @@
             source.sendSuccess(
                 () -> Component.translatable("commands.worldborder.damage.amount.success", String.format(Locale.ROOT, "%.2f", damagePerBlock)), true
             );
-            return (int)damagePerBlock;
+            return; // Folia - region threading
         }
+        // Folia start - region threading
+            } catch (CommandSyntaxException ex) {
+                sendMessage(source, ex);
+            }
+        });
+        return 1;
+        // Folia end - region threading
     }
 
     private static int setWarningTime(CommandSourceStack source, int time) throws CommandSyntaxException {
+        // Folia start - region threading
+        io.papermc.paper.threadedregions.RegionizedServer.getInstance().addTask(() -> {
+            try {
+                // Folia end - region threading
         WorldBorder worldBorder = source.getLevel().getWorldBorder(); // CraftBukkit
         if (worldBorder.getWarningTime() == time) {
             throw ERROR_SAME_WARNING_TIME.create();
         } else {
             worldBorder.setWarningTime(time);
             source.sendSuccess(() -> Component.translatable("commands.worldborder.warning.time.success", time), true);
-            return time;
+            return; // Folia - region threading
         }
+        // Folia start - region threading
+            } catch (CommandSyntaxException ex) {
+                sendMessage(source, ex);
+            }
+        });
+        return 1;
+        // Folia end - region threading
     }
 
     private static int setWarningDistance(CommandSourceStack source, int distance) throws CommandSyntaxException {
+        // Folia start - region threading
+        io.papermc.paper.threadedregions.RegionizedServer.getInstance().addTask(() -> {
+            try {
+                // Folia end - region threading
         WorldBorder worldBorder = source.getLevel().getWorldBorder(); // CraftBukkit
         if (worldBorder.getWarningBlocks() == distance) {
             throw ERROR_SAME_WARNING_DISTANCE.create();
         } else {
             worldBorder.setWarningBlocks(distance);
             source.sendSuccess(() -> Component.translatable("commands.worldborder.warning.distance.success", distance), true);
-            return distance;
+            return; // Folia - region threading
         }
+        // Folia start - region threading
+            } catch (CommandSyntaxException ex) {
+                sendMessage(source, ex);
+            }
+        });
+        return 1;
+        // Folia end - region threading
     }
 
     private static int getSize(CommandSourceStack source) {
+        // Folia start - region threading
+        io.papermc.paper.threadedregions.RegionizedServer.getInstance().addTask(() -> {
+            // Folia end - region threading
         double size = source.getLevel().getWorldBorder().getSize(); // CraftBukkit
         source.sendSuccess(() -> Component.translatable("commands.worldborder.get", String.format(Locale.ROOT, "%.0f", size)), false);
-        return Mth.floor(size + 0.5);
+        return; // Folia - region threading
+        // Folia start - region threading
+        });
+        return 1;
+        // Folia end - region threading
     }
 
     private static int setCenter(CommandSourceStack source, Vec2 pos) throws CommandSyntaxException {
+        // Folia start - region threading
+        io.papermc.paper.threadedregions.RegionizedServer.getInstance().addTask(() -> {
+            try {
+                // Folia end - region threading
         WorldBorder worldBorder = source.getLevel().getWorldBorder(); // CraftBukkit
         if (worldBorder.getCenterX() == pos.x && worldBorder.getCenterZ() == pos.y) {
             throw ERROR_SAME_CENTER.create();
@@ -198,13 +_,24 @@
                 ),
                 true
             );
-            return 0;
+            return; // Folia - region threading
         } else {
             throw ERROR_TOO_FAR_OUT.create();
         }
+        // Folia start - region threading
+            } catch (CommandSyntaxException ex) {
+                sendMessage(source, ex);
+            }
+        });
+        return 1;
+        // Folia end - region threading
     }
 
     private static int setSize(CommandSourceStack source, double newSize, long time) throws CommandSyntaxException {
+        // Folia start - region threading
+        io.papermc.paper.threadedregions.RegionizedServer.getInstance().addTask(() -> {
+            try {
+                // Folia end - region threading
         WorldBorder worldBorder = source.getLevel().getWorldBorder(); // CraftBukkit
         double size = worldBorder.getSize();
         if (size == newSize) {
@@ -234,7 +_,14 @@
                 source.sendSuccess(() -> Component.translatable("commands.worldborder.set.immediate", String.format(Locale.ROOT, "%.1f", newSize)), true);
             }
 
-            return (int)(newSize - size);
+            return; // Folia - region threading
         }
+        // Folia start - region threading
+            } catch (CommandSyntaxException ex) {
+                sendMessage(source, ex);
+            }
+        });
+        return 1;
+        // Folia end - region threading
     }
 }
