33import com .bitaspire .cyberlevels .CyberLevels ;
44import com .bitaspire .cyberlevels .cache .Lang ;
55import com .bitaspire .cyberlevels .level .LevelSystem ;
6+ import com .bitaspire .cyberlevels .user .Database ;
67import com .bitaspire .cyberlevels .user .LevelUser ;
78import com .bitaspire .libs .common .util .ReplaceUtils ;
9+ import com .bitaspire .libs .prismatic .PrismaticAPI ;
10+ import com .bitaspire .libs .vnc .VNC ;
811import java .util .Arrays ;
912import java .util .LinkedHashMap ;
1013import java .util .List ;
1114import java .util .Map ;
1215import java .util .function .Function ;
1316import lombok .Getter ;
14- import org .bukkit .Bukkit ;
15- import org .bukkit .ChatColor ;
1617import org .bukkit .OfflinePlayer ;
1718import org .bukkit .command .Command ;
1819import org .bukkit .command .CommandExecutor ;
@@ -90,23 +91,7 @@ public boolean onCommand(
9091 switch (sub ) {
9192 case "about" :
9293 if (isRestricted (player , "player.about" )) return true ;
93- if (player == null ) {
94- main .logger (
95- " &d&lCyber&f&lLevels &fv" +
96- main .getDescription ().getVersion () +
97- " &7(&7&nhttps://bit.ly/2YSlqYq&7)." ,
98- " &fDeveloped by &d" + main .getAuthors () + "&f." ,
99- " A leveling system plugin with MySQL support and custom events."
100- );
101- return true ;
102- }
103- return main .createSender (player ).send (
104- " &d&lCyber&f&lLevels &fv" +
105- main .getDescription ().getVersion () +
106- " &7(&7&nhttps://bit.ly/2YSlqYq&7)." ,
107- " &fDeveloped by &d" + main .getAuthors () + "&f." ,
108- " A leveling system plugin with MySQL support and custom events."
109- );
94+ return sendAbout (sender , player );
11095 case "reload" :
11196 if (isRestricted (player , "admin.reload" )) return true ;
11297
@@ -281,6 +266,35 @@ public boolean onCommand(
281266 return sendLangMessage (sender , player , Lang ::getNoPermission );
282267 }
283268
269+ private boolean sendAbout (CommandSender sender , Player player ) {
270+ Database <?> database = main .userManager () == null ?
271+ null :
272+ main .userManager ().getDatabase ();
273+ boolean databaseEnabled = main .cache ().config ().database ().isEnabled ();
274+ boolean databaseConnected = database != null && database .isConnected ();
275+
276+ String [] lines = new String [] {
277+ " &d&lCyber&f&lLevels &fv" + main .getDescription ().getVersion () + "&7." ,
278+ " &7Server: &f" + serverInfo (),
279+ " &7Authors: &f" + main .getAuthors (),
280+ " &7Database: &f" + databaseConnected + " &7(enabled: &f" + databaseEnabled +
281+ "&7, type: &f" + main .cache ().config ().database ().getType () + "&7)" ,
282+ " &7Config: &fauto-save " + main .cache ().config ().isAutoSaveEnabled () +
283+ " / " + main .cache ().config ().getAutoSaveInterval () + "s&7, &fleaderboard " +
284+ main .cache ().config ().isLeaderboardEnabled () + " / " +
285+ main .cache ().config ().getLeaderboardMaxPositions () + " positions" ,
286+ " &7Engine: &f" + (main .cache ().config ().useBigDecimalSystem () ? "BigDecimal" : "Double" ) +
287+ "&7, &fEXP integer-only " + main .cache ().config ().isExpIntegerOnly ()
288+ };
289+
290+ if (player == null ) {
291+ main .logger (lines );
292+ return true ;
293+ }
294+
295+ return main .createSender (player ).send (lines );
296+ }
297+
284298 private boolean sendLangMessage (
285299 CommandSender cmdSender ,
286300 Player player ,
@@ -297,7 +311,7 @@ private boolean sendLangMessage(
297311 String out = stripConsoleChannels (line );
298312 if (!out .isEmpty ()) {
299313 cmdSender .sendMessage (
300- ChatColor . translateAlternateColorCodes ( '&' , out )
314+ PrismaticAPI . colorize ( out )
301315 );
302316 }
303317 }
@@ -348,7 +362,7 @@ private boolean sendLangMessage(
348362 out = stripConsoleChannels (out );
349363 if (!out .isEmpty ()) {
350364 cmdSender .sendMessage (
351- ChatColor . translateAlternateColorCodes ( '&' , out )
365+ PrismaticAPI . colorize ( out )
352366 );
353367 }
354368 }
@@ -369,15 +383,19 @@ private LevelUser<?> resolveUserByName(String name) {
369383 LevelUser <?> user = main .userManager ().getUser (name );
370384 if (user != null ) return user ;
371385
372- Player online = Bukkit .getPlayerExact (name );
386+ Player online = main . getServer () .getPlayerExact (name );
373387 if (online != null ) return main .userManager ().getUser (online );
374388
375- OfflinePlayer offline = Bukkit .getOfflinePlayer (name );
389+ OfflinePlayer offline = main . getServer () .getOfflinePlayer (name );
376390 if (!offline .hasPlayedBefore () && !offline .isOnline ()) return null ;
377391
378392 return main .userManager ().getUser (offline .getUniqueId ());
379393 }
380394
395+ private static String serverInfo () {
396+ return VNC .SERVER != null ? VNC .SERVER .getImplementationVersion () : "Unknown" ;
397+ }
398+
381399 private boolean sendLevelInfo (Player player ) {
382400 if (player == null ) return true ;
383401
0 commit comments