--- a/net/minecraft/server/commands/WorldBorderCommand.java
+++ b/net/minecraft/server/commands/WorldBorderCommand.java
@@ -4,11 +4,12 @@
 import com.mojang.brigadier.arguments.DoubleArgumentType;
 import com.mojang.brigadier.arguments.FloatArgumentType;
 import com.mojang.brigadier.arguments.IntegerArgumentType;
+import com.mojang.brigadier.builder.LiteralArgumentBuilder;
+import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import com.mojang.brigadier.exceptions.CommandSyntaxException;
 import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
 import java.util.Locale;
 import net.minecraft.commands.CommandSourceStack;
-import net.minecraft.commands.Commands;
 import net.minecraft.commands.arguments.coordinates.Vec2Argument;
 import net.minecraft.network.chat.Component;
 import net.minecraft.util.Mth;
@@ -16,226 +17,156 @@
 import net.minecraft.world.phys.Vec2;
 
 public class WorldBorderCommand {
-    private static final SimpleCommandExceptionType ERROR_SAME_CENTER = new SimpleCommandExceptionType(
-        Component.translatable("commands.worldborder.center.failed")
-    );
-    private static final SimpleCommandExceptionType ERROR_SAME_SIZE = new SimpleCommandExceptionType(
-        Component.translatable("commands.worldborder.set.failed.nochange")
-    );
-    private static final SimpleCommandExceptionType ERROR_TOO_SMALL = new SimpleCommandExceptionType(
-        Component.translatable("commands.worldborder.set.failed.small")
-    );
-    private static final SimpleCommandExceptionType ERROR_TOO_BIG = new SimpleCommandExceptionType(
-        Component.translatable("commands.worldborder.set.failed.big", 5.999997E7F)
-    );
-    private static final SimpleCommandExceptionType ERROR_TOO_FAR_OUT = new SimpleCommandExceptionType(
-        Component.translatable("commands.worldborder.set.failed.far", 2.9999984E7)
-    );
-    private static final SimpleCommandExceptionType ERROR_SAME_WARNING_TIME = new SimpleCommandExceptionType(
-        Component.translatable("commands.worldborder.warning.time.failed")
-    );
-    private static final SimpleCommandExceptionType ERROR_SAME_WARNING_DISTANCE = new SimpleCommandExceptionType(
-        Component.translatable("commands.worldborder.warning.distance.failed")
-    );
-    private static final SimpleCommandExceptionType ERROR_SAME_DAMAGE_BUFFER = new SimpleCommandExceptionType(
-        Component.translatable("commands.worldborder.damage.buffer.failed")
-    );
-    private static final SimpleCommandExceptionType ERROR_SAME_DAMAGE_AMOUNT = new SimpleCommandExceptionType(
-        Component.translatable("commands.worldborder.damage.amount.failed")
-    );
+
+    private static final SimpleCommandExceptionType ERROR_SAME_CENTER = new SimpleCommandExceptionType(Component.translatable("commands.worldborder.center.failed"));
+    private static final SimpleCommandExceptionType ERROR_SAME_SIZE = new SimpleCommandExceptionType(Component.translatable("commands.worldborder.set.failed.nochange"));
+    private static final SimpleCommandExceptionType ERROR_TOO_SMALL = new SimpleCommandExceptionType(Component.translatable("commands.worldborder.set.failed.small"));
+    private static final SimpleCommandExceptionType ERROR_TOO_BIG = new SimpleCommandExceptionType(Component.translatable("commands.worldborder.set.failed.big", 5.9999968E7D));
+    private static final SimpleCommandExceptionType ERROR_TOO_FAR_OUT = new SimpleCommandExceptionType(Component.translatable("commands.worldborder.set.failed.far", 2.9999984E7D));
+    private static final SimpleCommandExceptionType ERROR_SAME_WARNING_TIME = new SimpleCommandExceptionType(Component.translatable("commands.worldborder.warning.time.failed"));
+    private static final SimpleCommandExceptionType ERROR_SAME_WARNING_DISTANCE = new SimpleCommandExceptionType(Component.translatable("commands.worldborder.warning.distance.failed"));
+    private static final SimpleCommandExceptionType ERROR_SAME_DAMAGE_BUFFER = new SimpleCommandExceptionType(Component.translatable("commands.worldborder.damage.buffer.failed"));
+    private static final SimpleCommandExceptionType ERROR_SAME_DAMAGE_AMOUNT = new SimpleCommandExceptionType(Component.translatable("commands.worldborder.damage.amount.failed"));
+
+    public WorldBorderCommand() {}
 
     public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
-        dispatcher.register(
-            Commands.literal("worldborder")
-                .requires(source -> source.hasPermission(2))
-                .then(
-                    Commands.literal("add")
-                        .then(
-                            Commands.argument("distance", DoubleArgumentType.doubleArg(-5.999997E7F, 5.999997E7F))
-                                .executes(
-                                    context -> setSize(
-                                            context.getSource(),
-                                            context.getSource().getLevel().getWorldBorder().getSize() + DoubleArgumentType.getDouble(context, "distance"),
-                                            0L
-                                        )
-                                )
-                                .then(
-                                    Commands.argument("time", IntegerArgumentType.integer(0))
-                                        .executes(
-                                            context -> setSize(
-                                                    context.getSource(),
-                                                    context.getSource().getLevel().getWorldBorder().getSize()
-                                                        + DoubleArgumentType.getDouble(context, "distance"),
-                                                    context.getSource().getLevel().getWorldBorder().getLerpRemainingTime()
-                                                        + (long)IntegerArgumentType.getInteger(context, "time") * 1000L
-                                                )
-                                        )
-                                )
-                        )
-                )
-                .then(
-                    Commands.literal("set")
-                        .then(
-                            Commands.argument("distance", DoubleArgumentType.doubleArg(-5.999997E7F, 5.999997E7F))
-                                .executes(context -> setSize(context.getSource(), DoubleArgumentType.getDouble(context, "distance"), 0L))
-                                .then(
-                                    Commands.argument("time", IntegerArgumentType.integer(0))
-                                        .executes(
-                                            context -> setSize(
-                                                    context.getSource(),
-                                                    DoubleArgumentType.getDouble(context, "distance"),
-                                                    (long)IntegerArgumentType.getInteger(context, "time") * 1000L
-                                                )
-                                        )
-                                )
-                        )
-                )
-                .then(
-                    Commands.literal("center")
-                        .then(
-                            Commands.argument("pos", Vec2Argument.vec2())
-                                .executes(context -> setCenter(context.getSource(), Vec2Argument.getVec2(context, "pos")))
-                        )
-                )
-                .then(
-                    Commands.literal("damage")
-                        .then(
-                            Commands.literal("amount")
-                                .then(
-                                    Commands.argument("damagePerBlock", FloatArgumentType.floatArg(0.0F))
-                                        .executes(context -> setDamageAmount(context.getSource(), FloatArgumentType.getFloat(context, "damagePerBlock")))
-                                )
-                        )
-                        .then(
-                            Commands.literal("buffer")
-                                .then(
-                                    Commands.argument("distance", FloatArgumentType.floatArg(0.0F))
-                                        .executes(context -> setDamageBuffer(context.getSource(), FloatArgumentType.getFloat(context, "distance")))
-                                )
-                        )
-                )
-                .then(Commands.literal("get").executes(context -> getSize(context.getSource())))
-                .then(
-                    Commands.literal("warning")
-                        .then(
-                            Commands.literal("distance")
-                                .then(
-                                    Commands.argument("distance", IntegerArgumentType.integer(0))
-                                        .executes(context -> setWarningDistance(context.getSource(), IntegerArgumentType.getInteger(context, "distance")))
-                                )
-                        )
-                        .then(
-                            Commands.literal("time")
-                                .then(
-                                    Commands.argument("time", IntegerArgumentType.integer(0))
-                                        .executes(context -> setWarningTime(context.getSource(), IntegerArgumentType.getInteger(context, "time")))
-                                )
-                        )
-                )
-        );
+        dispatcher.register((LiteralArgumentBuilder) ((LiteralArgumentBuilder) ((LiteralArgumentBuilder) ((LiteralArgumentBuilder) ((LiteralArgumentBuilder) ((LiteralArgumentBuilder) ((LiteralArgumentBuilder) net.minecraft.commands.Commands.literal("worldborder").requires((commandlistenerwrapper) -> {
+            return commandlistenerwrapper.hasPermission(2);
+        })).then(net.minecraft.commands.Commands.literal("add").then(((RequiredArgumentBuilder) net.minecraft.commands.Commands.argument("distance", DoubleArgumentType.doubleArg(-5.9999968E7D, 5.9999968E7D)).executes((commandcontext) -> {
+            return WorldBorderCommand.setSize((CommandSourceStack) commandcontext.getSource(), ((CommandSourceStack) commandcontext.getSource()).getLevel().getWorldBorder().getSize() + DoubleArgumentType.getDouble(commandcontext, "distance"), 0L);
+        })).then(net.minecraft.commands.Commands.argument("time", IntegerArgumentType.integer(0)).executes((commandcontext) -> {
+            return WorldBorderCommand.setSize((CommandSourceStack) commandcontext.getSource(), ((CommandSourceStack) commandcontext.getSource()).getLevel().getWorldBorder().getSize() + DoubleArgumentType.getDouble(commandcontext, "distance"), ((CommandSourceStack) commandcontext.getSource()).getLevel().getWorldBorder().getLerpRemainingTime() + (long) IntegerArgumentType.getInteger(commandcontext, "time") * 1000L);
+        }))))).then(net.minecraft.commands.Commands.literal("set").then(((RequiredArgumentBuilder) net.minecraft.commands.Commands.argument("distance", DoubleArgumentType.doubleArg(-5.9999968E7D, 5.9999968E7D)).executes((commandcontext) -> {
+            return WorldBorderCommand.setSize((CommandSourceStack) commandcontext.getSource(), DoubleArgumentType.getDouble(commandcontext, "distance"), 0L);
+        })).then(net.minecraft.commands.Commands.argument("time", IntegerArgumentType.integer(0)).executes((commandcontext) -> {
+            return WorldBorderCommand.setSize((CommandSourceStack) commandcontext.getSource(), DoubleArgumentType.getDouble(commandcontext, "distance"), (long) IntegerArgumentType.getInteger(commandcontext, "time") * 1000L);
+        }))))).then(net.minecraft.commands.Commands.literal("center").then(net.minecraft.commands.Commands.argument("pos", Vec2Argument.vec2()).executes((commandcontext) -> {
+            return WorldBorderCommand.setCenter((CommandSourceStack) commandcontext.getSource(), Vec2Argument.getVec2(commandcontext, "pos"));
+        })))).then(((LiteralArgumentBuilder) net.minecraft.commands.Commands.literal("damage").then(net.minecraft.commands.Commands.literal("amount").then(net.minecraft.commands.Commands.argument("damagePerBlock", FloatArgumentType.floatArg(0.0F)).executes((commandcontext) -> {
+            return WorldBorderCommand.setDamageAmount((CommandSourceStack) commandcontext.getSource(), FloatArgumentType.getFloat(commandcontext, "damagePerBlock"));
+        })))).then(net.minecraft.commands.Commands.literal("buffer").then(net.minecraft.commands.Commands.argument("distance", FloatArgumentType.floatArg(0.0F)).executes((commandcontext) -> {
+            return WorldBorderCommand.setDamageBuffer((CommandSourceStack) commandcontext.getSource(), FloatArgumentType.getFloat(commandcontext, "distance"));
+        }))))).then(net.minecraft.commands.Commands.literal("get").executes((commandcontext) -> {
+            return WorldBorderCommand.getSize((CommandSourceStack) commandcontext.getSource());
+        }))).then(((LiteralArgumentBuilder) net.minecraft.commands.Commands.literal("warning").then(net.minecraft.commands.Commands.literal("distance").then(net.minecraft.commands.Commands.argument("distance", IntegerArgumentType.integer(0)).executes((commandcontext) -> {
+            return WorldBorderCommand.setWarningDistance((CommandSourceStack) commandcontext.getSource(), IntegerArgumentType.getInteger(commandcontext, "distance"));
+        })))).then(net.minecraft.commands.Commands.literal("time").then(net.minecraft.commands.Commands.argument("time", IntegerArgumentType.integer(0)).executes((commandcontext) -> {
+            return WorldBorderCommand.setWarningTime((CommandSourceStack) commandcontext.getSource(), IntegerArgumentType.getInteger(commandcontext, "time"));
+        })))));
     }
 
     private static int setDamageBuffer(CommandSourceStack source, float distance) throws CommandSyntaxException {
-        WorldBorder worldBorder = source.getServer().overworld().getWorldBorder();
-        if (worldBorder.getDamageSafeZone() == (double)distance) {
-            throw ERROR_SAME_DAMAGE_BUFFER.create();
+        WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
+
+        if (worldborder.getDamageSafeZone() == (double) distance) {
+            throw WorldBorderCommand.ERROR_SAME_DAMAGE_BUFFER.create();
         } else {
-            worldBorder.setDamageSafeZone((double)distance);
-            source.sendSuccess(() -> Component.translatable("commands.worldborder.damage.buffer.success", String.format(Locale.ROOT, "%.2f", distance)), true);
-            return (int)distance;
+            worldborder.setDamageSafeZone((double) distance);
+            source.sendSuccess(() -> {
+                return Component.translatable("commands.worldborder.damage.buffer.success", String.format(Locale.ROOT, "%.2f", distance));
+            }, true);
+            return (int) distance;
         }
     }
 
     private static int setDamageAmount(CommandSourceStack source, float damagePerBlock) throws CommandSyntaxException {
-        WorldBorder worldBorder = source.getServer().overworld().getWorldBorder();
-        if (worldBorder.getDamagePerBlock() == (double)damagePerBlock) {
-            throw ERROR_SAME_DAMAGE_AMOUNT.create();
+        WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
+
+        if (worldborder.getDamagePerBlock() == (double) damagePerBlock) {
+            throw WorldBorderCommand.ERROR_SAME_DAMAGE_AMOUNT.create();
         } else {
-            worldBorder.setDamagePerBlock((double)damagePerBlock);
-            source.sendSuccess(
-                () -> Component.translatable("commands.worldborder.damage.amount.success", String.format(Locale.ROOT, "%.2f", damagePerBlock)), true
-            );
-            return (int)damagePerBlock;
+            worldborder.setDamagePerBlock((double) damagePerBlock);
+            source.sendSuccess(() -> {
+                return Component.translatable("commands.worldborder.damage.amount.success", String.format(Locale.ROOT, "%.2f", damagePerBlock));
+            }, true);
+            return (int) damagePerBlock;
         }
     }
 
     private static int setWarningTime(CommandSourceStack source, int time) throws CommandSyntaxException {
-        WorldBorder worldBorder = source.getServer().overworld().getWorldBorder();
-        if (worldBorder.getWarningTime() == time) {
-            throw ERROR_SAME_WARNING_TIME.create();
+        WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
+
+        if (worldborder.getWarningTime() == time) {
+            throw WorldBorderCommand.ERROR_SAME_WARNING_TIME.create();
         } else {
-            worldBorder.setWarningTime(time);
-            source.sendSuccess(() -> Component.translatable("commands.worldborder.warning.time.success", time), true);
+            worldborder.setWarningTime(time);
+            source.sendSuccess(() -> {
+                return Component.translatable("commands.worldborder.warning.time.success", time);
+            }, true);
             return time;
         }
     }
 
     private static int setWarningDistance(CommandSourceStack source, int distance) throws CommandSyntaxException {
-        WorldBorder worldBorder = source.getServer().overworld().getWorldBorder();
-        if (worldBorder.getWarningBlocks() == distance) {
-            throw ERROR_SAME_WARNING_DISTANCE.create();
+        WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
+
+        if (worldborder.getWarningBlocks() == distance) {
+            throw WorldBorderCommand.ERROR_SAME_WARNING_DISTANCE.create();
         } else {
-            worldBorder.setWarningBlocks(distance);
-            source.sendSuccess(() -> Component.translatable("commands.worldborder.warning.distance.success", distance), true);
+            worldborder.setWarningBlocks(distance);
+            source.sendSuccess(() -> {
+                return Component.translatable("commands.worldborder.warning.distance.success", distance);
+            }, true);
             return distance;
         }
     }
 
     private static int getSize(CommandSourceStack source) {
-        double d = source.getServer().overworld().getWorldBorder().getSize();
-        source.sendSuccess(() -> Component.translatable("commands.worldborder.get", String.format(Locale.ROOT, "%.0f", d)), false);
-        return Mth.floor(d + 0.5);
+        double d0 = source.getLevel().getWorldBorder().getSize(); // CraftBukkit
+
+        source.sendSuccess(() -> {
+            return Component.translatable("commands.worldborder.get", String.format(Locale.ROOT, "%.0f", d0));
+        }, false);
+        return Mth.floor(d0 + 0.5D);
     }
 
     private static int setCenter(CommandSourceStack source, Vec2 pos) throws CommandSyntaxException {
-        WorldBorder worldBorder = source.getServer().overworld().getWorldBorder();
-        if (worldBorder.getCenterX() == (double)pos.x && worldBorder.getCenterZ() == (double)pos.y) {
-            throw ERROR_SAME_CENTER.create();
-        } else if (!((double)Math.abs(pos.x) > 2.9999984E7) && !((double)Math.abs(pos.y) > 2.9999984E7)) {
-            worldBorder.setCenter((double)pos.x, (double)pos.y);
-            source.sendSuccess(
-                () -> Component.translatable(
-                        "commands.worldborder.center.success", String.format(Locale.ROOT, "%.2f", pos.x), String.format(Locale.ROOT, "%.2f", pos.y)
-                    ),
-                true
-            );
+        WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
+
+        if (worldborder.getCenterX() == (double) pos.x && worldborder.getCenterZ() == (double) pos.y) {
+            throw WorldBorderCommand.ERROR_SAME_CENTER.create();
+        } else if ((double) Math.abs(pos.x) <= 2.9999984E7D && (double) Math.abs(pos.y) <= 2.9999984E7D) {
+            worldborder.setCenter((double) pos.x, (double) pos.y);
+            source.sendSuccess(() -> {
+                return Component.translatable("commands.worldborder.center.success", String.format(Locale.ROOT, "%.2f", pos.x), String.format(Locale.ROOT, "%.2f", pos.y));
+            }, true);
             return 0;
         } else {
-            throw ERROR_TOO_FAR_OUT.create();
+            throw WorldBorderCommand.ERROR_TOO_FAR_OUT.create();
         }
     }
 
     private static int setSize(CommandSourceStack source, double distance, long time) throws CommandSyntaxException {
-        WorldBorder worldBorder = source.getServer().overworld().getWorldBorder();
-        double d = worldBorder.getSize();
-        if (d == distance) {
-            throw ERROR_SAME_SIZE.create();
-        } else if (distance < 1.0) {
-            throw ERROR_TOO_SMALL.create();
-        } else if (distance > 5.999997E7F) {
-            throw ERROR_TOO_BIG.create();
+        WorldBorder worldborder = source.getLevel().getWorldBorder(); // CraftBukkit
+        double d1 = worldborder.getSize();
+
+        if (d1 == distance) {
+            throw WorldBorderCommand.ERROR_SAME_SIZE.create();
+        } else if (distance < 1.0D) {
+            throw WorldBorderCommand.ERROR_TOO_SMALL.create();
+        } else if (distance > 5.9999968E7D) {
+            throw WorldBorderCommand.ERROR_TOO_BIG.create();
         } else {
             if (time > 0L) {
-                worldBorder.lerpSizeBetween(d, distance, time);
-                if (distance > d) {
-                    source.sendSuccess(
-                        () -> Component.translatable("commands.worldborder.set.grow", String.format(Locale.ROOT, "%.1f", distance), Long.toString(time / 1000L)),
-                        true
-                    );
+                worldborder.lerpSizeBetween(d1, distance, time);
+                if (distance > d1) {
+                    source.sendSuccess(() -> {
+                        return Component.translatable("commands.worldborder.set.grow", String.format(Locale.ROOT, "%.1f", distance), Long.toString(time / 1000L));
+                    }, true);
                 } else {
-                    source.sendSuccess(
-                        () -> Component.translatable(
-                                "commands.worldborder.set.shrink", String.format(Locale.ROOT, "%.1f", distance), Long.toString(time / 1000L)
-                            ),
-                        true
-                    );
+                    source.sendSuccess(() -> {
+                        return Component.translatable("commands.worldborder.set.shrink", String.format(Locale.ROOT, "%.1f", distance), Long.toString(time / 1000L));
+                    }, true);
                 }
             } else {
-                worldBorder.setSize(distance);
-                source.sendSuccess(() -> Component.translatable("commands.worldborder.set.immediate", String.format(Locale.ROOT, "%.1f", distance)), true);
+                worldborder.setSize(distance);
+                source.sendSuccess(() -> {
+                    return Component.translatable("commands.worldborder.set.immediate", String.format(Locale.ROOT, "%.1f", distance));
+                }, true);
             }
 
-            return (int)(distance - d);
+            return (int) (distance - d1);
         }
     }
 }
