Fix getting locale in lower version client by delaying message sending

This commit is contained in:
Dreeam 2024-05-30 01:21:57 +08:00
parent fdc0d31632
commit 4e54d86712
No known key found for this signature in database
GPG Key ID: 0998F8AFD8F667AB
2 changed files with 17 additions and 1 deletions

View File

@ -6,6 +6,8 @@ import fr.xephi.authme.message.Messages;
import fr.xephi.authme.permission.PermissionNode;
import fr.xephi.authme.permission.PermissionsManager;
import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.settings.properties.PluginSettings;
import fr.xephi.authme.util.Utils;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -22,6 +24,9 @@ public class CommonService {
@Inject
private Messages messages;
@Inject
private BukkitService bukkitService;
@Inject
private PermissionsManager permissionsManager;
@ -46,6 +51,11 @@ public class CommonService {
* @param key the message key
*/
public void send(CommandSender sender, MessageKey key) {
if (Utils.majorVersion < 12 && settings.getProperty(PluginSettings.I18N_MESSAGES)) {
bukkitService.runTaskLater(() -> messages.send(sender, key), 35L);
return;
}
messages.send(sender, key);
}
@ -57,6 +67,11 @@ public class CommonService {
* @param replacements the replacements to apply to the message
*/
public void send(CommandSender sender, MessageKey key, String... replacements) {
if (Utils.majorVersion < 12 && settings.getProperty(PluginSettings.I18N_MESSAGES)) {
bukkitService.runTaskLater(() -> messages.send(sender, key, replacements), 35L);
return;
}
messages.send(sender, key, replacements);
}

View File

@ -40,7 +40,8 @@ public class I18NUtils {
spigotGetLocaleMethod.setAccessible(true);
return ((String) spigotGetLocaleMethod.invoke(spigot)).toLowerCase();
} catch (Exception ignored) {
} catch (Exception e) {
e.printStackTrace();
return null;
}
}