MFF

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

    EntityExtendedProperty modifiable quand joueur déconnecté

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    46 Messages 5 Publieurs 6.0k 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.
    • DeletedD Hors-ligne
      Deleted
      dernière édition par

      player.getEntityData() blabla

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

        @‘Plaigon’:

        player.getEntityData() blabla

        Oui sauf que si player est null (joueur déco) ça va pas marcher

        Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

        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
        • Benjamin LoisonB Hors-ligne
          Benjamin Loison
          dernière édition par

          ^^ Merci AymericRed, d’autres fonctions sinon ? 😕 Avec le World il n’y a pas quelque chose de possible ?

          >! Développeur de Altis-Life (Arma III) sur Minecraft !
          >! Site web     : https://lemnoslife.com

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

            Je sais pas je vais voir ce soir comment mc récupères les tags du joueur quand il se co

            Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

            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
            • Benjamin LoisonB Hors-ligne
              Benjamin Loison
              dernière édition par

              Je redemande, il y a t-il un moyen de get l’EntityPlayerMP juste à partir du pseudo ou de l’uuid du joueur déconnecté ?
              J’aimerais get les NBTTagCoumpounds d’un joueur déconnecté, je ne trouve vraiment pas 😕

              Merci d’avance !

              Ps: j’ai trouvé ce code sur internet :

              SaveHandler saveHandler = (SaveHandler)DimensionManager.getWorld(0).getSaveHandler();
              String username = "Test";
              NBTTagCompound playerNbt = saveHandler.getPlayerNBT(username);
              InventoryPlayer inventory = new InventoryPlayer(null);
              inventory.readFromNBT(playerNbt.getTagList("Inventory", 0));
              inventory.mainInventory = contents;
              playerNbt.setTag("Inventory", inventory.writeToNBT(new NBTTagList()));
              try
              {
              File playersDirectory = new File(saveHandler.getWorldDirectory(), "players"), temp = new File(playersDirectory, username + ".dat.tmp"), playerFile = new File(playersDirectory, username + ".dat");
              CompressedStreamTools.writeCompressed(playerNbt, new FileOutputStream(temp));
              if(playerFile.exists())
              {
              playerFile.delete();
              }
              temp.renameTo(playerFile);
              }
              catch(Exception e)
              {}
              

              mais saveHandler.getPlayerNBT(username); getPlayerNBT a besoin d’un EntityPlayerMP alors que j’ai juste le pseudo du joueur déconnecté

              >! Développeur de Altis-Life (Arma III) sur Minecraft !
              >! Site web     : https://lemnoslife.com

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

                TU as cette méthode si tu veux mais fais attention de mettre le bon id du monde où se trouve le pseudo du joueur que tu veux…
                MinecraftServer.getServer().worldServers[0].getPlayerEntityByName(“le nom de ton joueur”);

                1 réponse Dernière réponse Répondre Citer 0
                • Benjamin LoisonB Hors-ligne
                  Benjamin Loison
                  dernière édition par

                  Le problème c’est que même si le joueur s’est déjà connecté une fois, MinecraftServer.getServer().worldServers[0].getPlayerEntityByName(“le nom de ton joueur”); me renvoie un null comme il est déconnecté 😕

                  >! Développeur de Altis-Life (Arma III) sur Minecraft !
                  >! Site web     : https://lemnoslife.com

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

                    Sinon tu peux créer une nouvelle instance de EntityPlayer, je pense que ça fera l’affaire 😃

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

                      Il faudrait regarder quand un joueur se co, comment ses tags sont lus.

                      Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                      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
                      • Benjamin LoisonB Hors-ligne
                        Benjamin Loison
                        dernière édition par

                        :3 Cannot instantiate the type EntityPlayer

                        Je vais essayer de faire ça Aymeric mais bon je ne sais pas trop chercher dans quelles classes de Minecraft pour le coup là ^^ je farfouille 🙂

                        >! Développeur de Altis-Life (Arma III) sur Minecraft !
                        >! Site web     : https://lemnoslife.com

                        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

                                 SaveHandler saveHandler = (SaveHandler)DimensionManager.getWorld(0).getSaveHandler();
                                 File world = saveHandler.getWorldDirectory(); // on récupère le dossier world
                                 File players = new File(world, "playerdata"); // le dossier playerdata qui se trouve dans le dossier world
                                 GameProfile gameprofile = MinecraftServer.getServer().getConfigurationManager().func_152358_ax().func_152655_a("nom du joueur"); // permet d'avoir le game profile d'un joueur depuis le cache (donc même s'il est déconnecté)
                                 File playerData = new File(players, gameprofile.getId().toString() + ".dat"); // on récupère son fichier .dat
                                 if (playerData.exists() && playerData.isFile()) // s'il existe et que c'est bien un fichier
                                 {
                                     try
                                     {
                                         NBTTagCompound tag = CompressedStreamTools.readCompressed(new FileInputStream(playerData)); // on lit le tag nbt
                                         // à toi de faire ce que tu veux
                                         CompressedStreamTools.write(tag, playerData); // on le réécrit
                                     }
                                     catch(FileNotFoundException e)
                                     {
                                         e.printStackTrace();
                                     }
                                     catch(IOException e)
                                     {
                                         e.printStackTrace();
                                     }
                                 }
                          

                          Comment j’ai fais ? J’ai prit le code que tu as donné pour avoir le code qui trouve le dossier de la map, j’ai regardé ce que fait la fonction getPlayerNBT ce qui m’a permis de voir qu’elle utilise juste l’instance d’EntityPlayerMP pour avoir l’uuid. Du-coup je suis aller voir dans la commande ban (qui marche même si le joueur est déconnecté) quelle fonction était utilisé pour avoir l’uuid en fonction du pseudo.

                          1 réponse Dernière réponse Répondre Citer 0
                          • Benjamin LoisonB Hors-ligne
                            Benjamin Loison
                            dernière édition par

                            Merci d’avoir pris de ton temps pour me répondre Robin mais juste : MinecraftServer.getServer().getConfigurationManager().func_152603_m().func_152700_a(“Pseudo bien écrit”), me renvoie null si le joueur est déconnecté 😕

                            EDIT: Pour que ça ne renvoie pas null même s’il est déconnecté il faut qu’il soit op, d’où func_152603_m(), mais comment faire sans qu’il aille à être opé ? 😕

                            Même en l’opant ça ne fonctionne pas, son NBTTagCoumpound “adjoint” n’est pas changé, quand je refait la commande pour get adjoint, il ne l’est pas

                            >! Développeur de Altis-Life (Arma III) sur Minecraft !
                            >! Site web     : https://lemnoslife.com

                            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

                              Heu non, il n’a pas besoin d’être op.
                              Je me suis trompé de code.
                                          GameProfile gameprofile = MinecraftServer.getServer().func_152358_ax().func_152655_a(“joueur”);
                              c’est ça la bonne fonction.
                              ça passe par le cache du serveur.
                              La seule condition c’est que le joueur ce soit déjà connecté une fois sur le serveur.

                              Le tag c’est directement celui du joueur. Le tag de ton eep est dans ce tag.
                              Utilises des print pour voir toutes les entrées du tag.

                              1 réponse Dernière réponse Répondre Citer 0
                              • Benjamin LoisonB Hors-ligne
                                Benjamin Loison
                                dernière édition par

                                “La seule condition c’est que le joueur ce soit déjà connecté une fois sur le serveur.”

                                Quand tu dis ça c’est sur le serveur depuis qu’il a été créé ou la dernière fois qu’il a été relancé ?

                                Et aussi je pourrais avoir un exemple de modification d’une booléenne dans une ExtentedProperties parce que j’ai ça:

                                try
                                {
                                NBTTagCompound tag = CompressedStreamTools.readCompressed(new FileInputStream(playerData));
                                tag.getCompoundTag(EEPRestrained.EXT_PROP_NAME).setBoolean("adjoint", true);
                                CompressedStreamTools.write(tag, playerData);
                                }
                                

                                Et ça ne marche pas 😕

                                >! Développeur de Altis-Life (Arma III) sur Minecraft !
                                >! Site web     : https://lemnoslife.com

                                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

                                  Depuis sa création. C’est stocké dans un fichier json.

                                  Regardes avec un logiciel comme nbt explorer où se trouve ta propriété dans le fichier .dat.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • Benjamin LoisonB Hors-ligne
                                    Benjamin Loison
                                    dernière édition par

                                    J’ai déjà essayé pour voir, il y a un dossier avec le nom de cette variable: EEPRestrained.EXT_PROP_NAME et il y a adjoint dedans mais tu ne m’as pas répondu de comment bien modifier ce sous-tag ?

                                    >! Développeur de Altis-Life (Arma III) sur Minecraft !
                                    >! Site web     : https://lemnoslife.com

                                    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

                                      Ton code actuelle devrait fonctionner. Étrange.

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • Benjamin LoisonB Hors-ligne
                                        Benjamin Loison
                                        dernière édition par

                                        tag.getCompoundTag(EEPRestrained.EXT_PROP_NAME).setBoolean("adjoint", true);
                                        

                                        tag.getCompoundTag est un get et pas un set mais pourtant quand je regette adjoint derrière ça me dit true du coup 😕 l’incompréhension totale, j’ai essayé avec joueur déconnecté, jamais connecté etc rien ne marche 😕

                                        >! Développeur de Altis-Life (Arma III) sur Minecraft !
                                        >! Site web     : https://lemnoslife.com

                                        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

                                          Tu peux envoyer les deux fonctions de ton eep en report avec les nbt ?

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

                                            Ah mais tu changes la valeur, mais est ce que tu resauvegardes le fichier après ?

                                            Edit: ah non tu le réécris

                                            Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB