-
Notifications
You must be signed in to change notification settings - Fork 0
L'API
Dans cette page, un tutoriel sur tous les éléments fournis par l'API sera montré.
- Date de début du projet: samedi 27 avril 2019
- Nombre de modules gérés par l'API: 3
- Liste des modules gérés par l'API:
Sommaire:
Avant de parler des modules, nous allons voir comment créer et configurer un projet utilisant cette API.
Comme ce projet a été réalisé avec Maven, ce tutoriel l'utilisera comme gestionnaire de dépendances.
Après avoir créé votre projet sous Maven, il faut configurer ses dépendances.
- Ouvrez le fichier "pom.xml"
- Ajoutez dans la liste des repository celui de Spigot (https://hub.spigotmc.org/nexus/content/repositories/snapshots/) et celui de JitPack (https://jitpack.io)
- Ajoutez la dépendance de Spigot et de l'API
- Rechargez votre projet Maven. C'est tout !
- Depuis: 1.0
La langue est une chose importante en communication. C'est pour cette raison que l'API possède un gestionnaire de langues facile à utiliser et à configurer.
Liste des langues supportées:
- Anglais (en_US)
- Français (fr_FR)
Pour ajouter une langue, vous devez créer un dossier contenant les langues.
- Créez un dossier "lang"
- Créez un fichier dans le dossier lang dont le nom sera le nom de la langue suivit de ".lang". Example de fichier: fr_FR.lang
- N'importe où dans votre plugin, appelez la méthode
Froxy.register(File)
avec comme paramètre le dossier lang (Exemple)
- Le format des fichiers de langues est "key : message". (Exemple)
- Vous pouvez créer des valeurs qui changeront au fil du programme en mettant "{}" (sans les doubles guillemets) dans le message (Exemple). Dans ce cas, le "{}" sera remplacé par une valeur lors de l'execution.
- L'API supporte les codes couleurs ! Vous devez juste entrer le code couleur (§ et pas &) (Exemple)
Pour utiliser une langue, c'est assez simple.
- Importez de manière statique les méthodes
Froxy.$ et Froxy.$_
- Vous pouvez dès lors utiliser les méthodes
$(String)
,$(String, String...)
,$(String, Languages)
,$(String, Languages, String...)
,$_(String, Language)
,$_(String, Language, String...)
.- La méthode
$(String)
retourne le message traduit en la langue par défaut. - La méthode
$(String, String...)
retourne le message traduit en la langue par défaut puis rajoutera les paramètres passés. - La méthode
$(String, Language)
retourne le message traduit en la langue passée en paramètre. Si le message n'a pas été trouvé, cette méthode retournera le message traduit en la langue par défaut. - La méthode
$(String, Language, String...)
retourne le message traduit en la langue passée en paramètre puis rajoutera les paramètres passés. Si le message n'a pas été trouvé, cette méthode retournera le message traduit en la langue par défaut puis rajoutera les paramètres passés. - La méthode
$_(String, Language)
retourne le message traduit en la langue passée en paramètre. - La méthode
$_(String, Language, String...)
retourne le message traduit en la langue passée en paramètre puis rajoutera les paramètres passés. - (Exemple)
- La méthode
- Depuis: 1.0
Une manière plus simple de créer et d'utiliser les commandes par rapport à Spigot.
- Votre classe de commande devra implémenter l'interface "Command".
- (Exemple)
- La méthode
getCommand()
doit retourner la commande principale. Dans l'exemple, c'est hello (/hello) - La méthode
getAliases()
doit retourner une liste d'alias, ou null s'il n'y en a pas. - La méthode
getPermission()
doit retourner la permission requise par le joueur pour pouvoir executer la commande. Peut être null. Si le joueur n'a pas la permission, la méthodenoPermission(player)
est appelée. - La méthode
execute(String, Player, String[])
correspond à l'execution de la commande. Le 1er argument est la commande entrée, le 2ème est le joueur et le 3eme correspond aux arguments entrés. Dans l'exemple, si on entre /hello ou /hi, la commande nous affiche world.
- Seul les commandes entrées par les joueurs fonctionnent. Pour executer une commande via un command block ou depuis la console, il faudra passer par Spigot.
- Pour enregistrer la commande, il faut appeler la méthode
Froxy.registerCommand(Command)
(Exemple)
- Depuis: 1.0
Une manière plus simple de créer et d'utiliser les inventaires par rapport à Spigot. La gestion des inventaires est un peu spéciale. En effet, une interface spéciale est requise pour la création et la modification d'un inventaire
- Votre classe d'inventaire devra implémenter l'interface "InventoryProvider".
- (Exemple)
- La méthode
title(Inventory)
doit retourner le titre de l'inventaire. Ici, "Home ~ 0ddlyoko" si le joueur 0ddlyoko ouvre l'inventaire. - La méthode
rows(Inventory)
doit retourner le nombre de ligne de l'inventaire. Ici, 6. - La méthode
init(Inventory)
correspond à l'initialisation de l'inventaire. Cette méthode servira à initialiser les items dans le but d'avoir un inventaire de base. - La méthode
update(Inventory)
correspond à la mise à jour de l'inventaire. Cette méthode est automatiquement appelée tous les ticks.
- Une fois fait, enregistrer cet inventaire dans une variable (Exemple)
- Pour qu'un joueur puisse ouvrir cet inventaire, appelez la méthode
Froxy.openInventory(InventoryProvider, Player);
(Dans cet Exemple, l'inventaire est ouvert une fois que le joueur entre la commande /test ou /tests) - Pour fermer l'inventaire d'un joueur:
player.closeInventory()
ouFroxy.closeInventory(player)
- Pour vérifier si un joueur a un inventaire d'ouvert:
Froxy.hasInventoryOpened(player)
- Pour récupérer l'inventaire du joueur:
Froxy.getInventory(player)
(utile pour vérifier si un joueur ferme son inventaire)
La méthode Froxy.openInventory(InventoryProvider, Player)
retourne un objet de type Inventory
. Il est conseillé de ne pas l'utiliser, sauf dans certains cas.
Il est conseillé d'utiliser cette classe dans la classe implémentant l'InventoryProvider
:
- Pour récupérer le joueur correspondant:
inv.getPlayer()
- Pour récupérer l'
InventoryProvider
:inv.getInventoryProvider()
- Pour récupérer le nombre de ligne de l'inventaire:
inv.getRows()
- Pour mettre un item dans l'inventaire:
inv.set(col, row, item)
ouinv.set(pos, item)
- Le
col
signifie le numéro de colonne où sera l'item. La 1ère colonne sera le numéro 1. - Le
row
signifie le numéro de ligne où sera l'item. La 1ère sera le numéro 1. - Le
pos
signifie la position de l'item dans l'inventaire. La 1ère case est la position 0, la dernière de la première ligne est la 8 et la 1ère case de la deuxième ligne est le 9.
- Le
- Pour remplir l'inventaire:
inv.fill(item)
- Pour créer un rectangle:
inv.rectangle(col, row, width, height, item)
ouinv.rectangle(pos, width, height, item)
- Le
col
signifie le numéro de colonne où sera l'item. La 1ère colonne sera le numéro 1. - Le
row
signifie le numéro de ligne où sera l'item. La 1ère sera le numéro 1. - Le
pos
signifie la position de l'item dans l'inventaire. La 1ère case est la position 0, la dernière de la première ligne est la 8 et la 1ère case de la deuxième ligne est le 9. - Le
width
est la largeur du rectangle - Le
height
est la hauteur du rectangle
- Le
- Pour créer un rectangle et remplir l'intérieur:
inv.fillRectangle(col, row, width, height, item)
ouinv.fillRectangle(pos, width, height, item)
- Le
col
signifie le numéro de colonne où sera l'item. La 1ère colonne sera le numéro 1. - Le
row
signifie le numéro de ligne où sera l'item. La 1ère sera le numéro 1. - Le
pos
signifie la position de l'item dans l'inventaire. La 1ère case est la position 0, la dernière de la première ligne est la 8 et la 1ère case de la deuxième ligne est le 9. - Le
width
est la largeur du rectangle - Le
height
est la hauteur du rectangle
- Le
- Pour récupérer le tick actuel (Le nombre de tick depuis que l'inventaire est ouvert):
Integer.parseInt(inv.get(Inventory.TICK).toString());
- Pour sauvegarder une donnée dans l'inventaire:
inv.save(key, obj)
- Pour récupérer une donnée de l'inventaire:
inv.get(key)