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.PermissionNode;
import fr.xephi.authme.permission.PermissionsManager; import fr.xephi.authme.permission.PermissionsManager;
import fr.xephi.authme.settings.Settings; 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.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -22,6 +24,9 @@ public class CommonService {
@Inject @Inject
private Messages messages; private Messages messages;
@Inject
private BukkitService bukkitService;
@Inject @Inject
private PermissionsManager permissionsManager; private PermissionsManager permissionsManager;
@ -46,6 +51,11 @@ public class CommonService {
* @param key the message key * @param key the message key
*/ */
public void send(CommandSender sender, MessageKey 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); messages.send(sender, key);
} }
@ -57,6 +67,11 @@ public class CommonService {
* @param replacements the replacements to apply to the message * @param replacements the replacements to apply to the message
*/ */
public void send(CommandSender sender, MessageKey key, String... replacements) { 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); messages.send(sender, key, replacements);
} }

View File

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