11package me .alexdevs .solstice .commands .utilities ;
22
33import com .mojang .brigadier .CommandDispatcher ;
4+ import com .mojang .brigadier .builder .LiteralArgumentBuilder ;
45import me .lucko .fabric .api .permissions .v0 .Permissions ;
56import net .minecraft .screen .CraftingScreenHandler ;
67import net .minecraft .screen .ScreenHandlerContext ;
910import net .minecraft .stat .Stats ;
1011import net .minecraft .text .Text ;
1112
13+ import java .util .function .Predicate ;
14+
1215import static net .minecraft .server .command .CommandManager .literal ;
1316
1417public class WorkbenchCommand {
18+ private static final Predicate <ServerCommandSource > requirement = Permissions .require ("solstice.command.workbench" , 2 );
19+
1520 public static void register (CommandDispatcher <ServerCommandSource > dispatcher ) {
16- var rootCommand = literal ("workbench" )
17- .requires (Permissions .require ("solstice.command.workbench" , 2 ))
21+ dispatcher .register (command ("workbench" ));
22+ dispatcher .register (command ("craft" ));
23+ }
24+
25+ private static LiteralArgumentBuilder <ServerCommandSource > command (String command ) {
26+ return literal (command )
27+ .requires (requirement )
1828 .executes (context -> {
1929 var player = context .getSource ().getPlayerOrThrow ();
2030 var screen = new SimpleNamedScreenHandlerFactory (
@@ -26,7 +36,5 @@ public static void register(CommandDispatcher<ServerCommandSource> dispatcher) {
2636
2737 return 1 ;
2838 });
29-
30- dispatcher .register (rootCommand );
3139 }
3240}
0 commit comments