@@ -23,14 +23,27 @@ public void registerUsage(MinestomCommand command) {
2323 manager = null ;
2424 }
2525
26+ command .setDefaultExecutor (((sender , context ) -> {
27+ sender .sendMessage ("§c/parkour start" );
28+ sender .sendMessage ("§c/parkour reset" );
29+ sender .sendMessage ("§c/parkour checkpoint" );
30+ sender .sendMessage ("§c/parkour cancel" );
31+ }));
32+
2633 // start
2734 command .addSyntax ((sender , context ) -> {
2835 if (manager == null ) {
2936 sender .sendMessage ("§cThis command is unavailable here." );
3037 return ;
3138 }
32- if (!(sender instanceof Player player )) return ;
39+ if (!(sender instanceof HypixelPlayer player )) return ;
40+ if (manager .getPerPlayerStartTime ().containsKey (player .getUuid ())) {
41+ sender .sendMessage ("§cYou are currently in a parkour race. Use /parkour reset" );
42+ return ;
43+ }
44+
3345 player .teleport (manager .getParkour ().getStartLocation ());
46+ manager .startParkour (player );
3447 }, new ArgumentLiteral ("start" ));
3548
3649 // cancel
@@ -52,5 +65,26 @@ public void registerUsage(MinestomCommand command) {
5265 if (!(sender instanceof HypixelPlayer player )) return ;
5366 manager .resetPlayer (player );
5467 }, new ArgumentLiteral ("reset" ));
68+
69+ // checkpoint
70+ command .addSyntax ((sender , context ) -> {
71+ if (manager == null ) {
72+ sender .sendMessage ("§cThis command is unavailable here." );
73+ return ;
74+ }
75+ if (!(sender instanceof HypixelPlayer player )) return ;
76+ Parkour parkour = manager .getParkour ();
77+ if (!manager .getPerPlayerStartTime ().containsKey (player .getUuid ())) {
78+ sender .sendMessage ("§cYou haven't started the parkour challenge yet! Use §e/parkour start §cto start!" );
79+ return ;
80+ }
81+ int checkpointIndex = manager .getPerPlayerStartTime ().get (player .getUuid ()).lastCheckpointIndex ();
82+ if (checkpointIndex == 0 ) {
83+ player .teleport (parkour .getStartLocation ());
84+ } else {
85+ player .teleport (parkour .getCheckpoints ().get (checkpointIndex - 1 ).asPos ());
86+ }
87+ }, new ArgumentLiteral ("checkpoint" ));
5588 }
89+
5690}
0 commit comments