MFF

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

    Les choses étranges du code de Minecraft

    Planifier Épinglé Verrouillé Déplacé Le salon libre
    74 Messages 21 Publieurs 2.1k 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

      Aujourd’hui je vous propose ce nouveau topic où vous pourrez parlez de toutes les parties du code fait par Mojang absolument inutile ou qui pourrait être fait d’une autre manière.

      Je commence ce topic avec toutes les fonctions créés par Minecraft en plusieurs fois et qui reviennent au même :
      MinecraftServer.class

      ligne 29

      /** The server MOTD string. */
      private String motd;
      

      On voit un joli MOTD

      et maintenant, les getters et les setters :
      ligne 1222

      public String getMOTD()
      {
      return this.motd;
      }
      

      ligne 1560

      /**
      * Returns the server message of the day
      */
      @SideOnly(Side.SERVER)
      public String getMotd()
      {
      return this.motd;
      }
      

      2 getters, juste un avec des minuscules et un autre avec des majuscules.

      ligne 1227
      public void setMOTD(String p_71205_1_)
      {
      this.motd = p_71205_1_;
      }

      Ce dernier getter est inutile puisque le motd est géré par un autre composant, celui-ci sert juste au démarrage du serveur.

      Même getters inutiles :
      Entity.class

      public UUID getUniqueID()
      {
      return this.entityUniqueID;
      }
      

      ligne 1567

      public UUID getPersistentID()
      {
      return entityUniqueID;
      }
      

      Même résultat différent nom.

      PS : ce topic n’est pas fait pour insulter Mojang ou Minecraft, c’est juste un moyen de regrouper toutes les choses étranges de Minecraft.

      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
      • L Hors-ligne
        Laserflip33
        dernière édition par

        On pourrait recopier la quasi-totalité des classes de Minecraft sur ton sujet tellement c’est bien fait. 😄

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

          @‘Laserflip33’:

          On pourrait recopier la quasi-totalité des classes de Minecraft sur ton sujet tellement c’est bien fait. 😄

          Il y a des mécanismes qui sont bien. C’est sur le code aurait besoin d’être un peu plus clean et un peu plus optimiser, mais bon (on peux pas tous avoir).

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

            Les mécanismes sont bons, mais si le code était plus propre, ce serait plus facile de modder. Comme par exemple avec l’EntityThrowable : on peut rien faire avec car toutes les valeurs sont en private alors que çà coûte rien à Mojang de les mettre en protected, résultat on est obligé de recopier la classe entièrement. Et y’a aussi d’autres problèmes : la 1.7 est là pour supprimer le fait de récupérer un joueur en fonction de son pseudo mais si tu regardes la classe EntityThrowable, Mojang utilise encore le nom du joueur.

            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 1
            • RamechR Hors-ligne
              Ramech
              dernière édition par

              Oui je suis d’accord, lorsque j’ai du créer une nouvelle torche de redstone, j’ai du recopier en intégralité le code de cette torche ._.

              Créateur du mod Redcobble.
              R-E-D-C-O-B-B-L-E :D

              Si tu as trouvé mon aide utile, n'oublis pas le +.
              Sinon tu peux aussi me mettre le - si je… enfin bref xD

              1 réponse Dernière réponse Répondre Citer 0
              • RedRelayR Hors-ligne
                RedRelay Moddeurs confirmés
                dernière édition par

                C’est pour la backward compatibility 😉
                Oui j’explique du code fantôme par une notion qui n’existe pas dans Minecraft 😄
                Ce que je dis est donc faux, c’est du troll.

                –------------------------------------------------------------------------------------
                Si tu trouves mon intervention pertinente, n'hésite pas a m…

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

                  Nouvelle trouvaille :
                  La méthode getItemInUseDuration n’est disponible seulement côté client alors qu’elle utilise des valeur qui existent côté client ET serveur

                  /**
                  * gets the duration for how long the current itemInUse has been in use
                  */
                  @SideOnly(Side.CLIENT) // Le SideOnly qui énerve
                  public int getItemInUseDuration()
                  {
                  return this.isUsingItem() ? this.itemInUse.getMaxItemUseDuration() - this.itemInUseCount : 0;
                  }
                  

                  Donc si vous voulez savoir savoir depuis quand l’item est utilisé, il faut passer par l’ObfuscationReflectionHelper :

                  public static int getItemInUseDurationForPlayer(EntityPlayer player) {
                  return player.isUsingItem() ? player.getHeldItem().getMaxItemUseDuration() - (Integer) ObfuscationReflectionHelper.getPrivateValue(EntityPlayer.class, player, "itemInUseCount") : 0;
                  }
                  

                  Tout çà à cause d’un SideOnly qui ne devrait pas être là.

                  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
                  • jglrxavpokJ Hors-ligne
                    jglrxavpok Modérateurs
                    dernière édition par

                    Il me semble que les SideOnly sont gérés par FML/Forge

                    Modérateur sur MFF. 
                    Mon Github: http://github.com/jglrxavpok
                    Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                    1 réponse Dernière réponse Répondre Citer 0
                    • Superloup10S Hors-ligne
                      Superloup10 Modérateurs
                      dernière édition par

                      Les SideOnly sont rajouter par Forge et non par Minecraft

                      Envoyé de mon Nexus 4 en utilisant Tapatalk

                      Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                        Oui mais il devrait pas être à cet endroit de toute façon

                        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
                        • Superloup10S Hors-ligne
                          Superloup10 Modérateurs
                          dernière édition par

                          S’il a été mis, c’est sans doute pour une bonne raison.

                          Envoyé de mon Nexus 4 en utilisant Tapatalk

                          Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                            Vérifie par toi même, getItemInUseCount a le SideOnly mais pas la valeur, la preuve en est que la méthode que j’ai fait pour l’utiliser côté serveur fonctionne

                            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
                            • robin4002R Hors-ligne
                              robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                              dernière édition par

                              Lorsque Minecraft est développé le client et le serveur sont séparé, c’est Forge qui le fusionne et met les Sideonly par comparaison. Quand une fonction est client only ça veut donc dire qu’elle n’existe que sur le jar client. Et si c’est le cas c’est sûrement car Minecraft n’a que besoin de cette méthode pour les rendus.

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

                                Sauf que là çà devrait pas être le cas, comme j’ai dit, mon code static fonctionne côté 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
                                • robin4002R Hors-ligne
                                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                  dernière édition par

                                  Si cette fonction n’existe pas côté serveur ça ne veut pas forcément dire qu’elle ne peut pas fonctionner côté serveur, ça veut dire que Mojang n’en a pas besoin côté serveur.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • jglrxavpokJ Hors-ligne
                                    jglrxavpok Modérateurs
                                    dernière édition par

                                    Pour continuer le sujet, je n’aurai que deux mot:
                                    Les. BlockPos.
                                    Ils auraient au moins pu faire en sorte de les réutiliser au lieu de surcharger le GC.

                                    Modérateur sur MFF. 
                                    Mon Github: http://github.com/jglrxavpok
                                    Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                                      Moi j’ai une petite trouvaille, la class MinecraftError:

                                      @SideOnly(Side.CLIENT)
                                      public class MinecraftError extends Error
                                      {
                                        private static final String __OBFID = "CL_00000657";
                                      }
                                      

                                      Conclusion: Utilité: 0%

                                      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

                                        +1 xavpok. J’espère qu’ils ne seront plus là en 1.9.

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

                                          @67clement il y a le nom de la classe ce qui fait qu’au lieu d’afficher “Error”, çà affiche “MinecraftError” donc on sait que çà vient de Minecraft.

                                          @jglrxavpok +1.

                                          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
                                          • SCAREXS Hors-ligne
                                            SCAREX
                                            dernière édition par

                                            J’étais en train de faire des tests avec Isador, lorsque j’ai remarqué ceci :
                                            Faites un Math.cos(Math.PI) et MathHelper.cos(Math.PI), au début je croyais que l’un utilisait les radians et l’autres les degrés sauf que ce n’est pas le cas, les 2 utilisent les radians. Sauf que celui de MathHelper a moins de précision et qu’il utilise ses propres valeurs.

                                            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
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 3 / 4
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB