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é