@@ -23,120 +23,77 @@ public boolean onCommand(CommandSender sender, Command cmd, String s, String[] a
2323 if (!(sender instanceof Player )) {
2424 sender .sendMessage (config .getString ("playersOnly" ));
2525 return true ;
26- } else {
27- Player player = (Player ) sender ;
28- String ver ;
29- String ver2 ;
30- String pageText = config .getString ("pagePrompt.page" );
31- Integer currPageNumber ;
32- Integer nextPageNumber ;
33- Integer previousPageNumber ;
34- String colour1 = config .getString ("pagePrompt.pageNumberColour" );
35- String colour2 = config .getString ("pagePrompt.pageTextColour" );
36- ChatColor COLOUR1 = ChatColor .valueOf (colour1 );
37- ChatColor COLOUR2 = ChatColor .valueOf (colour2 );
38- List <Integer > enabledPages = config .getIntegerList ("pagesEnabled" );
39- Integer lastPage = enabledPages .get (enabledPages .size () - 1 );
40- JavaPlugin plug = JavaPlugin .getPlugin (HelpCommand .class );
41- boolean papiInstalled = HelpCommand .isPapiInstalled (plug );
42- Boolean pagePromptEnabled = config .getBoolean ("pagePrompt.enabled" );
43- if (cmd .getName ().equalsIgnoreCase ("help" )) {
44- if (config .getBoolean ("helpcmd" )) {
45- if (args .length >= 1 && !args [0 ].equals ("1" )) {
46- // For if there's 2 args
47- currPageNumber = Integer .valueOf (args [0 ]);
48- nextPageNumber = currPageNumber + 1 ;
49- previousPageNumber = currPageNumber - 1 ;
50- if (currPageNumber > 0 && currPageNumber < lastPage ) {
51- // If between 1 and the last page number - 1
52- if (enabledPages .contains (currPageNumber )) {
53- ver = (String ) config .getStringList ("help." + currPageNumber ).stream ().collect (Collectors .joining ("\n " ));
54- if (papiInstalled ) {
55- ver2 = PlaceholderAPI .setPlaceholders (player , ver );
56- } else {
57- ver2 = ver ;
58- }
59- player .sendMessage (TextUtil .color (ver2 ));
60- if (pagePromptEnabled ) {
61- if (enabledPages .contains (nextPageNumber )) {
62- String previousPage = "[<< " + previousPageNumber + "]" ;
63- String nextPage = "[" + nextPageNumber + " >>]" ;
64- String currentPage = pageText + " " + currPageNumber ;
65- ComponentBuilder nextPageMSG = new ComponentBuilder (previousPage )
66- .color (COLOUR1 )
67- .event (new ClickEvent (ClickEvent .Action .RUN_COMMAND , "/help " + previousPageNumber ))
68- .append (" " + currentPage + " " )
69- .color (COLOUR2 )
70- .append (nextPage )
71- .color (COLOUR1 )
72- .event (new ClickEvent (ClickEvent .Action .RUN_COMMAND , "/help " + nextPageNumber ));
73- player .spigot ().sendMessage (nextPageMSG .create ());
74- }
75- }
76- } else {
77- player .sendMessage (TextUtil .color (config .getString ("pageNA" )));
78- }
79- } else if (currPageNumber .equals (lastPage )) {
80- // If the last page number
81- if (enabledPages .contains (lastPage )) {
82- ver = (String ) config .getStringList ("help." + lastPage ).stream ().collect (Collectors .joining ("\n " ));
83- if (papiInstalled ) {
84- ver2 = PlaceholderAPI .setPlaceholders (player , ver );
85- } else {
86- ver2 = ver ;
87- }
88- player .sendMessage (TextUtil .color (ver2 ));
89- if (pagePromptEnabled ) {
90- ComponentBuilder nextPageMSG = new ComponentBuilder ("[<< " + previousPageNumber + "] " )
91- .color (COLOUR1 )
92- .event (new ClickEvent (ClickEvent .Action .RUN_COMMAND , "/help " + previousPageNumber ))
93- .append (pageText + " " + currPageNumber )
94- .color (COLOUR2 );
95- player .spigot ().sendMessage (nextPageMSG .create ());
96- }
97- } else {
98- player .sendMessage (TextUtil .color (config .getString ("pageNA" )));
99- }
100- } else if (currPageNumber < 1 || currPageNumber > lastPage ) {
101- // If smaller than 1 or larger than the last page number
102- player .sendMessage (TextUtil .color (config .getString ("pageNA" )));
103- }
104- } else {
105- // If no page number specified, send page 1
106- if (args .length > 0 && (enabledPages .contains (2 ) || args [0 ].equals ("1" ))) {
107- // If page 2 exists
108- ver = (String ) config .getStringList ("help.1" ).stream ().collect (Collectors .joining ("\n " ));
109- if (papiInstalled ) {
110- ver2 = PlaceholderAPI .setPlaceholders (player , ver );
111- } else {
112- ver2 = ver ;
113- }
114- player .sendMessage (TextUtil .color (ver2 ));
115- if (pagePromptEnabled ) {
116- ComponentBuilder nextPageMSG = new ComponentBuilder (pageText + " 1" )
117- .color (COLOUR2 )
118- .append (" [2 >>]" )
26+ }
27+
28+ Player player = (Player ) sender ;
29+ String ver ;
30+ String ver2 ;
31+ String pageText = config .getString ("pagePrompt.page" );
32+ int currPageNumber ;
33+ String colour1 = config .getString ("pagePrompt.pageNumberColour" );
34+ String colour2 = config .getString ("pagePrompt.pageTextColour" );
35+ ChatColor COLOUR1 = ChatColor .valueOf (colour1 );
36+ ChatColor COLOUR2 = ChatColor .valueOf (colour2 );
37+ List <Integer > enabledPages = config .getIntegerList ("pagesEnabled" );
38+ int lastPage = enabledPages .get (enabledPages .size () - 1 );
39+ JavaPlugin plug = JavaPlugin .getPlugin (HelpCommand .class );
40+ boolean papiInstalled = HelpCommand .isPapiInstalled (plug );
41+ boolean pagePromptEnabled = config .getBoolean ("pagePrompt.enabled" );
42+
43+ if (cmd .getName ().equalsIgnoreCase ("help" )) {
44+ if (config .getBoolean ("helpcmd" )) {
45+ if (args .length > 0 ) {
46+ try {
47+ currPageNumber = Integer .parseInt (args [0 ]);
48+ } catch (NumberFormatException e ) {
49+ player .sendMessage (TextUtil .color (config .getString ("pageNA" )));
50+ return true ;
51+ }
52+ } else {
53+ currPageNumber = 1 ; // Default to page 1 if no arguments provided
54+ }
55+
56+ if (currPageNumber >= 1 && currPageNumber <= lastPage ) {
57+ if (enabledPages .contains (currPageNumber )) {
58+ ver = config .getStringList ("help." + currPageNumber ).stream ().collect (Collectors .joining ("\n " ));
59+ ver2 = papiInstalled ? PlaceholderAPI .setPlaceholders (player , ver ) : ver ;
60+ player .sendMessage (TextUtil .color (ver2 ));
61+
62+ if (pagePromptEnabled && enabledPages .size () > 1 ) { // Only show page prompt if more than one page
63+ ComponentBuilder pagePromptBuilder = new ComponentBuilder ();
64+
65+ if (currPageNumber > 1 ) { // Show previous page arrow if not on the first page
66+ int previousPageNumber = currPageNumber - 1 ;
67+ pagePromptBuilder .append ("[<< " + previousPageNumber + "] " )
11968 .color (COLOUR1 )
120- .event (new ClickEvent (ClickEvent .Action .RUN_COMMAND , "/help 2" ));
121- player .spigot ().sendMessage (nextPageMSG .create ());
69+ .event (new ClickEvent (ClickEvent .Action .RUN_COMMAND , "/help " + previousPageNumber ));
12270 }
123- } else {
124- // If page 2 doesn't exist
125- ver = (String ) config .getStringList ("help.1" ).stream ().collect (Collectors .joining ("\n " ));
126- if (papiInstalled ) {
127- ver2 = PlaceholderAPI .setPlaceholders (player , ver );
128- } else {
129- ver2 = ver ;
71+
72+ // Add the current page number without a click event
73+ pagePromptBuilder .append (pageText + " " + currPageNumber )
74+ .color (COLOUR2 );
75+
76+ if (currPageNumber < lastPage ) { // Show next page arrow if not on the last page
77+ int nextPageNumber = currPageNumber + 1 ;
78+ pagePromptBuilder .append (" [" + nextPageNumber + " >>]" )
79+ .color (COLOUR1 )
80+ .event (new ClickEvent (ClickEvent .Action .RUN_COMMAND , "/help " + nextPageNumber ));
13081 }
131- player .sendMessage (TextUtil .color (ver2 ));
82+
83+ player .spigot ().sendMessage (pagePromptBuilder .create ());
13284 }
85+ } else {
86+ player .sendMessage (TextUtil .color (config .getString ("pageNA" )));
13387 }
13488 } else {
135- currPageNumber = Integer .valueOf (config .getString ("disabled" ));
136- player .sendMessage (TextUtil .color (String .valueOf (currPageNumber )));
89+ player .sendMessage (TextUtil .color (config .getString ("pageNA" )));
13790 }
91+ } else {
92+ int disabledPageNumber = Integer .parseInt (config .getString ("disabled" ));
93+ player .sendMessage (TextUtil .color (String .valueOf (disabledPageNumber )));
13894 }
13995 }
140- return false ;
96+ return true ;
14197 }
98+
14299}
0 commit comments