]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Merge beacon & box commands into new custom command
authorIrtimaled <irtimaled@gmail.com>
Wed, 13 May 2020 18:17:43 +0000 (11:17 -0700)
committerIrtimaled <irtimaled@gmail.com>
Mon, 18 May 2020 00:31:27 +0000 (17:31 -0700)
src/main/java/com/irtimaled/bbor/client/commands/BeaconCommand.java [deleted file]
src/main/java/com/irtimaled/bbor/client/commands/BeaconCommandBuilder.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/client/commands/BoxCommand.java [deleted file]
src/main/java/com/irtimaled/bbor/client/commands/BoxCommandBuilder.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/client/commands/CustomCommand.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/client/interop/ClientInterop.java
src/main/resources/assets/bbor/lang/en_us.json

diff --git a/src/main/java/com/irtimaled/bbor/client/commands/BeaconCommand.java b/src/main/java/com/irtimaled/bbor/client/commands/BeaconCommand.java
deleted file mode 100644 (file)
index 71b9357..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.irtimaled.bbor.client.commands;
-
-import com.irtimaled.bbor.client.providers.CustomBeaconProvider;
-import com.irtimaled.bbor.common.models.Coords;
-import com.mojang.brigadier.CommandDispatcher;
-import com.mojang.brigadier.StringReader;
-import com.mojang.brigadier.arguments.IntegerArgumentType;
-import com.mojang.brigadier.builder.LiteralArgumentBuilder;
-import com.mojang.brigadier.context.CommandContext;
-import com.mojang.brigadier.exceptions.CommandSyntaxException;
-import net.minecraft.command.CommandSource;
-import net.minecraft.command.Commands;
-import net.minecraft.command.ISuggestionProvider;
-import net.minecraft.command.arguments.BlockPosArgument;
-import net.minecraft.util.math.BlockPos;
-
-public class BeaconCommand {
-    private static final String COMMAND = "bbor:beacon";
-    private static final String LEVEL = "level";
-
-    public static void register(CommandDispatcher<ISuggestionProvider> commandDispatcher) {
-        LiteralArgumentBuilder command = Commands.literal(COMMAND)
-                .then(Commands.literal(ArgumentNames.ADD)
-                        .then(Commands.argument(LEVEL, IntegerArgumentType.integer())
-                                .executes(context -> {
-                                    BlockPos pos = new BlockPos(context.getSource().getPos());
-                                    int level = IntegerArgumentType.getInteger(context, LEVEL);
-                                    addBeacon(context, pos, level);
-                                    return 0;
-                                })
-                                .then(Commands.argument(ArgumentNames.POS, BlockPosArgument.blockPos())
-                                        .executes(context -> {
-                                            BlockPos pos = BlockPosArgument.getBlockPos(context, ArgumentNames.POS);
-                                            int level = IntegerArgumentType.getInteger(context, LEVEL);
-                                            addBeacon(context, pos, level);
-                                            return 0;
-                                        })))
-                )
-                .then(Commands.literal(ArgumentNames.CLEAR)
-                        .executes(context -> {
-                            CustomBeaconProvider.clear();
-
-                            CommandHelper.feedback(context, "bbor.commands.beacon.cleared.all");
-                            return 0;
-                        })
-                        .then(Commands.argument(ArgumentNames.POS, BlockPosArgument.blockPos())
-                                .executes(context -> {
-                                    BlockPos pos = BlockPosArgument.getBlockPos(context, ArgumentNames.POS);
-                                    boolean removed = CustomBeaconProvider.remove(new Coords(pos));
-
-                                    String format = removed ? "bbor.commands.beacon.cleared" : "bbor.commands.beacon.notFound";
-                                    CommandHelper.feedback(context, format, pos.getX(), pos.getY(), pos.getZ());
-                                    return 0;
-                                })));
-        commandDispatcher.register(command);
-    }
-
-    private static void addBeacon(CommandContext<CommandSource> context, BlockPos pos, int level) throws CommandSyntaxException {
-        if (level < 1 || level > 4) {
-            throw CommandHelper.getException("bbor.commandArgument.invalid",
-                    "bbor.commands.beacon.expectedLevelInRange")
-                    .createWithContext(new StringReader(context.getInput()));
-        }
-
-        CustomBeaconProvider.add(new Coords(pos), level);
-        CommandHelper.feedback(context, "bbor.commands.beacon.added", pos.getX(), pos.getY(), pos.getZ(), level);
-    }
-}
-
diff --git a/src/main/java/com/irtimaled/bbor/client/commands/BeaconCommandBuilder.java b/src/main/java/com/irtimaled/bbor/client/commands/BeaconCommandBuilder.java
new file mode 100644 (file)
index 0000000..2259458
--- /dev/null
@@ -0,0 +1,64 @@
+package com.irtimaled.bbor.client.commands;
+
+import com.irtimaled.bbor.client.providers.CustomBeaconProvider;
+import com.irtimaled.bbor.common.models.Coords;
+import com.mojang.brigadier.StringReader;
+import com.mojang.brigadier.arguments.IntegerArgumentType;
+import com.mojang.brigadier.builder.LiteralArgumentBuilder;
+import com.mojang.brigadier.context.CommandContext;
+import com.mojang.brigadier.exceptions.CommandSyntaxException;
+import net.minecraft.command.CommandSource;
+import net.minecraft.command.Commands;
+import net.minecraft.command.arguments.BlockPosArgument;
+import net.minecraft.util.math.BlockPos;
+
+class BeaconCommandBuilder {
+    private static final String LEVEL = "level";
+
+    static LiteralArgumentBuilder<CommandSource> build(String command) {
+        return Commands.literal(command)
+                .then(Commands.literal(ArgumentNames.ADD)
+                        .then(Commands.argument(LEVEL, IntegerArgumentType.integer())
+                                .executes(context -> {
+                                    BlockPos pos = new BlockPos(context.getSource().getPos());
+                                    int level = IntegerArgumentType.getInteger(context, LEVEL);
+                                    addBeacon(context, pos, level);
+                                    return 0;
+                                })
+                                .then(Commands.argument(ArgumentNames.POS, BlockPosArgument.blockPos())
+                                        .executes(context -> {
+                                            BlockPos pos = BlockPosArgument.getBlockPos(context, ArgumentNames.POS);
+                                            int level = IntegerArgumentType.getInteger(context, LEVEL);
+                                            addBeacon(context, pos, level);
+                                            return 0;
+                                        })))
+                )
+                .then(Commands.literal(ArgumentNames.CLEAR)
+                        .executes(context -> {
+                            CustomBeaconProvider.clear();
+
+                            CommandHelper.feedback(context, "bbor.commands.beacon.cleared.all");
+                            return 0;
+                        })
+                        .then(Commands.argument(ArgumentNames.POS, BlockPosArgument.blockPos())
+                                .executes(context -> {
+                                    BlockPos pos = BlockPosArgument.getBlockPos(context, ArgumentNames.POS);
+                                    boolean removed = CustomBeaconProvider.remove(new Coords(pos));
+
+                                    String format = removed ? "bbor.commands.beacon.cleared" : "bbor.commands.beacon.notFound";
+                                    CommandHelper.feedback(context, format, pos.getX(), pos.getY(), pos.getZ());
+                                    return 0;
+                                })));
+    }
+
+    private static void addBeacon(CommandContext<CommandSource> context, BlockPos pos, int level) throws CommandSyntaxException {
+        if (level < 1 || level > 4) {
+            throw CommandHelper.getException("bbor.commandArgument.invalid",
+                    "bbor.commands.beacon.expectedLevelInRange")
+                    .createWithContext(new StringReader(context.getInput()));
+        }
+
+        CustomBeaconProvider.add(new Coords(pos), level);
+        CommandHelper.feedback(context, "bbor.commands.beacon.added", pos.getX(), pos.getY(), pos.getZ(), level);
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/client/commands/BoxCommand.java b/src/main/java/com/irtimaled/bbor/client/commands/BoxCommand.java
deleted file mode 100644 (file)
index b2397f6..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.irtimaled.bbor.client.commands;
-
-import com.irtimaled.bbor.client.providers.CustomBoxProvider;
-import com.irtimaled.bbor.common.models.Coords;
-import com.mojang.brigadier.CommandDispatcher;
-import com.mojang.brigadier.builder.LiteralArgumentBuilder;
-import net.minecraft.command.Commands;
-import net.minecraft.command.ISuggestionProvider;
-import net.minecraft.command.arguments.BlockPosArgument;
-import net.minecraft.util.math.BlockPos;
-
-public class BoxCommand {
-    private static final String COMMAND = "bbor:box";
-
-    public static void register(CommandDispatcher<ISuggestionProvider> commandDispatcher) {
-        LiteralArgumentBuilder command = Commands.literal(COMMAND)
-                .then(Commands.literal(ArgumentNames.ADD)
-                        .then(Commands.argument(ArgumentNames.FROM, BlockPosArgument.blockPos())
-                                .then(Commands.argument(ArgumentNames.TO, BlockPosArgument.blockPos())
-                                        .executes(context -> {
-                                            BlockPos from = BlockPosArgument.getBlockPos(context, ArgumentNames.FROM);
-                                            BlockPos to = BlockPosArgument.getBlockPos(context, ArgumentNames.TO);
-                                            Coords minCoords = getMinCoords(from, to);
-                                            Coords maxCoords = getMaxCoords(from, to);
-                                            CustomBoxProvider.add(minCoords, maxCoords);
-
-                                            CommandHelper.feedback(context, "bbor.commands.box.added",
-                                                    from.getX(), from.getY(), from.getZ(),
-                                                    to.getX(), to.getY(), to.getZ());
-                                            return 0;
-                                        }))))
-                .then(Commands.literal(ArgumentNames.CLEAR)
-                        .executes(context -> {
-                            CustomBoxProvider.clear();
-
-                            CommandHelper.feedback(context, "bbor.commands.box.cleared.all");
-                            return 0;
-                        })
-                        .then(Commands.argument(ArgumentNames.FROM, BlockPosArgument.blockPos())
-                                .then(Commands.argument(ArgumentNames.TO, BlockPosArgument.blockPos())
-                                        .executes(context -> {
-                                            BlockPos from = BlockPosArgument.getBlockPos(context, ArgumentNames.FROM);
-                                            BlockPos to = BlockPosArgument.getBlockPos(context, ArgumentNames.TO);
-                                            Coords minCoords = getMinCoords(from, to);
-                                            Coords maxCoords = getMaxCoords(from, to);
-                                            boolean removed = CustomBoxProvider.remove(minCoords, maxCoords);
-
-                                            String format = removed ? "bbor.commands.box.cleared" : "bbor.commands.box.notFound";
-                                            CommandHelper.feedback(context, format,
-                                                    from.getX(), from.getY(), from.getZ(),
-                                                    to.getX(), to.getY(), to.getZ());
-                                            return 0;
-                                        }))));
-        commandDispatcher.register(command);
-    }
-
-    private static Coords getMaxCoords(BlockPos from, BlockPos to) {
-        return new Coords(Math.max(from.getX(), to.getX()), Math.max(from.getY(), to.getY()), Math.max(from.getZ(), to.getZ()));
-    }
-
-    private static Coords getMinCoords(BlockPos from, BlockPos to) {
-        return new Coords(Math.min(from.getX(), to.getX()), Math.min(from.getY(), to.getY()), Math.min(from.getZ(), to.getZ()));
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/client/commands/BoxCommandBuilder.java b/src/main/java/com/irtimaled/bbor/client/commands/BoxCommandBuilder.java
new file mode 100644 (file)
index 0000000..ab2272f
--- /dev/null
@@ -0,0 +1,60 @@
+package com.irtimaled.bbor.client.commands;
+
+import com.irtimaled.bbor.client.providers.CustomBoxProvider;
+import com.irtimaled.bbor.common.models.Coords;
+import com.mojang.brigadier.builder.LiteralArgumentBuilder;
+import net.minecraft.command.CommandSource;
+import net.minecraft.command.Commands;
+import net.minecraft.command.arguments.BlockPosArgument;
+import net.minecraft.util.math.BlockPos;
+
+class BoxCommandBuilder {
+    static LiteralArgumentBuilder<CommandSource> build(String command) {
+        return Commands.literal(command)
+                .then(Commands.literal(ArgumentNames.ADD)
+                        .then(Commands.argument(ArgumentNames.FROM, BlockPosArgument.blockPos())
+                                .then(Commands.argument(ArgumentNames.TO, BlockPosArgument.blockPos())
+                                        .executes(context -> {
+                                            BlockPos from = BlockPosArgument.getBlockPos(context, ArgumentNames.FROM);
+                                            BlockPos to = BlockPosArgument.getBlockPos(context, ArgumentNames.TO);
+                                            Coords minCoords = getMinCoords(from, to);
+                                            Coords maxCoords = getMaxCoords(from, to);
+                                            CustomBoxProvider.add(minCoords, maxCoords);
+
+                                            CommandHelper.feedback(context, "bbor.commands.box.added",
+                                                    from.getX(), from.getY(), from.getZ(),
+                                                    to.getX(), to.getY(), to.getZ());
+                                            return 0;
+                                        }))))
+                .then(Commands.literal(ArgumentNames.CLEAR)
+                        .executes(context -> {
+                            CustomBoxProvider.clear();
+
+                            CommandHelper.feedback(context, "bbor.commands.box.cleared.all");
+                            return 0;
+                        })
+                        .then(Commands.argument(ArgumentNames.FROM, BlockPosArgument.blockPos())
+                                .then(Commands.argument(ArgumentNames.TO, BlockPosArgument.blockPos())
+                                        .executes(context -> {
+                                            BlockPos from = BlockPosArgument.getBlockPos(context, ArgumentNames.FROM);
+                                            BlockPos to = BlockPosArgument.getBlockPos(context, ArgumentNames.TO);
+                                            Coords minCoords = getMinCoords(from, to);
+                                            Coords maxCoords = getMaxCoords(from, to);
+                                            boolean removed = CustomBoxProvider.remove(minCoords, maxCoords);
+
+                                            String format = removed ? "bbor.commands.box.cleared" : "bbor.commands.box.notFound";
+                                            CommandHelper.feedback(context, format,
+                                                    from.getX(), from.getY(), from.getZ(),
+                                                    to.getX(), to.getY(), to.getZ());
+                                            return 0;
+                                        }))));
+    }
+
+    private static Coords getMaxCoords(BlockPos from, BlockPos to) {
+        return new Coords(Math.max(from.getX(), to.getX()), Math.max(from.getY(), to.getY()), Math.max(from.getZ(), to.getZ()));
+    }
+
+    private static Coords getMinCoords(BlockPos from, BlockPos to) {
+        return new Coords(Math.min(from.getX(), to.getX()), Math.min(from.getY(), to.getY()), Math.min(from.getZ(), to.getZ()));
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/client/commands/CustomCommand.java b/src/main/java/com/irtimaled/bbor/client/commands/CustomCommand.java
new file mode 100644 (file)
index 0000000..d737323
--- /dev/null
@@ -0,0 +1,30 @@
+package com.irtimaled.bbor.client.commands;
+
+import com.irtimaled.bbor.client.providers.CustomBeaconProvider;
+import com.irtimaled.bbor.client.providers.CustomBoxProvider;
+import com.mojang.brigadier.CommandDispatcher;
+import com.mojang.brigadier.builder.LiteralArgumentBuilder;
+import net.minecraft.command.Commands;
+import net.minecraft.command.ISuggestionProvider;
+
+public class CustomCommand {
+    private static final String COMMAND = "bbor:custom";
+    private static final String BOX = "box";
+    private static final String BEACON = "beacon";
+
+    public static void register(CommandDispatcher<ISuggestionProvider> commandDispatcher) {
+        LiteralArgumentBuilder command = Commands.literal(COMMAND)
+                .then(BoxCommandBuilder.build(BOX))
+                .then(BeaconCommandBuilder.build(BEACON))
+                .then(Commands.literal(ArgumentNames.CLEAR)
+                        .executes(context -> {
+                            CustomBoxProvider.clear();
+                            CustomBeaconProvider.clear();
+
+                            CommandHelper.feedback(context, "bbor.commands.box.cleared.all");
+                            return 0;
+                        }));
+        commandDispatcher.register(command);
+    }
+}
+
index d2bb47373c842f9256a77f1fa8791102df20cd06..4e59342029a4dd57091b218facda072c0f328bba 100644 (file)
@@ -91,8 +91,7 @@ public class ClientInterop {
     public static void registerClientCommands(CommandDispatcher<ISuggestionProvider> commandDispatcher) {
         SeedCommand.register(commandDispatcher);
         SpawningSphereCommand.register(commandDispatcher);
-        BoxCommand.register(commandDispatcher);
-        BeaconCommand.register(commandDispatcher);
+        CustomCommand.register(commandDispatcher);
         ConfigCommand.register(commandDispatcher);
         StructuresCommand.register(commandDispatcher);
     }
index c3ec6285aeb8fc3f09d194060983158d4f9aa458..aaea887cf72395c5fc24c73430080c4f0f2f0aa0 100644 (file)
@@ -65,6 +65,8 @@
   "bbor.features.villageSpheres.density.more": "More",
   "bbor.features.villageSpheres.density.most": "Most",
 
+  "bbor.commands.custom.cleared.all": "All custom boxes cleared",
+
   "bbor.commands.beacon.added": "Custom beacon added at [x=%d, y=%d, z=%d] with level %d",
   "bbor.commands.beacon.cleared.all": "All custom beacons cleared",
   "bbor.commands.beacon.cleared": "Custom beacon cleared at [x=%d, y=%d, z=%d]",