1717import fr .peaceandcube .pacpi .player .PlayerSuggestionProviders ;
1818
1919public class PacDonjonCommand implements CommandExecutor , TabExecutor {
20- private static final List <String > OPERATIONS = ImmutableList .of ("add" , "remove" , "addstep" , "removestep" , "set" );
20+ private static final List <String > OPERATIONS = ImmutableList .of ("add" , "remove" , "addstep" , "removestep" , "set" , "info" , "list" );
2121
2222 @ Override
2323 public boolean onCommand (CommandSender sender , Command cmd , String label , String [] args ) {
@@ -96,6 +96,41 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
9696 }
9797 }
9898 return true ;
99+ case "info" :
100+ if (args .length == 3 ) {
101+ String donjon = args [1 ];
102+ String step = args [2 ];
103+ if (DonjonsFile .getDonjons ("" ).contains (donjon )) {
104+ if (DonjonsFile .getSteps (donjon , "" ).contains (step )) {
105+ List <String > infos = DonjonsFile .getStepInfo (donjon , step );
106+ sender .sendMessage (String .format (DonjonMessages .STEP_INFO , step , donjon , infos ));
107+ } else {
108+ sender .sendMessage (DonjonMessages .STEP_NOT_FOUND );
109+ }
110+ } else {
111+ sender .sendMessage (DonjonMessages .DONJON_NOT_FOUND );
112+ }
113+ }
114+ return true ;
115+ case "list" :
116+ if (args .length == 1 ) {
117+ List <String > donjons = DonjonsFile .getDonjons ("" );
118+ sender .sendMessage (String .format (DonjonMessages .DONJON_LIST , donjons ));
119+ return true ;
120+ } else if (args .length == 2 ) {
121+ String donjon = args [1 ];
122+ if (DonjonsFile .getDonjons ("" ).contains (donjon )) {
123+ List <String > steps = DonjonsFile .getSteps (donjon , "" );
124+ if (!steps .isEmpty ()) {
125+ sender .sendMessage (String .format (DonjonMessages .STEP_LIST , donjon , steps ));
126+ } else {
127+ sender .sendMessage (DonjonMessages .NO_DONJON_STEP );
128+ }
129+ } else {
130+ sender .sendMessage (DonjonMessages .DONJON_NOT_FOUND );
131+ }
132+ return true ;
133+ }
99134 }
100135 }
101136 }
@@ -121,6 +156,8 @@ public List<String> onTabComplete(CommandSender sender, Command cmd, String labe
121156 case "remove" :
122157 case "addstep" :
123158 case "removestep" :
159+ case "info" :
160+ case "list" :
124161 return DonjonsFile .getDonjons (args [1 ]);
125162 case "set" :
126163 return PlayerSuggestionProviders .getOnlinePlayers (args [1 ]);
@@ -132,6 +169,7 @@ public List<String> onTabComplete(CommandSender sender, Command cmd, String labe
132169 case "add" :
133170 return PlayerSuggestionProviders .getOnlinePlayers (args [2 ]);
134171 case "removestep" :
172+ case "info" :
135173 return DonjonsFile .getSteps (args [1 ], args [2 ]);
136174 case "set" :
137175 return DonjonsFile .getDonjons (args [2 ]);
0 commit comments