+++ /dev/null
-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);
- }
-}
-
--- /dev/null
+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);
+ }
+}
+++ /dev/null
-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()));
- }
-}
--- /dev/null
+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()));
+ }
+}
--- /dev/null
+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);
+ }
+}
+
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);
}
"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]",