-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Après avoir implémenté l'api dans votre projet, importez dans votre classe principale LangAPI :
import org.bukkit.plugin.java.JavaPlugin;
public final class LangTest extends JavaPlugin {
private static LangAPI langAPI;
@Override
public void onEnable() {
// Plugin startup logic
this.langAPI = new LangAPI(this);
}
@Override
public void onDisable() {
// Plugin shutdown logic
}
public static LangAPI getLangAPI() {
return langAPI;
}
}
Lorsque vous lancez votre plugin, deux dossiers sont créés :
Le dossier LangAPI
est généré dans le dossier plugins
.
Il contient le fichier config.yml
de l'api. Vous pouvez définir la langue par défaut pour l'ensemble de tous les plugins.
Cette langue par défaut est chargée quand un joueur a une langue non supporté dans son client.
Chaque plugin qui charge l'api a un dossier langs
qui se génère dans son propre dossier de plugin.
Ce dossier est vide. Vous pouvez créer ici les fichiers de traduction de votre plugin.
Pour information, les noms de fichiers doivent correspondre aux différentes langues valides. (Celles-ci sont listées dans le fichier config.yml
de LangAPI).
Voici un exemple de fichier :
fr.yml
command:
basic:
message: "Commande exécutée avec succès !"
Pour récupérer un message il existe différentes solutions :
String getString(Player player, String path)
String getString(Lang lang, String path)
Il y a plusieurs paramètres :
- player : Le joueur qui recevra le message. Sa langue est calculé grâce à la langue de son client.
- lang : La langue à choisir pour récupérer le message.
- path : Le chemin du message à chercher dans la configuration.
Ce système fonctionne comme la classe FileConfiguration.
Voici un exemple dans une commande :
import fr.mrcoq.lib.langapi.LangAPI;
import fr.mrcoq.lib.langapi.exception.LangFileNotFoundException;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class BasicCommand implements CommandExecutor {
private LangAPI langAPI = LangTest.getLangAPI();
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(!(sender instanceof Player player)) {
sender.sendMessage("§4You can't use this command !");
return true;
}
try {
player.sendMessage(langAPI.getString(player, "command.basic.message"));
} catch(LangFileNotFoundException e) {
e.printStackTrace();
}
return true;
}
}