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 ;
@@ -232,16 +233,15 @@ public void onEnable() {
232233                                    if  (query .getYoungestServer () == null ) {
233234                                        openInvCommand .onCommand (sender , command , label , args );
234235                                    } else  {
235-                                         sender .sendMessage (ChatColor .RED  + "Current server does not have newest player data! " 
236-                                                 + ChatColor .GRAY  + "Connecting to server "  + query .getYoungestServer () + " which has the newest data..." );
236+                                         sender .sendMessage (getLang ("stale-player-data" , "server" , query .getYoungestServer ()));
237237                                        connectToServer (((Player ) sender ).getUniqueId (), query .getYoungestServer ());
238238                                    }
239239                                });
240240                                if  (q  == null ) {
241-                                     sender .sendMessage (ChatColor . RED  +  "Could not  query information from other servers! Take a look at the log for more details." 
241+                                     sender .sendMessage (getLang ( " query-error" ) );
242242                                }
243243                            } else  {
244-                                 sender .sendMessage (ChatColor . RED  +  "Player  not  found!" 
244+                                 sender .sendMessage (getLang ( "player- not- found" ) );
245245                            }
246246                        });
247247                        return  true ;
@@ -293,8 +293,11 @@ public void onDisable() {
293293    }
294294
295295    public  void  loadConfig () {
296-         saveDefaultConfig ();
297-         reloadConfig ();
296+         reloadConfig (); // load working config 
297+ 
298+         // save newly added config options to disk 
299+         getConfig ().options ().copyDefaults (true );
300+         saveConfig ();
298301
299302        debug  = getConfig ().getBoolean ("debug" );
300303
@@ -411,11 +414,11 @@ && getConfig().contains("sync-" + syncType.getKey(), true)) {
411414        }
412415    }
413416
414-     public  boolean  onCommand (CommandSender  sender , Command  cmd , String  label , String [] args ) {
417+     public  boolean  onCommand (CommandSender  sender , Command  cmd , String  label , String   [] args ) {
415418        if  (args .length  > 0 ) {
416419            if  ("reload" .equalsIgnoreCase (args [0 ]) && sender .hasPermission ("syncing.command.reload" )) {
417420                loadConfig ();
418-                 sender .sendMessage (ChatColor . YELLOW  +  "Config  reloaded!" 
421+                 sender .sendMessage (getLang ( "config- reloaded" ) );
419422                return  true ;
420423            }
421424        }
@@ -424,16 +427,19 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
424427
425428    /** 
426429     * Get a language message from the config and replace variables in it 
427-      * @param key The key of the message (lang.<key>) 
428-      * @param replacements An array of variables to be replaced with certain strings in the format [var,repl,var,repl,...] 
430+      * @param key          The key of the message (lang.<key>) 
431+      * @param replacements An array of String to replace placeholders (uses the % character as placeholder indicators) 
432+      *                     in format of [placeholder, repl, placeholder,repl,...] 
429433     * @return The message string with colorcodes and variables replaced 
430434     */ 
431-     public  String  getLang (String  key , String ... replacements ) {
432-         String  msg  = ChatColor .translateAlternateColorCodes ('&' , getConfig ().getString ("lang."  + key , getName () + ": &cMissing language key &6"  + key ));
433-         for  (int  i  = 0 ; i  + 1  < replacements .length ; i  += 2 ) {
434-             msg  = msg .replace ("%"  + replacements [i ] + "%" , replacements [i +1 ]);
435+     public  Component  getLang (String  key , String ... replacements ) {
436+         String  rawMsg  = getConfig ().getString ("lang."  + key ); // use default defined by config (values from the config in jar) 
437+ 
438+         if  (rawMsg  == null ) { // key is missing 
439+             return  MineDown .parse (getName () + ": &cMissing language key &6"  + key );
440+         } else  {
441+             return  MineDown .parse (rawMsg , replacements );
435442        }
436-         return  msg ;
437443    }
438444
439445    /** 
@@ -1187,7 +1193,7 @@ public void kick(UUID playerId, String key) {
11871193        runSync (() -> {
11881194            Player  player  = getServer ().getPlayer (playerId );
11891195            if  (player  != null ) {
1190-                 player .kickPlayer (getLang (key ));
1196+                 player .kick (getLang (key ));
11911197            }
11921198        });
11931199    }
0 commit comments