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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB