Skip to content

Commit 6cb84ae

Browse files
committed
update use textComponents, since we rely on paper anyway
1 parent 752c4e4 commit 6cb84ae

3 files changed

Lines changed: 38 additions & 18 deletions

File tree

pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@
6363
<version>6.2.3.RELEASE</version>
6464
<scope>compile</scope>
6565
</dependency>
66+
<dependency>
67+
<groupId>de.themoep</groupId>
68+
<artifactId>minedown-adventure</artifactId>
69+
<version>1.7.1-SNAPSHOT</version>
70+
<scope>compile</scope>
71+
</dependency>
6672
</dependencies>
6773

6874
<profiles>
@@ -134,6 +140,10 @@
134140
<pattern>org.reactivestreams</pattern>
135141
<shadedPattern>de.minebench.syncinv.lib.reactivestreams</shadedPattern>
136142
</relocation>
143+
<relocation>
144+
<pattern>de.themoep.minedown</pattern>
145+
<shadedPattern>de.minebench.syncinv.lib.minedown</shadedPattern>
146+
</relocation>
137147
</relocations>
138148
</configuration>
139149
</execution>

src/main/java/de/minebench/syncinv/SyncInv.java

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@
1616
import de.minebench.syncinv.messenger.PlayerDataQuery;
1717
import de.minebench.syncinv.messenger.RedisMessenger;
1818
import de.minebench.syncinv.messenger.ServerMessenger;
19+
import de.themoep.minedown.adventure.MineDown;
1920
import lombok.Getter;
20-
import org.bukkit.ChatColor;
21+
import net.kyori.adventure.text.Component;
2122
import org.bukkit.GameRule;
2223
import org.bukkit.Location;
2324
import 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
}

src/main/resources/config.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,8 @@ lang:
105105
cant-drop-items: "&cYou can only drop items once your player data is loaded!"
106106
cant-move: "&cYou can only move once your player data is loaded!"
107107
wait-for-loading: "&cPlease wait until your player data is loaded!"
108-
cant-load-data: "&cSorry but the server wasn't able to load your latest player data.\nPlease contact an administrator if this happens often!"
108+
cant-load-data: "&cSorry but the server wasn't able to load your latest player data.\nPlease contact an administrator if this happens often!"
109+
config-reloaded: "&eConfig reloaded!"
110+
player-not-found: "&cPlayer not found!"
111+
query-error : "Could not query information from other servers! Take a look at the log for more details."
112+
stale-player-data : "&cCurrent server does not have newest player data! &7Connecting to server %server% which has the newest data..."

0 commit comments

Comments
 (0)