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

                                      @‘robin4002’:

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

                                      Cela marche merci ^^

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

                                        NBTTagCompound serverNbt = CompressedStreamTools.read(serverDatFile);
                                        NBTTagList serverList = NBTTagCompound serverNbt.getTagList(“servers”, 10);

                                        C’est pourquoi il ne faut JAMAIS faire un copier collé tout bête…

                                        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