Intercepter un clique dans un GUI



  • Bonjour à tous (et oui encore, je spam un peu en ce moment dans cette catégorie), ce que je voudrais faire c'est empêcher un item d'être mis dans un inventaire or le seul moyen de faire ça c'est soit d'intercepter le paquet C0EPacketClickWindow (je ne suis pas sûr et en plus je n'est pas trouver comment intercepter un paquet vanilla/forge) ou d'utiliser la fonction slotClick du container sauf que je ne peux pas accéder au container en cours.

    Un autre moyen serrer que forge ajoute un event pour çà.

    Si vous avez un moyen de faire çà, votre réponse sera la bien venue ;).


  • Administrateurs

    Salut,
    Sinon tu peux passer par l'event de tick du joueur, si le joueur a l'item dans l'inventaire tu le supprimes.



  • @'robin4002':

    Salut,
    Sinon tu peux passer par l'event de tick du joueur, si le joueur a l'item dans l'inventaire tu le supprimes.

    Je peux pas vu que c'est sur un tile entity, ce que je veux faire c'est empêcher les joueurs de faire des potions de forces niveau 2, pour l'instant le seul moyen que j'ai c'est d'utiliser le PotionBrewEvent.Pre :

    
    package fr.scarex.HGVS.HGVSEvents;
    
    import net.minecraft.init.Items;
    import net.minecraftforge.event.brewing.PotionBrewEvent;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    
    public class HGVSPotionBrewerEventHandler
    {
    @SubscribeEvent
    public void onPotionBrewed(PotionBrewEvent.Pre event) {
    for (int i = 0; i < event.getLength(); i++) {
    if (event.getItem(i) != null && event.getItem(i).getItem() == Items.potionitem && (event.getItem(i).getMetadata() == 8265 || event.getItem(i).getMetadata() == 16393)) {
    event.setCanceled(true);
    }
    }
    }
    }
    
    

    Mais le problème est que cet événement est appelé qu'une fois la barre de progression finie et fera une boucle. Je voudrais aussi envoyer un message au joueur sauf que je ne peux récupérer ni le joueur, ni les coordonnées du bloc.


  • Administrateurs

    Ah oui je vois mieux le problème. Dans ce cas je ne sais pas, je viens de regarder les event je ne vois rien qui peut aider.



  • @'robin4002':

    Ah oui je vois mieux le problème. Dans ce cas je ne sais pas, je viens de regarder les event je ne vois rien qui peut aider.

    Donc la seule solution possible serrée que forge créé un event pour çà.



  • Pourquoi tu ne supprimes pas la recette des potions de force de niveau 2 ?



  • @'Blackout':

    Pourquoi tu ne supprimes pas la recette des potions de force de niveau 2 ?

    C'est à dire ? Enlever un craft je vois plus ou moins comment faire mais je ne sais pas comment faire avec le brewing stand