Skip to content

Commit

Permalink
Merge pull request #4 from FunOase/development
Browse files Browse the repository at this point in the history
Move Command#deserializeComponent into I18n
  • Loading branch information
RappyTV authored Nov 13, 2024
2 parents 41cfc9f + 0f168bf commit 6cbc148
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 23 deletions.
35 changes: 26 additions & 9 deletions src/main/java/net/funoase/sahara/bukkit/i18n/I18n.java
Original file line number Diff line number Diff line change
@@ -1,28 +1,45 @@
package net.funoase.sahara.bukkit.i18n;

import net.funoase.sahara.bukkit.Sahara;
import org.bukkit.entity.Player;
import net.funoase.sahara.common.i18n.I18nManager;
import net.funoase.sahara.common.i18n.Language;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class I18n {

private static final I18nManager manager = Sahara.get().getI18nManager();
private static final MiniMessage minimessage = MiniMessage.miniMessage();

public static Component component(CommandSender sender, String key, TagResolver... args) {
return component(sender, key, false, args);
}

public static Component component(CommandSender sender, String key, boolean prefix, TagResolver... args) {
Language language = manager.getLanguage(sender);
return minimessage.deserialize((prefix ? language.translate("sahara.prefix") + " " : "") + language.translate(key), args);
}

@NotNull
public static String getRawTranslation(@NotNull Player player, @NotNull String key) {
return Sahara.get().getI18nManager().getLanguage(player.locale()).getRawTranslation(key);
public static String getRawTranslation(@NotNull CommandSender sender, @NotNull String key) {
return manager.getLanguage(sender).getRawTranslation(key);
}

@NotNull
public static String translate(@NotNull Player player, @NotNull String key, Object... args) {
return Sahara.get().getI18nManager().getLanguage(player.locale()).translate(key, args);
public static String translate(@NotNull CommandSender sender, @NotNull String key, Object... args) {
return manager.getLanguage(sender).translate(key, args);
}

@Nullable
public static String getTranslation(@NotNull Player player, @NotNull String key, Object... args) {
return Sahara.get().getI18nManager().getLanguage(player.locale()).getTranslation(key, args);
public static String getTranslation(@NotNull CommandSender sender, @NotNull String key, Object... args) {
return manager.getLanguage(sender).getTranslation(key, args);
}

public static boolean has(@NotNull Player player, @NotNull String key) {
return Sahara.get().getI18nManager().getLanguage(player.locale()).has(key);
public static boolean has(@NotNull CommandSender sender, @NotNull String key) {
return manager.getLanguage(sender).has(key);
}
}
15 changes: 1 addition & 14 deletions src/main/java/net/funoase/sahara/bukkit/util/Command.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,9 @@
package net.funoase.sahara.bukkit.util;

import net.funoase.sahara.bukkit.Sahara;
import net.funoase.sahara.common.i18n.I18nManager;
import net.funoase.sahara.common.i18n.Language;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.ArrayList;
Expand All @@ -20,7 +14,7 @@
public abstract class Command<T extends JavaPlugin> implements CommandExecutor, TabExecutor {

public static final List<String> players = new ArrayList<>(Collections.singletonList("--players--"));
protected static MiniMessage minimessage = MiniMessage.miniMessage();
protected static final MiniMessage minimessage = MiniMessage.miniMessage();
protected final T plugin;
private final String name;
private boolean registered = false;
Expand Down Expand Up @@ -58,13 +52,6 @@ public List<String> tab(String str, List<String> list) {
return finalList;
}

public static Component deserializeTranslatable(CommandSender sender, String key, TagResolver... args) {
Language language = Sahara.get().getI18nManager().getLanguage(
sender instanceof Player player ? player.locale() : I18nManager.fallback
);
return minimessage.deserialize(language.translate("sahara.prefix") + " " + language.translate(key), args);
}

public void register() {
if(this.registered) {
throw new IllegalStateException("Command already registered");
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/net/funoase/sahara/common/i18n/I18nManager.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package net.funoase.sahara.common.i18n;

import net.funoase.sahara.bukkit.Sahara;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;
Expand Down Expand Up @@ -71,4 +73,8 @@ public Language getLanguage(String code) {
public Language getLanguage(Locale locale) {
return getLanguage(locale.toString().toLowerCase());
}

public Language getLanguage(CommandSender sender) {
return getLanguage(sender instanceof Player player ? player.locale() : I18nManager.fallback);
}
}

0 comments on commit 6cbc148

Please sign in to comment.