From 1a4b1eebcc53273362d3343a3bdeb959f1afe677 Mon Sep 17 00:00:00 2001 From: Irtimaled Date: Wed, 13 May 2020 11:17:43 -0700 Subject: [PATCH] Merge beacon & box commands into new custom command --- ...Command.java => BeaconCommandBuilder.java} | 11 ++----- ...BoxCommand.java => BoxCommandBuilder.java} | 12 +++----- .../bbor/client/commands/CustomCommand.java | 30 +++++++++++++++++++ .../bbor/client/interop/ClientInterop.java | 3 +- .../resources/assets/bbor/lang/en_us.json | 2 ++ 5 files changed, 40 insertions(+), 18 deletions(-) rename src/main/java/com/irtimaled/bbor/client/commands/{BeaconCommand.java => BeaconCommandBuilder.java} (89%) rename src/main/java/com/irtimaled/bbor/client/commands/{BoxCommand.java => BoxCommandBuilder.java} (90%) create mode 100644 src/main/java/com/irtimaled/bbor/client/commands/CustomCommand.java diff --git a/src/main/java/com/irtimaled/bbor/client/commands/BeaconCommand.java b/src/main/java/com/irtimaled/bbor/client/commands/BeaconCommandBuilder.java similarity index 89% rename from src/main/java/com/irtimaled/bbor/client/commands/BeaconCommand.java rename to src/main/java/com/irtimaled/bbor/client/commands/BeaconCommandBuilder.java index 71b9357..2259458 100644 --- a/src/main/java/com/irtimaled/bbor/client/commands/BeaconCommand.java +++ b/src/main/java/com/irtimaled/bbor/client/commands/BeaconCommandBuilder.java @@ -2,7 +2,6 @@ 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; @@ -10,16 +9,14 @@ 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"; +class BeaconCommandBuilder { private static final String LEVEL = "level"; - public static void register(CommandDispatcher commandDispatcher) { - LiteralArgumentBuilder command = Commands.literal(COMMAND) + static LiteralArgumentBuilder build(String command) { + return Commands.literal(command) .then(Commands.literal(ArgumentNames.ADD) .then(Commands.argument(LEVEL, IntegerArgumentType.integer()) .executes(context -> { @@ -52,7 +49,6 @@ public class BeaconCommand { CommandHelper.feedback(context, format, pos.getX(), pos.getY(), pos.getZ()); return 0; }))); - commandDispatcher.register(command); } private static void addBeacon(CommandContext context, BlockPos pos, int level) throws CommandSyntaxException { @@ -66,4 +62,3 @@ public class BeaconCommand { 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/BoxCommandBuilder.java similarity index 90% rename from src/main/java/com/irtimaled/bbor/client/commands/BoxCommand.java rename to src/main/java/com/irtimaled/bbor/client/commands/BoxCommandBuilder.java index b2397f6..ab2272f 100644 --- a/src/main/java/com/irtimaled/bbor/client/commands/BoxCommand.java +++ b/src/main/java/com/irtimaled/bbor/client/commands/BoxCommandBuilder.java @@ -2,18 +2,15 @@ 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.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 BoxCommand { - private static final String COMMAND = "bbor:box"; - - public static void register(CommandDispatcher commandDispatcher) { - LiteralArgumentBuilder command = Commands.literal(COMMAND) +class BoxCommandBuilder { + static LiteralArgumentBuilder 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()) @@ -51,7 +48,6 @@ public class BoxCommand { to.getX(), to.getY(), to.getZ()); return 0; })))); - commandDispatcher.register(command); } private static Coords getMaxCoords(BlockPos from, BlockPos to) { 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 index 0000000..d737323 --- /dev/null +++ b/src/main/java/com/irtimaled/bbor/client/commands/CustomCommand.java @@ -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 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); + } +} + diff --git a/src/main/java/com/irtimaled/bbor/client/interop/ClientInterop.java b/src/main/java/com/irtimaled/bbor/client/interop/ClientInterop.java index d2bb473..4e59342 100644 --- a/src/main/java/com/irtimaled/bbor/client/interop/ClientInterop.java +++ b/src/main/java/com/irtimaled/bbor/client/interop/ClientInterop.java @@ -91,8 +91,7 @@ public class ClientInterop { public static void registerClientCommands(CommandDispatcher commandDispatcher) { SeedCommand.register(commandDispatcher); SpawningSphereCommand.register(commandDispatcher); - BoxCommand.register(commandDispatcher); - BeaconCommand.register(commandDispatcher); + CustomCommand.register(commandDispatcher); ConfigCommand.register(commandDispatcher); StructuresCommand.register(commandDispatcher); } diff --git a/src/main/resources/assets/bbor/lang/en_us.json b/src/main/resources/assets/bbor/lang/en_us.json index c3ec628..aaea887 100644 --- a/src/main/resources/assets/bbor/lang/en_us.json +++ b/src/main/resources/assets/bbor/lang/en_us.json @@ -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]", -- 2.44.0