MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Savoir si un coffre est vide ou plein

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    37 Messages 4 Publieurs 6.9k Vues 1 Watching
    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.
    • SCAREXS Hors-ligne
      SCAREX
      dernière édition par

      Si c’est au démarrage, c’est normal, sinon lance bien ton mod en mode RUN (au lieu de debug), si çà ne change rien, c’est que le problème vient de ton ordi.

      Site web contenant mes scripts : http://SCAREXgaming.github.io

      Pas de demandes de support par MP ni par skype SVP.
      Je n'accepte sur skype que l…

      1 réponse Dernière réponse Répondre Citer 0
      • AmaA Hors-ligne
        Ama
        dernière édition par

        SCAREX, non mon problème persiste toujours !

        Je remet mon code au cas où avec deux trois modif’s

        ​@SideOnly(Side.CLIENT)
        
            @SubscribeEvent
            public void renderContainerMessage(RenderGameOverlayEvent.Text event)
            {    
                MovingObjectPosition movingObjPos = this.mc.thePlayer.rayTrace(2D, event.partialTicks);
        
                int width = event.resolution.getScaledWidth(); //EntityRenderer
        
                int height = event.resolution.getScaledHeight();
        
                EntityPlayer player = Minecraft.getMinecraft().thePlayer;
                World world = Minecraft.getMinecraft().theWorld;
                MovingObjectPosition mov = player.rayTrace(2D, event.partialTicks);
        
                if(this.mc.objectMouseOver != null && mov != null && mov.typeOfHit == MovingObjectType.BLOCK)
                {
                    BlockPos blockpos = this.mc.objectMouseOver.getBlockPos();
                    Block block = world.getBlockState(blockpos).getBlock();
        
                String getOpeningMessage = EnumChatFormatting.BOLD + "Right Click" + EnumChatFormatting.RESET + " to open";
        
                String getContainerBlockName = block.getLocalizedName();
                String isEmpty = "(Empty)";
                String getIfIsLocked = EnumChatFormatting.DARK_RED + "Locked";
        
                TileEntityChest tile = (TileEntityChest)this.mc.theWorld.getTileEntity(blockpos);
                boolean flag = true;
        
                    if((block) instanceof BlockChest)
                    {
                    this.drawCenteredString(this.mc.fontRendererObj, getOpeningMessage, width / 2 + 30, height / 2 + 8, new Color(255,255,255).getRGB());
                    this.drawCenteredString(this.mc.fontRendererObj, getContainerBlockName, width / 2 + 30, height / 2 + 22, new Color(255,255,255).getRGB());
        
                    if(tile.isLocked())
                    {
                    this.drawCenteredString(this.mc.fontRendererObj, getIfIsLocked, width / 2 - 20, height / 2 - 10, new Color(255,255,255).getRGB());
                    }
        
                    for (int i = 0; i < tile.getSizeInventory(); i++)
                    {
                    if (tile.getStackInSlot(i) != null) 
                    {
                    flag = false;
                    }
                    }
                    if(flag)
                    {
                    System.out.println("container vide");
                    }
                    else
                    {
                    System.out.println("container non-vide");
                    }
        
                    }
                }
            }
        

        Si je t'ai filé un coup de main n'oublie pas le + / -
        Par contre évite les demandes d'aides en MP, tu sera sympa'

        La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

        Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

        1 réponse Dernière réponse Répondre Citer 0
        • SCAREXS Hors-ligne
          SCAREX
          dernière édition par

          Essaie avec çà plutôt :

          
          ​@SideOnly(Side.CLIENT)
          
          @SubscribeEvent
          public void renderContainerMessage(RenderGameOverlayEvent.Post event)
          {
          if (event.type == RenderGameOverlayEvent.ElementType.TEXT) {
          MovingObjectPosition movingObjPos = this.mc.thePlayer.rayTrace(2D, event.partialTicks);
          
          int width = event.resolution.getScaledWidth(); //EntityRenderer
          
          int height = event.resolution.getScaledHeight();
          
          EntityPlayer player = Minecraft.getMinecraft().thePlayer;
          World world = Minecraft.getMinecraft().theWorld;
          MovingObjectPosition mov = player.rayTrace(2D, event.partialTicks);
          
          if(this.mc.objectMouseOver != null && mov != null && mov.typeOfHit == MovingObjectType.BLOCK)
          {
          BlockPos blockpos = this.mc.objectMouseOver.getBlockPos();
          Block block = world.getBlockState(blockpos).getBlock();
          
          String getOpeningMessage = EnumChatFormatting.BOLD + "Right Click" + EnumChatFormatting.RESET + " to open";
          
          String getContainerBlockName = block.getLocalizedName();
          String isEmpty = "(Empty)";
          String getIfIsLocked = EnumChatFormatting.DARK_RED + "Locked";
          
          TileEntityChest tile = (TileEntityChest)this.mc.theWorld.getTileEntity(blockpos);
          boolean flag = true;
          
          if((block) instanceof BlockChest)
          {
          this.drawCenteredString(this.mc.fontRendererObj, getOpeningMessage, width / 2 + 30, height / 2 + 8, new Color(255,255,255).getRGB());
          this.drawCenteredString(this.mc.fontRendererObj, getContainerBlockName, width / 2 + 30, height / 2 + 22, new Color(255,255,255).getRGB());
          
          if(tile.isLocked())
          {
          this.drawCenteredString(this.mc.fontRendererObj, getIfIsLocked, width / 2 - 20, height / 2 - 10, new Color(255,255,255).getRGB());
          }
          
          for (int i = 0; i < tile.getSizeInventory(); i++)
          {
          if (tile.getStackInSlot(i) != null)
          {
          flag = false;
          }
          }
          if(flag)
          {
          System.out.println("container vide");
          }
          else
          {
          System.out.println("container non-vide");
          }
          
          }
          }
          }
          }
          

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

          1 réponse Dernière réponse Répondre Citer 0
          • AmaA Hors-ligne
            Ama
            dernière édition par

            Toujours Pareil

            Si je t'ai filé un coup de main n'oublie pas le + / -
            Par contre évite les demandes d'aides en MP, tu sera sympa'

            La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

            Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

            1 réponse Dernière réponse Répondre Citer 0
            • SCAREXS Hors-ligne
              SCAREX
              dernière édition par

              @‘ZeAmateis’:

              Toujours Pareil

              Et si tu mets tout ce code en commentaire ?

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

              1 réponse Dernière réponse Répondre Citer 0
              • AmaA Hors-ligne
                Ama
                dernière édition par

                ça marche normalement ^^ Normal non ? ^^’

                Si je t'ai filé un coup de main n'oublie pas le + / -
                Par contre évite les demandes d'aides en MP, tu sera sympa'

                La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                1 réponse Dernière réponse Répondre Citer 0
                • SCAREXS Hors-ligne
                  SCAREX
                  dernière édition par

                  Dans quelle classe se trouve cette fonction ?

                  Après plusieurs tests, voici mes résultats :
                  1-Ta fonction est dans une classe Gui (ou GuiScreen), ce qui est une mauvaise manie
                  2-Le container est toujours vide car tu récupère un WorldClient et non un WorldServer donc ta tileEntity est vide. Il faut faire une synchronisation client / serveur.

                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                  Pas de demandes de support par MP ni par skype SVP.
                  Je n'accepte sur skype que l…

                  1 réponse Dernière réponse Répondre Citer 0
                  • AmaA Hors-ligne
                    Ama
                    dernière édition par

                    une classe ou des events côté clients sont chargés

                    Si je t'ai filé un coup de main n'oublie pas le + / -
                    Par contre évite les demandes d'aides en MP, tu sera sympa'

                    La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                    Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                    1 réponse Dernière réponse Répondre Citer 0
                    • AmaA Hors-ligne
                      Ama
                      dernière édition par

                      Petit up, une petite idée ?

                      Quel serait le code alors ?

                      @‘SCAREX’:

                      Dans quelle classe se trouve cette fonction ?

                      Après plusieurs tests, voici mes résultats :
                      1-Ta fonction est dans une classe Gui (ou GuiScreen), ce qui est une mauvaise manie
                      2-Le container est toujours vide car tu récupère un WorldClient et non un WorldServer donc ta tileEntity est vide. Il faut faire une synchronisation client / serveur.

                      Si je t'ai filé un coup de main n'oublie pas le + / -
                      Par contre évite les demandes d'aides en MP, tu sera sympa'

                      La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                      Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                      1 réponse Dernière réponse Répondre Citer 0
                      • AmaA Hors-ligne
                        Ama
                        dernière édition par

                        @‘robin4002’:

                        Envoie le rapport.

                        J’ai fait :

                        for (int i = 0; i < tile.getSizeInventory(); i++)
                        
                                    {
                                System.out.println(tile.getStackInSlot(i));
                        
                                    if (tile.getStackInSlot(i) != null)
                                    {
                                    flag = false;
                                    }
                                    }
                        

                        Le:

                        System.out.println(tile.getStackInSlot(i));
                        

                        Me donne

                        [18:16:59] [Client thread/INFO] [STDOUT]: [fr.zeamateis.tesm.module.client.guis.client.gui.GuiInGame:renderContainerMessage:88]: null

                        Pas normal ?

                        Si je t'ai filé un coup de main n'oublie pas le + / -
                        Par contre évite les demandes d'aides en MP, tu sera sympa'

                        La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                        Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002R Hors-ligne
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                          dernière édition par

                          Tout le temps ? car normalement comme la boucle va de 0 à la taille de l’inventaire ça devrait afficher plusieurs null.  (et au contraire un truc non null si il y a quelques choses dans le IInventory).

                          1 réponse Dernière réponse Répondre Citer 0
                          • AmaA Hors-ligne
                            Ama
                            dernière édition par

                            ça l’affiche tout le temps oui effectivement

                            Si je t'ai filé un coup de main n'oublie pas le + / -
                            Par contre évite les demandes d'aides en MP, tu sera sympa'

                            La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                            Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                            1 réponse Dernière réponse Répondre Citer 0
                            • robin4002R Hors-ligne
                              robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                              dernière édition par

                              Bon c’est ce que je craignais. Côté client getStackInSlot return toujours null, le client ne sait pas ce qu’il y a dans le coffre temps qu’il ne l’ouvre pas (c’est à ce moment que le contenu est synchronisé).

                              1 réponse Dernière réponse Répondre Citer 0
                              • AmaA Hors-ligne
                                Ama
                                dernière édition par

                                Problème résolu grâce à Dermensolf sur IC

                                Si je t'ai filé un coup de main n'oublie pas le + / -
                                Par contre évite les demandes d'aides en MP, tu sera sympa'

                                La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                                Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                                1 réponse Dernière réponse Répondre Citer 0
                                • robin4002R Hors-ligne
                                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                  dernière édition par

                                  Le code qu’il a donné ne fonctionnera pas sur un serveur dédiée. Il ne fonctionne que en solo.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • 1
                                  • 2
                                  • 2 / 2
                                  • Premier message
                                    Dernier message
                                  Design by Woryk
                                  ContactMentions Légales

                                  MINECRAFT FORGE FRANCE © 2024

                                  Powered by NodeBB