MFF

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

    Demande sur le serveur.dat

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    24 Messages 6 Publieurs 4.4k 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.
    • GabsG Hors-ligne
      Gabs
      dernière édition par

      @‘yveslefou’:

      Bonjour à tous j’aimerais savoir si avec un mod on peut ajouter une adresse de serveur dans l’onglet multijoueur ? Si oui comment ?

      Oui tu peux, tu dois avoir des tutos sur le forum.
      Tu en a un déjà pour mettre un raccourcie vers Teamspeak tu as juste a prendre ce code est modifier pour connecté à ton serveur.
      cadeau: https://www.minecraftforgefrance.fr/showthread.php?tid=2386

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

        @‘floriangabet’:

        @‘yveslefou’:

        Bonjour à tous j’aimerais savoir si avec un mod on peut ajouter une adresse de serveur dans l’onglet multijoueur ? Si oui comment ?

        Oui tu peux, tu dois avoir des tutos sur le forum.
        Tu en a un déjà pour mettre un raccourcie vers Teamspeak tu as juste a prendre ce code est modifier pour connecté à ton serveur.
        cadeau: https://www.minecraftforgefrance.fr/showthread.php?tid=2386

        Je suis obligé de passer par un changement du gui, je peux pas juste ajouter ajouter une information dans le fichier ?

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

          Honnêtement… Tu peu (enfin je connais pas le fonctionnement précis du fichier mais j’imagine qu’il lit des informations basique), mais se sera beaucoup plus compliqué.

          Modifié le Gui, ta un tuto tout prêt, tu copie/colle/adapte et c’est bon.

          Modifier le fichier il faut que tu créer une class custom qui puissent :

          • Localiser le fichier (bon courage : chemin relatif obligatoire)
          • Lire le fichier et le mettre en mémoire
          • Checker la présence ou non de ton serveur dans la liste
          • Recopier comme il se doit le fichier (si ton mod supprime la liste existante des serveurs, les gens n’en voudront pas)
          • Ajoutez éventuellement la/les lignes nécessaire pour ajoutez ton serveur

          C’est de mon point de vue beaucoup plus compliqué si tu n’y connais pas grand chose en gestion de fichier Java…

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

            Ça doit être moins compliqué que ça, Minecraft doit avoir une fonction pour ajouter un serveur au fichier, faut la trouver (regarder du côté du gui qui permet d’ajouter un serveur).

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

              File serverDatFile = new File(Minecraft.getMinecraft().mcDataDir, "servers.dat");
              boolean found = false;
              NBTTagCompound serverNbt = CompressedStreamTools.read(serverDatFile);
              NBTTagList serverList = serverNbt.getTagList("servers", 10);
              for (int i = 0; i < serverList.tagCount(); ++i)
              {
                  ServerData data = ServerData.getServerDataFromNBTCompound(nbttaglist.getCompoundTagAt(i)));
                  if(data.serverName.equals("nom de ton serveur"))
                  {
                      found = true;
                  }
              
              }
              if(!found)
              {
                  ServerData data = new ServerData("nom de ton serveur", "ip: port");
                  serverList.appendTag(serverdata.getNBTCompound());
                  serverNbt.setTag("servers", serverList );
                  CompressedStreamTools.safeWrite(serverNbt, serverDatFile);
              }
              

              Non, rien de compliqué.

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

                @Robin4002 : Rien n’est compliqué en prog, quand tu connais les class x) Mais les class tel que ServerData ou CompressedStreamTools sont si peu utilisés que peu de monde peut y arrivé. Moi même je ne connaissais pas ces classes qui simplifie grandement la tâche ^^’

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

                  @‘robin4002’:

                  File serverDatFile = new File(Minecraft.getMinecraft().mcDataDir, "servers.dat");
                  boolean found = false;
                  NBTTagCompound serverNbt = CompressedStreamTools.read(serverDatFile);
                  NBTTagList serverList = nbttagcompound.getTagList("servers", 10);
                  for (int i = 0; i < serverList.tagCount(); ++i)
                  {
                      ServerData data = ServerData.getServerDataFromNBTCompound(nbttaglist.getCompoundTagAt(i)));
                      if(data.serverName.equals("nom de ton serveur"))
                      {
                          found = true;
                      }
                  
                  }
                  if(!found)
                  {
                      ServerData data = new ServerData("nom de ton serveur", "ip: port");
                      serverList.appendTag(serverdata.getNBTCompound());
                      serverNbt.setTag("servers", nbttaglist);
                      CompressedStreamTools.safeWrite(serverNbt, serverDatFile);
                  }
                  

                  Non, rien de compliqué.

                  Oh merci je vais essayé cela tout de suite ^^

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

                    @Jodge il suffit de regarder comment fait mc dans ces cas là, c’est plus simple que de faire quelque chose à partir de 0 ^^

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

                      @‘robin4002’:

                      File serverDatFile = new File(Minecraft.getMinecraft().mcDataDir, "servers.dat");
                      boolean found = false;
                      NBTTagCompound serverNbt = CompressedStreamTools.read(serverDatFile);
                      NBTTagList serverList = nbttagcompound.getTagList("servers", 10);
                      for (int i = 0; i < serverList.tagCount(); ++i)
                      {
                          ServerData data = ServerData.getServerDataFromNBTCompound(nbttaglist.getCompoundTagAt(i)));
                          if(data.serverName.equals("nom de ton serveur"))
                          {
                              found = true;
                          }
                      
                      }
                      if(!found)
                      {
                          ServerData data = new ServerData("nom de ton serveur", "ip: port");
                          serverList.appendTag(serverdata.getNBTCompound());
                          serverNbt.setTag("servers", nbttaglist);
                          CompressedStreamTools.safeWrite(serverNbt, serverDatFile);
                      }
                      

                      Non, rien de compliqué.

                      Pourrais tu m’expliquer s’il te plait la ligne :

                      [font=monospaceNBTTagList][font=monospace serverList ][font=monospace=][font=monospace nbttagcompound][font=monospace.][font=monospacegetTagList][font=monospace(][font=monospace“servers”][font=monospace,] [font=monospace10][font=monospace);]

                      [font=monospacecar je ne la comprend pas et j’ais toujours une erreur dessus.]

                      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

                        Cela sert à obtenir la tag list nommé servers.

                        Quelle est l’erreur ?

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

                          @‘robin4002’:

                          Cela sert à obtenir la tag list nommé servers.

                          Quelle est l’erreur ?

                          L’erreur est nbttagcompound cannot be resolved et il me propose de le changer en NBTTagCompound et alors l’erreur devient : Cannot make a static reference to the non-static method getTagList(String, int) from the type NBTTagCompound

                          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

                            remplaces par serverNbt

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

                              @‘robin4002’:

                              remplaces par serverNbt

                              Ah oui merci et j’ais une derniére erreur à ```java
                              serverNbt.setTag(“servers”, nbttaglist);

                              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

                                serverList devrait passer.

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

                                  @‘robin4002’:

                                  serverList  devrait passer.

                                  non cela donne comme erreur : Default constructor cannot handle exception type IOException thrown by implicit super constructor. Must define an explicit constructor

                                  à CompressedStreamTools.read(serverDatFile);
                                  et à CompressedStreamTools.safeWrite(serverNbt, serverDatFile);

                                  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

                                    il faut mettre tout le code dans un bloc try catch.

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

                                      @‘robin4002’:

                                      il faut mettre tout le code dans un bloc try catch.

                                      package fr.extazilia.extaziliamod.common;
                                      
                                      import java.io.File;
                                      
                                      import net.minecraft.client.Minecraft;
                                      import net.minecraft.client.multiplayer.ServerData;
                                      import net.minecraft.nbt.CompressedStreamTools;
                                      import net.minecraft.nbt.NBTTagCompound;
                                      import net.minecraft.nbt.NBTTagList;
                                      
                                      public class test {
                                      
                                      File serverDatFile = new File(Minecraft.getMinecraft().mcDataDir, "servers.dat");
                                      boolean found = false;
                                      NBTTagCompound serverNbt = CompressedStreamTools.read(serverDatFile);
                                      NBTTagList serverList = serverNbt.getTagList("servers", 10);{
                                      for (int i = 0; i < serverList.tagCount(); ++i)
                                      {
                                         ServerData data = ServerData.getServerDataFromNBTCompound(serverList.getCompoundTagAt(i));
                                         if(data.serverName.equals("Extazilia serveur principal"))
                                         {
                                             found = true;
                                         }
                                      
                                      }
                                      if(!found)
                                      {
                                         ServerData data1 = new ServerData("Extazilia serveur principal", "ip: port");
                                         serverList.appendTag(data1.getNBTCompound());
                                         serverNbt.setTag("servers", serverList);
                                         CompressedStreamTools.safeWrite(serverNbt, serverDatFile);
                                      }
                                      }}
                                      
                                      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

                                        ….

                                        …

                                        …

                                        Comment veux-tu que ce code fonctionne s’il n’est même pas à l’intérieur d’une fonction ?

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

                                          @‘robin4002’:

                                          ….

                                          …

                                          …

                                          Comment veux-tu que ce code fonctionne s’il n’est même pas à l’intérieur d’une fonction ?

                                          Je pensais que sa suffierait de le mettre dans une classe. Je suis un débutant. je doit la mettre ou dans la classe principal ?

                                          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

                                            à l’intérieur de la fonction init ou de la fonction preinit.

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB