MFF

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

    Ajouter un bouton de connexion pour un TS

    Planifier Épinglé Verrouillé Déplacé Tutoriels des membres
    17 Messages 7 Publieurs 8.9k 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.
    • BialeckB Hors-ligne
      Bialeck
      dernière édition par robin4002

      Prérequis :

      -Avoir ts3 sur le pc qui execute
      -Avoir une url pour se connecter au ts
      -Avoir une condition pour le lancer (exemple :un boutton)

      Le code :

      
      if condition
      {
      String ipts3 = "ts.ip.fr"; // address serveur ts 3
      int portTs3 = 9987; //port ts 3 celui est par defaut
      URI uri = URI.create("ts3server://"+ ipts3 +"?port="+ portts3);
      try { Desktop.getDesktop().browse(uri);
      } catch (IOException e) {
      // TODO Auto-generated catch block e.printStackTrace(); } }
      }
      
      

      Détails :

      String ipts3 : ici vous mettez l’ip que vous utilisé pour vous connecter au serveur ts
      int portTs3 : ici le port de votre serveur (9987 est celui par défaut du serveur comme 25565 pour minecraft)
      URI uri : URI est un objet permettant la mis en forme d’une url compréhensible par Java (A ce que j’ai compris)
      uri.create(String) : transforme la chaine en URI .
      try{} : Cette fonction de java essaye d’exécuter un bloc{} s’il y arrive tant mieux , sinon il la capture.
      catch(exeption e){}: Si le try échoue catch** capture** l’erreur et donne des détails. Voir : Les exeptions
      Desktop.getDesktop() : Cette méthode de Desktop permet de détecter votre navigateur .
      Desktop.browse(URI) :Cette methode de Desktop exécute l’url au format URI dans votre navigateur .
      :::

      Ceci :

      
      Desktop.getDesktop().browse(URI);
      
      

      Equivaut à :

      
      a= Desktop.getDesktop()
      a.browse(URI)
      
      

      Il est plus rapide d’écrire le premier , mais plus facile d’expliqué le second 😛

      :::
      Résumé :
      On créé notre url ts3 en concaténant les variables ipts3 et portTs3 pour obtenir une objet de type URI .
      notez qu’en théorie vous pouvez faire ceci :

      
      URI uri =URI.create("ts3server://Votre Ip?port=Votre Port")
      
      

      Ensuite on repère le navigateur pour y lancer la connexion a l’url .
      Le try/catch permet de ne pas planter le programme si l’url est invalide ou ts non installé ( je pense)

      Bonus :
      Ceci n’as pas été utile dans mon cas , mais vous pouvez “décider” du pseudo de connections au ts3 en rajoutant a votre url :
      ts3server://Votre Ip/?port=Votre Port&nickname=pseudoVoulu
      Et les choses étant bien faites , Minecraft dispose d’une fonction pour récupérer le pseudo de joueur :

      
      this.mc.session.username
      
      

      On String tout ça et cela nous donne :

      
      URI uri =URI.create("ts3server://Votre Ip/?port=Votre Port&nickname="+this.mc.session.username);
      
      

      exemple concret :
      :::

      Ce que j’ai fait :

      :::
      Comment je l’ai fait :
      Pour me simplifier la vie (vu que je savais que je voulais 3 bouttons) , j’ai divisé les 3 boutons déjà présent par 2.En allant dans la classe “GuiButton”

      public GuiButton(int par1, int par2, int par3, String par4Str)
      {
      this(par1, par2, par3, 200, 20, par4Str);
      }
      
      

      C’est la 4éme valeur qui gère la largeur des 3 boutons donc , j’ai transformé ce 200 en… 100 et mes 3 boutons sont coupé en 2.
      :::

      Vous pouvez le faire individuellement :
      Pour ce faire cherchez la ligne du bouton qui vous intéresse et ajoutez-y
      int largeur , int hauteur . ceci en 4 et 5 éme paramètres

      Ceci vient du faite qu’il y a 2 façons de paramétrer la méthode GuiButton()

      Cette astuce est valable pour tout les méthodes “GuiButton” qui n’ont pas ce format :

      
      this.buttonList.add(new GuiButton(int reference, int positionX, int positionY, int largeur, int hauteur, String nomDuButon));
      
      

      Et pour ceux qui l’ont , bah … modifié les valeurs que vous voulez ^^

      :::

      Plus qu’a crées mes 3 boutons , au passage je remercie letherman255 pour cette information :
      Dans la classe GuiMainMenu :
      Ajouté la ligne :

      
      this.buttonList.add(new GuiButton(int référence, int positionX, int positionY, int largeur, int hauteur, String nomDuButon));
      
      

      Des questions la dessus?x)

      Ensuite je les ai alligné en utilisant les valeurs des boutons voisins (int positionX,int positionY) ce qui me donne ce code

      
      this.buttonList.add(new GuiButton(7, this.width / 2 +2, i, 100, 20, (".:ESC90:.")));
      this.buttonList.add(new GuiButton(8, this.width / 2 +2, i+24, 100, 20, ("Site")));
      this.buttonList.add(new GuiButton(9, this.width / 2 +2, i+48,100, 20, ("TS3")));
      
      

      Utiliser ces boutons :

      C’est ici que les choses compliqué commence…Nan je rigole 🙂 .

      Toujours dans votre GuiMainMenu :
      Rajouté :

      
      if (par1GuiButton.id == int référence)
      {
      //le code à exécuter :)
      }
      
      

      La dedans vous pouvez mettre :
      -tout
      -une connection a un serveur minecraft :

      this.mc.displayGuiScreen(new GuiConnecting(new GuiMainMenu(), mc, "127.0.0.1", 25565));
      

      -une connection a un serveur ts (Code au dessus)
      -une connection a un site web,map dinamique , une url

      
      URI uri = URI.create(Votre url);
      Desktop.getDesktop().browse(uri);
      
      

      note : Oui les boutons ne sont exactement aligné 😛

      CPU :intel i7-3820
      MoBo : Asus Saberthoot x79
      RAM : G.skill ripjaws 4*4Go DDRIII 1600Mhz
      GPU : Nvidia gtx680
      Os : Windows 7 intégral 64bit

      1 réponse Dernière réponse Répondre Citer 0
      • elias54E Hors-ligne
        elias54 Administrateurs
        dernière édition par

        Un tutoriel très bien expliqué, malgré les quelques fautes d’orthographe. Il y a certains passage où je ne comprend pas très bien ce que tu veux dire,
        @‘Bialeck’:

        Desktop.browse(URI) :Cette methode de Desktop exécute l’url au format URI dans votre navigateur .

        Alors qu’il s’agit de “Desktop.getDesktop().browse(URI)” ? ^^

        Aussi le titre du topic que tu devrais renommer !
        Je te conseil de mettre : Ajouter un bouton de connexion pour un TS.

        (En approfondissant le tutoriel, car le code, il faut savoir où le mettre.)

        🙂

        Mon site | GitHub

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

          Il faut plus de précision.

          Le mieux serait l’exemple avec une GUI ou le bouton serait placé.

          Quelques corrections à faire, mais l’ensemble est correct, et si il est améliorer, il sera validé.

          "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
          ― Jordan B. Peterson

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

            C’est une ligne plein de sous entendu , on pourrait l’ecrire

            a= Desktop.getDesktop()
            a.browse(URI)

            C’était plus facile d’expliqué en décomposant le code 😕 .

            Je dois faire la partie sur les boutons aussi alors?Le code peut servir ailleurs
            par exemple en tapants une commande dans la chat du jeu(je crois)

            CPU :intel i7-3820
            MoBo : Asus Saberthoot x79
            RAM : G.skill ripjaws 4*4Go DDRIII 1600Mhz
            GPU : Nvidia gtx680
            Os : Windows 7 intégral 64bit

            1 réponse Dernière réponse Répondre Citer 0
            • elias54E Hors-ligne
              elias54 Administrateurs
              dernière édition par

              Et bien ajoute tout les exemples possibles. 🙂 (Ou ceux que tu as envie, car je pense qu’il y en a pas mal, même en faisant un clic droit sur un mob, c’est possible ^^)

              Mon site | GitHub

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

                Je ne suis pas capable d’imaginé tout les cas ou ça pourrait être utilisé ^^.
                C’est pour cela que j’ai commencé le code par “if (condition){”.
                De plus je risque de m’écarter du sujet .
                Et enfin je préfère voir un forum avec avec plein de sujet précis ,qu’avec quelque sujet regroupant plusieurs chose qui n’ont rien avoir entre elle .
                C’est plus facile pour les utilisateurs

                Et il y a letherman255 qui a prévu de faire un tuto sur GUI se serait bête de faire 2 fois la même chose 😛

                CPU :intel i7-3820
                MoBo : Asus Saberthoot x79
                RAM : G.skill ripjaws 4*4Go DDRIII 1600Mhz
                GPU : Nvidia gtx680
                Os : Windows 7 intégral 64bit

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

                  Essaie tout de même d’approfondir 🙂

                  "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                  ― Jordan B. Peterson

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

                    Hum…Et si je fais un autre post pour l’ajout d’un bouton?

                    Ou j’ai mal compris et je dois approfondir ce que j’ai fait ?
                    Perso je vois pas ce que je pourrait dire de plus la dessus
                    Il y a 4 ligne dont 2 déclarations de variables ^^

                    CPU :intel i7-3820
                    MoBo : Asus Saberthoot x79
                    RAM : G.skill ripjaws 4*4Go DDRIII 1600Mhz
                    GPU : Nvidia gtx680
                    Os : Windows 7 intégral 64bit

                    1 réponse Dernière réponse Répondre Citer 0
                    • elias54E Hors-ligne
                      elias54 Administrateurs
                      dernière édition par

                      Tu dois au moins montrer un exemple d’utilisation (dans un gui par exemple). Certes Letherman225 compte faire des tutos sur les GUIs, mais ce n’est pas une raison de te justifier ce pourquoi tu ne préfère pas faire là dessus. 😉

                      Mon site | GitHub

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

                        Salut !

                        J’ai décelé une erreur (minime mais je préfère le dire des fois que certains c/c le code sans faire gaffe).

                        Tu as oublié un ‘/’ dans cette ligne :
                        [code_java]URI uri = URI.create(“ts3server://”+ ipts3 +“?port=”+ portts3);[/code_java]

                        La ligne devrait être :
                        [code_java]URI uri = URI.create(“ts3server://”+ ipts3 +“/?port=”+ portts3);[/code_java]

                        Voilà tout, bonne continuation ! 🙂

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

                          Non en faite il ne le faut pas mais il y a quand même un souci de slash ^^ je corrige merci :).

                          Oui en faite pour représenter la separation entre l’ip et le port j’ai mis un “/” ^^

                          CPU :intel i7-3820
                          MoBo : Asus Saberthoot x79
                          RAM : G.skill ripjaws 4*4Go DDRIII 1600Mhz
                          GPU : Nvidia gtx680
                          Os : Windows 7 intégral 64bit

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

                            La validation se feras après le tutoriel sur les GUI, pour que les gens aient un tutoriel pour avoir les bases des boutons.

                            "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                            ― Jordan B. Peterson

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

                              Voila , n’hésité pas à me corriger 🙂

                              CPU :intel i7-3820
                              MoBo : Asus Saberthoot x79
                              RAM : G.skill ripjaws 4*4Go DDRIII 1600Mhz
                              GPU : Nvidia gtx680
                              Os : Windows 7 intégral 64bit

                              1 réponse Dernière réponse Répondre Citer 0
                              • elias54E Hors-ligne
                                elias54 Administrateurs
                                dernière édition par

                                Si j’ai le temps, je pense corriger un peu ton tutoriel (faute d’orthographe etc…)

                                Mon site | GitHub

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

                                  Salut,
                                  ne t’embete pas pour moi, je vais faire un tuto qui reprendra en détail le fonctionnement des menu mais il me reste encore quelques choses a appronfondir ( le systeme “tesseract” de hauteur de planc). Quand ce sera fait, je posterai le tout. Bon bien sur il y aura aussi le fonctionnement des bouttons…

                                  @+

                                  1 réponse Dernière réponse Répondre Citer 1
                                  • A Hors-ligne
                                    aviallon
                                    dernière édition par

                                    Plutot un bon tutoriel, mais j’avoue que je suis un peu paumé dans le Tuto.
                                    Il manquerait quelques exemples.

                                    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

                                      Je vais bientôt faire un tutoriel pour créer un menu custom, avec connexion au serveur et teamspeak.
                                      Ce tutoriel est donc refusé.

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • 1 / 1
                                      • Premier message
                                        Dernier message
                                      Design by Woryk
                                      ContactMentions Légales

                                      MINECRAFT FORGE FRANCE © 2024

                                      Powered by NodeBB