Hey, effectivement je suis entrain de faire un plugin.Bonsoir,
Es-tu en train de faire un plugin ou es-tu à la recherche d'un plugin pour faire ce que dit le titre de ta discussion ?
Cordialement,
ShE3py
1.16.5Bah il suffit de faire une boucle sur tous les items de l'inventaire du joueur et de regarder si ceux-ci ont un nom custom avecItemStack#hasCustomName().
Quelle version du jeu vises-tu ?
Je veux bien savoir si ils ont un nom custom mais comment je vérifie après que ce nom custom est égal a un nom custom que j'ai choisis et aussi savoir combien j'en ai , et si possible verif aussi Material?Bah il suffit de faire une boucle sur tous les items de l'inventaire du joueur et de regarder si ceux-ci ont un nom custom avecItemStack#hasCustomName().
Quelle version du jeu vises-tu ?
public ItemStack getPlayerHaveCustomItem(Material equalAsMaterial, String equalAsCustomName, Player getPlayer) {
ItemStack returnItemStack = new ItemStack(Material.ACACIA_BOAT);
for(int i = 0; i < 104 ;i++){
ItemStack Item = getPlayer.getInventory().getItem(i);
if(Item != null && Item.getItemMeta().getDisplayName() == equalAsCustomName && Item.getType() == equalAsMaterial) {
returnItemStack = getPlayer.getInventory().getItem(i);
}else {
returnItemStack = null;
}
}
return returnItemStack;
}
Item indique plutôt que tu appelles une fonction de la classe org.bukkit.entity.Item.== uniquement pour les nombres ; pour les chaînes de caractères, tu dois utiliser x.equals(y).@Nullable
public static ItemStack getRenamedItem(Inventory inventory, Material expectedMaterial, String expectedName) {
for(ItemStack stack : inventory.getStorageContents()) {
if(stack != null && stack.getType() == expectedMaterial && stack.hasItemMeta()) {
ItemMeta meta = stack.getItemMeta();
if(meta.hasDisplayName() && meta.getDisplayName().equals(expectedName)) {
return stack;
}
}
}
return null;
}
Player player = ...;
ItemStack myCake = getRenamedItem(player.getInventory(), Material.CAKE, "Kougelhopf");
if(myCake != null) {
...
}
Merci bg !Tous les identifiants en Java commencent par une minuscule et non pas par une majuscule ; car là ta variableItemindique plutôt que tu appelles une fonction de la classeorg.bukkit.entity.Item.
De plus, en Java tu ne peux utiliser l'opérateur de comparaison==uniquement pour les nombres ; pour les chaînes de caractères, tu dois utiliserx.equals(y).
Java:@Nullable public static ItemStack getRenamedItem(Inventory inventory, Material expectedMaterial, String expectedName) { for(ItemStack stack : inventory.getStorageContents()) { if(stack != null && stack.getType() == expectedMaterial && stack.hasItemMeta()) { ItemMeta meta = stack.getItemMeta(); if(meta.hasDisplayName() && meta.getDisplayName().equals(expectedName)) { return stack; } } } return null; } Player player = ...; ItemStack myCake = getRenamedItem(player.getInventory(), Material.CAKE, "Kougelhopf"); if(myCake != null) { ... }