Bonjour !
Bon allons droit au but. Pour un kitpvp, je charge tous les kits depuis un fichier .yml et je les stocks dans une ArrayList. Je précise qu'il n'y aucune erreur dans les logs et que les kits se chargent très bien :
Console :
Pour récupérer le kit par commande, je vais simplement chercher le kit dans l'arraylist par son nom. Seulement, le problème est que peu importe le nom du kit entré, c'est toujours le dernier kit qui est donné (ici Archer).
Voici le code qui s'occuper de giver le kit :
J'ai pensé que c'était du au fait que la boucle tournait à l'infini et ne donnait que le dernier (ce qui aurait pu être logique), donc j'ai essayé de mettre un break ou un return à la fin de la boucle mais la ca ne donnait plus aucun kit. Je ne sais vraiment pas d'où ca peut venir. Si vous avez besoin d'autres éléments concernant les objets crées, je suis tout disposé à les donner
Merci d'avance !
AlexFatta
Bon allons droit au but. Pour un kitpvp, je charge tous les kits depuis un fichier .yml et je les stocks dans une ArrayList. Je précise qu'il n'y aucune erreur dans les logs et que les kits se chargent très bien :
Console :
Code:
[01:08:42 INFO]: Kit Example_of_kits saved with success !
[01:08:42 INFO]: Kit Brute saved with success !
[01:08:42 INFO]: Kit Archer saved with success !
[01:08:42 INFO]: Loaded kits : [fr.alexfatta.kitpvp.kitManager.Kits@7d13349b, fr.alexfatta.kitpvp.kitManager.Kits@59693510, fr.alexfatta.kitpvp.kitManager.Kits@7ee96ec1]
Pour récupérer le kit par commande, je vais simplement chercher le kit dans l'arraylist par son nom. Seulement, le problème est que peu importe le nom du kit entré, c'est toujours le dernier kit qui est donné (ici Archer).
Voici le code qui s'occuper de giver le kit :
Code:
package fr.alexfatta.kitpvp.kitManager;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import fr.alexfatta.kitpvp.kitManager.kitObjects.Consumables;
import fr.alexfatta.kitpvp.kitManager.kitObjects.PotionsLots;
import fr.alexfatta.kitpvp.kitManager.kitObjects.Weapons;
public class EquipPlayerWithKit {
public static void equipKit (String kitName, Player player) {
int slotNumber = 0;
int i;
for (i = 0; i < LoadKits.getLoadedKits().size(); i++) {
Kits kit = LoadKits.getLoadedKits().get(i);
if (kit.getKitName().equals(kitName) && kit != null) {
//Armor
try {
player.getInventory().setHelmet(kit.getArmor().getHelmet());
player.getInventory().setChestplate(kit.getArmor().getChestplate());
player.getInventory().setLeggings(kit.getArmor().getLeggings());
player.getInventory().setBoots(kit.getArmor().getBoots());
} catch (NullPointerException e) {
}
//Armes
for (int j = 0; j < Weapons.getListWeapons().size(); j++) {
if (Weapons.getListWeapons().get(j) != null) {
player.getInventory().setItem(slotNumber, Weapons.getListWeapons().get(j));
slotNumber += 1;
}
}
//Potions
for (int k = 0; k < PotionsLots.getListOfPotions().size(); k++) {
if (PotionsLots.getListOfPotions().get(k) != null) {
player.getInventory().setItem(slotNumber, PotionsLots.getListOfPotions().get(k));
slotNumber += 1;
}
}
//Consommables
for (int l = 0; l < Consumables.getMapConsumables().size(); l++) {
if (Consumables.getMapConsumables().get(l) != null) {
player.getInventory().setItem(slotNumber, Consumables.getMapConsumables().get(l));
slotNumber += 1;
}
}
player.sendMessage(ChatColor.GRAY + "Kit " + kit.getKitName() + " recu avec succès !");
}
}
}
}
J'ai pensé que c'était du au fait que la boucle tournait à l'infini et ne donnait que le dernier (ce qui aurait pu être logique), donc j'ai essayé de mettre un break ou un return à la fin de la boucle mais la ca ne donnait plus aucun kit. Je ne sais vraiment pas d'où ca peut venir. Si vous avez besoin d'autres éléments concernant les objets crées, je suis tout disposé à les donner
Merci d'avance !
AlexFatta