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.
    • 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
                                      • 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