• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Résolu Conflit entre GuiHandler

1.8.x
1.8
3
4
830
Charger plus de messages
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • Gabs
    Gabs dernière édition par 25 sept. 2016, 09:23

    Bonjour,

    Comme vous l’avez vus dans le titre j’ai un conflit entre GuiHandler.

    Je m’expliques:

    J’ai deux item: un item “panierlinge” et un item “coli” .

    Tout deux sont des items identique a l’item backpack .

    Mais voilà: les deux items appelle le même handler (même en utilisant les ID).

    Je vous passe les classes et les logs se serra plus simple de comprendre:

    classe coli:

    public class coli extends Item {
    @Override
    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
    player.openGui(Main.instance, 3, world, (int) player.posX, (int) player.posY, (int) player.posZ);
    System.out.println("right click item coli");
    return stack;
    }
    }

    init Main class:

     @EventHandler
        public void init(FMLInitializationEvent event)
        {
        proxy.init();
    NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandlerPanierLinge());
    //  
    NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandlerInv());
    NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandlerColi());// c'est ce handler qui est appeller par les deux items
    System.out.println("init main class");
    //  
    // NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandlerMachine());
    //Events
        MinecraftForge.EVENT_BUS.register(new Events());
        FMLCommonHandler.instance().bus().register(new Events());
        }

    GuiHandler Coli:

    public class GuiHandlerColi implements IGuiHandler{
    @Override
    public Object getServerGuiElement(int ID, EntityPlayer player, World world,
    int x, int y, int z) {
    if(ID == 3)
    if (player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof coli))
    return new ContainerColi(player.inventory, new InventoryColi(player.getHeldItem(), 54));
    System.out.println("getServerGuiElement, ID:" + ID);
    return null;
    }
    @Override
    public Object getClientGuiElement(int ID, EntityPlayer player, World world,
    int x, int y, int z) {
    System.out.println("");
    if(ID == 3)
    if (player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof coli))
    return new GuiColi(player.inventory, new InventoryColi(player.getHeldItem(), 54));
    System.out.println("getClientGuiElement, ID:" + ID);
    return null;
    }
    }

    je vous passe l’item panierlinge:

    public class panierlinger extends Item {
    public panierlinger() {
    this.maxStackSize = 1; // N'oubliez pas ceci, çà empêche l'item d'être stackable
    }
    @Override
    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
    player.openGui(Main.instance, 0, world, (int) player.posX, (int) player.posY, (int) player.posZ);
    System.out.println("right click panierlinge item");
    return stack;
    }
    }

    Et les logs:

    [11:21:28] [Client thread/INFO] [STDOUT]: [com.CSC.net.GUI.GuiHandlerColi:getClientGuiElement:26]: 
    [11:21:28] [Client thread/INFO] [STDOUT]: [com.CSC.net.GUI.GuiHandlerColi:getClientGuiElement:30]: getClientGuiElement, ID:3
    [11:21:28] [Client thread/INFO] [STDOUT]: [com.CSC.net.item.coli:onItemRightClick:15]: right click item coli
    [11:21:28] [Server thread/INFO] [STDOUT]: [com.CSC.net.GUI.GuiHandlerColi:getServerGuiElement:19]: getServerGuiElement, ID:3
    [11:21:28] [Server thread/INFO] [STDOUT]: [com.CSC.net.item.coli:onItemRightClick:15]: right click item coli
    [11:21:34] [Server thread/INFO]: <floriangabet>–------------
    [11:21:34] [Client thread/INFO]: [CHAT] <floriangabet>–------------
    [11:21:38] [Client thread/INFO] [STDOUT]: [com.CSC.net.GUI.GuiHandlerColi:getClientGuiElement:26]: 
    [11:21:38] [Client thread/INFO] [STDOUT]: [com.CSC.net.GUI.GuiHandlerColi:getClientGuiElement:30]: getClientGuiElement, ID:0
    [11:21:38] [Client thread/INFO] [STDOUT]: [com.CSC.net.item.panierlinger:onItemRightClick:20]: right click panierlinge item
    [11:21:38] [Server thread/INFO] [STDOUT]: [com.CSC.net.GUI.GuiHandlerColi:getServerGuiElement:19]: getServerGuiElement, ID:0
    [11:21:38] [Server thread/INFO] [STDOUT]: [com.CSC.net.item.panierlinger:onItemRightClick:20]: right click panierlinge item

    L’item panierlinge exécute le GuiHandlerColi alors qu’il ne devrais pas, de plus il y a un if ID == 3, et son id et de 0 .

    Merci d’avance :)</floriangabet></floriangabet>

    1 réponse Dernière réponse Répondre Citer 0
    • robin4002
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 25 sept. 2016, 09:26

      Il n’est pas possible d’avoir plusieurs gui handler. Le dernier a être enregistrer et le seul qui reste car à chaque fois que tu en enregistrer un nouveau ça écrase celui d’avant.
      Un mod = un gui handler.

      Je passe mon temps à le répéter dans la section support …

      1 réponse Dernière réponse Répondre Citer 0
      • AymericRed
        AymericRed dernière édition par 25 sept. 2016, 09:28

        Tu ne devrais pas avoir deux handlers, tout mod ne doit en avoir qu’un seul, dans tes items tu donner un id différent et mettre un if pour chaque id.

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

        1 réponse Dernière réponse Répondre Citer 0
        • Gabs
          Gabs dernière édition par 25 sept. 2016, 09:43

          D’accord merci ^^

          1 réponse Dernière réponse Répondre Citer 0
          • 1 / 1
          1 sur 4
          • Premier message
            1/4
            Dernier message
          Design by Woryk
          Contact / Mentions Légales

          MINECRAFT FORGE FRANCE © 2018

          Powered by NodeBB