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