GetSubItems Serveur



  • Salut ^^, encore et toujours des problèmes 
    Cette fois-ci j'aimerais récupéré la même chose qu'un getSubItems mais en serveur, je ne sais pas du tout comment m'y prendre, on peut déjà différencier ceux qui ont des Subtypes avec getHasSubtypes mais pour ensuite pour en récupéré chacun je sèche

    Avez-vous une petite idée ? 😄 
    Merci d'avance 🙂


  • Administrateurs

    Heu ? Dans quel but ? Car je ne vois pas l'intérêt puisque cette fonction à juste pour but d'ajouter tous les items dans les onglets créatifs.



  • Dans le but d'associer un prix à chaque item, si tu as une autre méthode je dis pas non 😛


  • Administrateurs

    Heu je ne vois pas en quoi le getSubItem va t'aider pour fixer un prix.



  • Bah il me permet de fixer un prix à chaque metadata, exemple tout bête : je ne vais pas le mettre prix à la pomme d'or qui se craft avec les lingots et celle qui se craft avec des blocs ._.


  • Administrateurs

    D'accord mais je vois toujours pas comment tu compte utiliser cette méthode pour fixer le prix.
    Tu peux envoyer ton code qui gère le prix ? Et si il n'est pas encore fait, tu veux gérer ça comment ? Avec une liste ? Depuis un fichier ?



  • En faite, j'ai fais une liste qui me permet de récupéré tout les items dont leurs metadata mais c'est tout ._.
    Après j'associe le prix avec une map
    Peu importe la méthode que j'utilise pour associer les prix, il me faudra leurs metadata non ? Donc le problème ne changera pas :s


  • Administrateurs

    Mais je vois toujours pas en quoi ça va aider x)
    Logiquement, tu as un itemstack, et tu cherches à savoir la valeur de cette item stack.
    Donc moi je vois une fonction du genre :

    public double getPrice(ItemStack stack)
    {
         return map.get(new ItemPrice(stack.getItem(), stack.getItemDamage())) * stack.stackSize);
    }
    

    ou map serai :
    public static Map <itemprice, double="">map = new HashMap();
    Et ItemPrice serai une classe qui contient l'item et le medata.
    Après on peut facilement remplir cette map en lisant un fichier texte par exemple pour fixer le prix depuis un fichier externe.</itemprice,>



  • Non ce n'est pas ça que je cherche, il faut que j'ai une liste de tout les items / metadata donc j'avais utilisé

    ​listItems.clear();
    
    int i = 0;
    Iterator iterator = Item.itemRegistry.iterator();
    while(iterator.hasNext()){
    Item item = (Item)iterator.next();
    if (item != null && (item.getCreativeTab() != null))
    {
    item.getSubItems(item, (CreativeTabs)null, listItems);
    }
    }
    return listItems;
    

    Sauf que le subItems est qu'en client donc il me faudrait un équivalent pour serveur


  • Administrateurs

    Tu utilise cette liste pour quoi exactement ? Car je crois que tu vas devoir faire sans car il n'existe aucun équivalent côté serveur, la seule solution que je vois serait de passer par getUnlocalizedName(ItemStack stack) et encore ça serait galère. (il faudrait tester à chaque fois avec un item stack qui a un metadata différent et regarder si le nom obtenu est différent ou non).



  • J'utilise cette liste pour associer un prix juste, dans une map (ItemStack,Double)



  • Mais tu détermines le prix dynamiquement ? Et puis, pourquoi ne pas traiter chaque ItemStack séparément sans liste modèle ?

    Envoyé de mon iPhone en utilisant Tapatalk



  • Oui je détermine les prix dynamiquement ^^
    En revanche je ne comprends ce que vous ne comprenez pas 😛 
    Je récupère chaque item avec sa metadata afin de lui donner un prix (par exemple la laine blanche à pas le même prix qu'une laine noir )._.