@@ -56,39 +56,40 @@ public MergeCommand getMergeCommand() {
5656 }
5757
5858 private static class HelpCommand implements CommandExecutor {
59- private final Resourceloader plugin ;
6059
6160 public HelpCommand (Resourceloader plugin ) {
62- this . plugin = plugin ;
61+ // Constructor for consistency
6362 }
6463
6564 @ Override
6665 public boolean onCommand (CommandSender sender , Command command , String label , String [] args ) {
67- sender .sendMessage (plugin . getMessageManager (). getMessage ( "help.header" ) );
66+ sender .sendMessage ("§6=== ResourceLoader Help ===" );
6867
6968 if (sender .hasPermission ("resourceloader.load" )) {
70- sender .sendMessage (plugin . getMessageManager (). getMessageNoPrefix ( "help. load" ) );
71- sender .sendMessage (plugin . getMessageManager (). getMessageNoPrefix ( "help. load- specific" ) );
69+ sender .sendMessage ("§e/ load [pack] §7- Load a resource pack" );
70+ sender .sendMessage ("§e/ load <pack> §7- Load a specific resource pack" );
7271 }
7372
7473 if (sender .hasPermission ("resourceloader.list" )) {
75- sender .sendMessage (plugin . getMessageManager (). getMessageNoPrefix ( "help.list" ) );
74+ sender .sendMessage ("§e/listpacks §7- List available resource packs" );
7675 }
7776
7877 if (sender .hasPermission ("resourceloader.autoload" )) {
79- sender .sendMessage (plugin . getMessageManager (). getMessageNoPrefix ( "help. autoload" ) );
78+ sender .sendMessage ("§e/ autoload <pack|clear> §7- Set automatic pack loading" );
8079 }
8180
8281 if (sender .hasPermission ("resourceloader.admin" )) {
83- sender .sendMessage (plugin .getMessageManager ().getMessageNoPrefix ("help.admin-header" ));
84- sender .sendMessage (plugin .getMessageManager ().getMessageNoPrefix ("help.merge" ));
85- sender .sendMessage (plugin .getMessageManager ().getMessageNoPrefix ("help.remove" ));
86- sender .sendMessage (plugin .getMessageManager ().getMessageNoPrefix ("help.reload" ));
87- sender .sendMessage (plugin .getMessageManager ().getMessageNoPrefix ("help.version" ));
88- sender .sendMessage (plugin .getMessageManager ().getMessageNoPrefix ("help.cache" ));
82+ sender .sendMessage ("§6=== Admin Commands ===" );
83+ sender .sendMessage ("§e/mergepack <output> <pack1> <pack2> §7- Merge resource packs" );
84+ sender .sendMessage ("§e/mergegui §7- Open merge GUI" );
85+ sender .sendMessage ("§e/removepack <pack> §7- Remove a resource pack" );
86+ sender .sendMessage ("§e/checkpack <pack> §7- Validate a resource pack" );
87+ sender .sendMessage ("§e/resourcereload §7- Reload configuration" );
88+ sender .sendMessage ("§e/resourceversion §7- Check plugin version" );
89+ sender .sendMessage ("§e/clearcache §7- Clear resource pack cache" );
8990 }
9091
91- sender .sendMessage (plugin . getMessageManager (). getMessageNoPrefix ( "help.footer" ) );
92+ sender .sendMessage ("§6==========================" );
9293 return true ;
9394 }
9495 }
@@ -197,9 +198,72 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
197198 return true ;
198199 }
199200
200- String version = plugin .getDescription ().getVersion ();
201- sender .sendMessage (plugin .getMessageManager ().formatMessage ("version.current" ,
202- "version" , version ));
201+ String currentVersion = plugin .getDescription ().getVersion ();
202+ sender .sendMessage ("§eChecking for updates..." );
203+
204+ // Use async task to check for updates
205+ plugin .getServer ().getScheduler ().runTaskAsynchronously (plugin , () -> {
206+ try {
207+ java .net .URL url = java .net .URI .create ("https://api.github.com/repos/DefectiveVortex/Resourceloader/releases/latest" ).toURL ();
208+ java .net .HttpURLConnection conn = (java .net .HttpURLConnection ) url .openConnection ();
209+ conn .setRequestMethod ("GET" );
210+ conn .setRequestProperty ("Accept" , "application/vnd.github.v3+json" );
211+ conn .setConnectTimeout (5000 );
212+ conn .setReadTimeout (5000 );
213+
214+ if (conn .getResponseCode () == java .net .HttpURLConnection .HTTP_OK ) {
215+ java .io .BufferedReader reader = new java .io .BufferedReader (new java .io .InputStreamReader (conn .getInputStream ()));
216+ StringBuilder response = new StringBuilder ();
217+ String line ;
218+
219+ while ((line = reader .readLine ()) != null ) {
220+ response .append (line );
221+ }
222+ reader .close ();
223+
224+ // Parse JSON response
225+ String jsonResponse = response .toString ();
226+ String latestVersion = null ;
227+
228+ // Simple JSON parsing to extract tag_name
229+ int tagStart = jsonResponse .indexOf ("\" tag_name\" :\" " ) + 12 ;
230+ if (tagStart > 11 ) {
231+ int tagEnd = jsonResponse .indexOf ("\" " , tagStart );
232+ if (tagEnd > tagStart ) {
233+ latestVersion = jsonResponse .substring (tagStart , tagEnd ).replace ("v" , "" );
234+ }
235+ }
236+
237+ final String finalLatestVersion = latestVersion ;
238+ plugin .getServer ().getScheduler ().runTask (plugin , () -> {
239+ if (finalLatestVersion != null ) {
240+ sender .sendMessage ("§eCurrent version: §f" + currentVersion );
241+ sender .sendMessage ("§eLatest version: §f" + finalLatestVersion );
242+
243+ if (!currentVersion .equals (finalLatestVersion )) {
244+ sender .sendMessage ("§aA new version is available!" );
245+ sender .sendMessage ("§eDownload it from: §fhttps://github.com/DefectiveVortex/Resourceloader/releases/latest" );
246+ } else {
247+ sender .sendMessage ("§aYou are running the latest version!" );
248+ }
249+ } else {
250+ sender .sendMessage ("§cFailed to parse version information." );
251+ }
252+ });
253+ } else {
254+ final int responseCode = conn .getResponseCode ();
255+ plugin .getServer ().getScheduler ().runTask (plugin , () -> {
256+ sender .sendMessage ("§cFailed to check for updates. HTTP " + responseCode );
257+ });
258+ }
259+ } catch (Exception e ) {
260+ plugin .getServer ().getScheduler ().runTask (plugin , () -> {
261+ sender .sendMessage ("§cFailed to check for updates: " + e .getMessage ());
262+ sender .sendMessage ("§eCurrent version: §f" + currentVersion );
263+ });
264+ }
265+ });
266+
203267 return true ;
204268 }
205269 }
0 commit comments