Skip to content

Commit e655dd5

Browse files
committed
Fixed prompt, added arg aliases to /hc
1 parent 166a0c8 commit e655dd5

12 files changed

Lines changed: 145 additions & 114 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>net.greenwoodmc</groupId>
88
<artifactId>HelpCommand</artifactId>
9-
<version>2.8.3</version>
9+
<version>2.8.4</version>
1010
<packaging>jar</packaging>
1111

1212
<name>HelpCommand</name>

src/main/java/net/greenwoodmc/helpcommand/commands/hcCommand.java

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,18 @@
88
import org.bukkit.configuration.InvalidConfigurationException;
99
import org.bukkit.configuration.file.FileConfiguration;
1010
import org.bukkit.entity.Player;
11+
import org.bukkit.plugin.Plugin;
1112
import org.bukkit.plugin.java.JavaPlugin;
13+
import org.json.simple.JSONObject;
14+
import org.json.simple.parser.JSONParser;
15+
import org.json.simple.parser.ParseException;
1216

17+
import java.io.BufferedReader;
1318
import java.io.File;
1419
import java.io.IOException;
20+
import java.io.InputStreamReader;
21+
import java.net.HttpURLConnection;
22+
import java.net.URL;
1523

1624
public class hcCommand implements CommandExecutor {
1725
FileConfiguration config = JavaPlugin.getPlugin(HelpCommand.class).getConfig();
@@ -30,7 +38,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String s, String[] a
3038
if (cmd.getName().equalsIgnoreCase("hc")) {
3139
if (args.length >= 1) {
3240
arg1 = args[0];
33-
if (arg1.equalsIgnoreCase("reload")) {
41+
if (arg1.equalsIgnoreCase("reload") || arg1.equalsIgnoreCase("rl")) {
3442
ver = config.getString("reload");
3543
plug.reloadConfig();
3644
try {
@@ -47,12 +55,60 @@ public boolean onCommand(CommandSender sender, Command cmd, String s, String[] a
4755
}
4856
}
4957

50-
if (arg1.equalsIgnoreCase("version")) {
58+
if (arg1.equalsIgnoreCase("version") || arg1.equalsIgnoreCase("ver")) {
5159
ver = plug.getDescription().getVersion();
5260
if (isPlayer) {
5361
sender.sendMessage("HelpCommand Version: " + ver);
62+
try {
63+
URL url = new URL("https://api.spigotmc.org/simple/0.1/index.php?action=getResource&id=102926");
64+
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
65+
66+
if (connection.getResponseCode() == 200) {
67+
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
68+
StringBuilder response = new StringBuilder();
69+
String line;
70+
71+
while ((line = reader.readLine()) != null) {
72+
response.append(line);
73+
}
74+
75+
String spigotVersion = extractVersionFromResponse(response.toString());
76+
77+
if (!spigotVersion.equals(config.getString("version"))) {
78+
sender.sendMessage(TextUtil.color("&dA new version of HelpCommand is available! download &eV" + spigotVersion + "&d here: &ahttps://www.spigotmc.org/resources/102926/"));
79+
}
80+
} else {
81+
plug.getLogger().warning("Failed to retrieve plugin information from SpigotMC. HTTP response code: " + connection.getResponseCode());
82+
}
83+
} catch (IOException e) {
84+
plug.getLogger().warning("Error checking Spigot version: " + e.getMessage());
85+
}
5486
} else {
5587
plug.getLogger().info("HelpCommand Version: " + ver);
88+
try {
89+
URL url = new URL("https://api.spigotmc.org/simple/0.1/index.php?action=getResource&id=102926");
90+
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
91+
92+
if (connection.getResponseCode() == 200) {
93+
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
94+
StringBuilder response = new StringBuilder();
95+
String line;
96+
97+
while ((line = reader.readLine()) != null) {
98+
response.append(line);
99+
}
100+
101+
String spigotVersion = extractVersionFromResponse(response.toString());
102+
103+
if (!spigotVersion.equals(config.getString("version"))) {
104+
plug.getLogger().info(TextUtil.color("A new version of HelpCommand is available! download V" + spigotVersion + "here: https://www.spigotmc.org/resources/102926/"));
105+
}
106+
} else {
107+
plug.getLogger().warning("Failed to retrieve plugin information from SpigotMC. HTTP response code: " + connection.getResponseCode());
108+
}
109+
} catch (IOException e) {
110+
plug.getLogger().warning("Error checking Spigot version: " + e.getMessage());
111+
}
56112
}
57113
}
58114

@@ -77,4 +133,22 @@ public boolean onCommand(CommandSender sender, Command cmd, String s, String[] a
77133

78134
return false;
79135
}
136+
137+
private String extractVersionFromResponse(String jsonResponse) {
138+
Plugin plugin = JavaPlugin.getPlugin(HelpCommand.class);
139+
140+
try {
141+
JSONParser parser = new JSONParser();
142+
JSONObject jsonObject = (JSONObject) parser.parse(jsonResponse);
143+
Object versionObject = jsonObject.get("current_version");
144+
if (versionObject != null) {
145+
return versionObject.toString();
146+
} else {
147+
plugin.getLogger().warning("Failed to extract version from JSON response. 'current_version' field not found.");
148+
}
149+
} catch (ParseException e) {
150+
plugin.getLogger().warning("Error parsing JSON response: " + e.getMessage());
151+
}
152+
return "";
153+
}
80154
}

src/main/java/net/greenwoodmc/helpcommand/commands/help.java

Lines changed: 63 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

src/main/resources/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
# Main Help Command
1818
######################################
1919

20-
version: "2.8.3" # DO NOT CHANGE THIS VALUE
20+
version: "2.8.4" # DO NOT CHANGE THIS VALUE
2121
updateCheck: true # recommended to keep this value as true
2222

2323
help:

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: HelpCommand
2-
version: '2.8.3-PublicRelease'
2+
version: '2.8.4-PublicRelease'
33
main: net.greenwoodmc.helpcommand.HelpCommand
44
api-version: 1.18
55
authors: [ VoidemLIVE ]

target/classes/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
# Main Help Command
1818
######################################
1919

20-
version: "2.8.3" # DO NOT CHANGE THIS VALUE
20+
version: "2.8.4" # DO NOT CHANGE THIS VALUE
2121
updateCheck: true # recommended to keep this value as true
2222

2323
help:
Binary file not shown.
-1.46 KB
Binary file not shown.

target/classes/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: HelpCommand
2-
version: '2.8.3-PublicRelease'
2+
version: '2.8.4-PublicRelease'
33
main: net.greenwoodmc.helpcommand.HelpCommand
44
api-version: 1.18
55
authors: [ VoidemLIVE ]

0 commit comments

Comments
 (0)