• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Demande sur le serveur.dat

    1.7.x
    1.7.10
    6
    24
    3892
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Y
      yveslefou last edited by

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

      1 Reply Last reply Reply Quote 0
      • Yeyvo
        Yeyvo last edited by

        @‘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 je croit regarde le GuiMultiplayer

        1 Reply Last reply Reply Quote 0
        • Gabs
          Gabs last edited by

          @‘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 Reply Last reply Reply Quote 0
          • Y
            yveslefou last edited by

            @‘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 Reply Last reply Reply Quote 0
            • J
              Jodge last edited by

              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 Reply Last reply Reply Quote 0
              • AymericRed
                AymericRed last edited by

                Ç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 Reply Last reply Reply Quote 0
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                  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 Reply Last reply Reply Quote 0
                  • J
                    Jodge last edited by

                    @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 Reply Last reply Reply Quote 0
                    • Y
                      yveslefou last edited by

                      @‘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 Reply Last reply Reply Quote 0
                      • AymericRed
                        AymericRed last edited by

                        @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 Reply Last reply Reply Quote 0
                        • Y
                          yveslefou last edited by

                          @‘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 Reply Last reply Reply Quote 0
                          • robin4002
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                            Cela sert à obtenir la tag list nommé servers.

                            Quelle est l’erreur ?

                            1 Reply Last reply Reply Quote 0
                            • Y
                              yveslefou last edited by

                              @‘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 Reply Last reply Reply Quote 0
                              • robin4002
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                remplaces par serverNbt

                                1 Reply Last reply Reply Quote 0
                                • Y
                                  yveslefou last edited by

                                  @‘robin4002’:

                                  remplaces par serverNbt

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

                                  1 Reply Last reply Reply Quote 0
                                  • robin4002
                                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                    serverList devrait passer.

                                    1 Reply Last reply Reply Quote 0
                                    • Y
                                      yveslefou last edited by

                                      @‘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 Reply Last reply Reply Quote 0
                                      • robin4002
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

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

                                        1 Reply Last reply Reply Quote 0
                                        • Y
                                          yveslefou last edited by

                                          @‘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 Reply Last reply Reply Quote 0
                                          • robin4002
                                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                            ….

                                            …

                                            …

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

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB