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"; |
| int portTs3 = 9987; |
| URI uri = URI.create("ts3server://"+ ipts3 +"?port="+ portts3); |
| try { Desktop.getDesktop().browse(uri); |
| } catch (IOException e) { |
| |
| } |
| |
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) |
| { |
| |
| } |
| |
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é 