Ajouter un bouton de connexion pour un TS



  • 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é 😛


  • Administrateurs

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

    🙂



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



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


  • Administrateurs

    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 ^^)



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



  • Essaie tout de même d'approfondir 🙂



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


  • Administrateurs

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



  • 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 ! 🙂



  • 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 "/" ^^



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



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


  • Administrateurs

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



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

    @+



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


  • Administrateurs

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


Log in to reply