-
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 MultiLanguageAPI :
import org.bukkit.plugin.java.JavaPlugin;
import fr.mrcoq.lib.multilanguageapi.MultiLanguageAPI;
public final class LangTest extends JavaPlugin {
private static MultiLanguageAPI multiLanguageApi;
@Override
public void onEnable() {
// Plugin startup logic
multiLanguageApi = new MultiLanguageAPI(this);
}
@Override
public void onDisable() {
// Plugin shutdown logic
}
public static MultiLanguageAPI getMultiLanguageAPI() {
return multiLanguageApi;
}
}
Lorsque vous lancez votre plugin, deux dossiers sont créés :
Le dossier MultiLanguageAPI
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ée 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 MultiLanguageAPI).
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ée 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.multilanguageapi.MultiLanguageAPI;
import fr.mrcoq.lib.multilanguageapi.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 MultiLanguageAPI multiLanguageApi = LangTest.getMultiLanguageAPI();
@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(multiLanguageApi.getString(player, "command.basic.message"));
} catch(LangFileNotFoundException e) {
e.printStackTrace();
}
return true;
}
}