1616import de .minebench .syncinv .messenger .PlayerDataQuery ;
1717import de .minebench .syncinv .messenger .RedisMessenger ;
1818import de .minebench .syncinv .messenger .ServerMessenger ;
19+ import de .themoep .minedown .adventure .MineDown ;
1920import lombok .Getter ;
20- import org . bukkit . ChatColor ;
21+ import net . kyori . adventure . text . Component ;
2122import org .bukkit .GameRule ;
2223import org .bukkit .Location ;
2324import org .bukkit .Material ;
@@ -225,16 +226,15 @@ public void onEnable() {
225226 if (query .getYoungestServer () == null ) {
226227 openInvCommand .onCommand (sender , command , label , args );
227228 } else {
228- sender .sendMessage (ChatColor .RED + "Current server does not have newest player data! "
229- + ChatColor .GRAY + "Connecting to server " + query .getYoungestServer () + " which has the newest data..." );
229+ sender .sendMessage (getLang ("stale-player-data" , "server" , query .getYoungestServer ()));
230230 connectToServer (((Player ) sender ).getUniqueId (), query .getYoungestServer ());
231231 }
232232 });
233233 if (q == null ) {
234- sender .sendMessage (ChatColor . RED + "Could not query information from other servers! Take a look at the log for more details." );
234+ sender .sendMessage (getLang ( " query-error" ) );
235235 }
236236 } else {
237- sender .sendMessage (ChatColor . RED + "Player not found!" );
237+ sender .sendMessage (getLang ( "player- not- found" ) );
238238 }
239239 });
240240 return true ;
@@ -286,8 +286,11 @@ public void onDisable() {
286286 }
287287
288288 public void loadConfig () {
289- saveDefaultConfig ();
290- reloadConfig ();
289+ reloadConfig (); // load working config
290+
291+ // save newly added config options to disk
292+ getConfig ().options ().copyDefaults (true );
293+ saveConfig ();
291294
292295 debug = getConfig ().getBoolean ("debug" );
293296
@@ -388,11 +391,11 @@ && getConfig().contains("sync-" + syncType.getKey(), true)) {
388391 }
389392 }
390393
391- public boolean onCommand (CommandSender sender , Command cmd , String label , String [] args ) {
394+ public boolean onCommand (CommandSender sender , Command cmd , String label , String [] args ) {
392395 if (args .length > 0 ) {
393396 if ("reload" .equalsIgnoreCase (args [0 ]) && sender .hasPermission ("syncing.command.reload" )) {
394397 loadConfig ();
395- sender .sendMessage (ChatColor . YELLOW + "Config reloaded!" );
398+ sender .sendMessage (getLang ( "config- reloaded" ) );
396399 return true ;
397400 }
398401 }
@@ -401,16 +404,19 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
401404
402405 /**
403406 * Get a language message from the config and replace variables in it
404- * @param key The key of the message (lang.<key>)
405- * @param replacements An array of variables to be replaced with certain strings in the format [var,repl,var,repl,...]
407+ * @param key The key of the message (lang.<key>)
408+ * @param replacements An array of String to replace placeholders (uses the % character as placeholder indicators)
409+ * in format of [placeholder, repl, placeholder,repl,...]
406410 * @return The message string with colorcodes and variables replaced
407411 */
408- public String getLang (String key , String ... replacements ) {
409- String msg = ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("lang." + key , getName () + ": &cMissing language key &6" + key ));
410- for (int i = 0 ; i + 1 < replacements .length ; i += 2 ) {
411- msg = msg .replace ("%" + replacements [i ] + "%" , replacements [i +1 ]);
412+ public Component getLang (String key , String ... replacements ) {
413+ String rawMsg = getConfig ().getString ("lang." + key ); // use default defined by config (values from the config in jar)
414+
415+ if (rawMsg == null ) { // key is missing
416+ return MineDown .parse (getName () + ": &cMissing language key &6" + key );
417+ } else {
418+ return MineDown .parse (rawMsg , replacements );
412419 }
413- return msg ;
414420 }
415421
416422 /**
@@ -1132,7 +1138,7 @@ public void kick(UUID playerId, String key) {
11321138 runSync (() -> {
11331139 Player player = getServer ().getPlayer (playerId );
11341140 if (player != null ) {
1135- player .kickPlayer (getLang (key ));
1141+ player .kick (getLang (key ));
11361142 }
11371143 });
11381144 }
0 commit comments