Welcome to Bukkit France

Inscrivez-vous maintenant pour profiter d'un accès total à tout le contenu offert par la meilleur communauté Bukkit française ! Une fois inscrit et connecté, vous pourrez contribuez à la communauté en postant vos propres sujets et questions ou en répondant à ceux existants. Vous pourrez aussi customiser votre profil, recevoir des points de réputations, communiquer avec les autres membres via le chat, et plus encore! 

Litarvan

minecraft [Forge/Vanilla] [∞] Créer son propre launcher perso de ZERO

697 messages dans ce sujet

Merci Beaucoup, c'est le résultat de plusieurs mois pour trouver comment lancer minecraft (du aux nombreux petits problèmes et tous), deux semaine et demi pour S-Update (trouver un système fonctionnel était dur), et après il y avait juste a résumer le tout, et voilà, ça va économiser tous ce travail aux gens.

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

euh je suis un peu perdu comment on appel les class ? #Kikoo :P

dit l'image d'exemple on peut pas mettre un fonds personnaliser ? images quoi ?

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

euh je suis un peu perdu comment on appel les class ? #Kikoo :P

dit l'image d'exemple on peut pas mettre un fonds personnaliser ? images quoi ?

 

Pour les images personnalisés, tu peut très bien et tu peut en fait faire ce que tu veut.

this.add(new JLabel(new ImageIcon("#CHEMIN_IMAGE#")));
2 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

La classe il n'y en a qu'une et elle s'appelle LauncherFrame, ensuite si tu veux rajouter des composants ou des images je te conseille de te diriger vers openclassroom (lien en haut du tuto) et va voir la partie Notre Première Fenêtre :)

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Kyldev merci le code 

theshark donc je cree un package une class et j'y mets le code meme authentification ?

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

déjà appelle moi Shark, ensuite oui tu créés ton package avec une classe et tu mets tous les codes, tu pourra modifier ce que tu veux c'est un exemple après, c'est ton launcher =)

2 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah je n'avais pas vu, c'est nouveau c'est pas grave, mais je mettrais a jour la lib, merci pour l'info ;)

2 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Un bouton Crédits dans ton launcher ou un petit texte un peu foncé, "Merci à TheShark34 - https://github.io/TheShark34" vite fait, c'est gentil ^^

Après si tu ne peut vraiment pas avoir Java 7 du a ta version de Mac (Je te comprends, à part si tu as le nouveau mac, les nouvelles versions d'OS X te ralentisses :()

Pour l'open launcher lib je peut la recompiler avec Java 6, mais S-Update utilise NIO qui require java 7, je peut te faire un fork pour Java 6 sans NIO, tu pourra faire deux versions de ton launcher en faisant compiler la version Java 7 par quelqu'un d'autre, car utiliser NIO pour les téléchargement (dans S-Update) permet de bien accellerer et si tu publie ton launcher, ce serait bien de faire deux versions comme ça, une avec S-Update Java 6, et une avec  S-Update Java 7, je ferais ça demain car là j'ai pas le temps.

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà Diagamma, finalement, ou le tuto d'OpenClassroom dit de la merde ou j'ai mal vu, mais nio n'est pas depuis java 7 mais java 4 xD

Donc pour l'openlauncherlib j'ai juste recompiler tu peut la redl, et pour s-update j'ai fait une modification, regarde si la progress bar marche, si c'est le cas c'est bon, et je l'ai aussi recompiler, donc voilà ! Pas besoin de faire deux launcher et tout. Voici les liens :

 

- https://github.com/TheShark34/OpenLauncherLib/raw/master/target/openlauncherlib-0.0.1-ALPHA.jar

- https://github.com/TheShark34/S-Update/raw/java6/target/s-update-java6-0.1.3-ALPHA.jar

 

^^

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Euh what, bah justement c'était la seule modification faites ta du te gourer et prendre la version normale, si c'est pas le cas c'est que j'ai merde mais comme tu la fait ça va

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

@Diagamma Il manque le dossier libs dans ton dossier minecraft.

-----------------------------------------------------------

Mise à jour du 28/02/2015 :

- Réglage de quelques bugs
- Ajout de deux bonus !

4 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Euh Help j'arrive a créer la fenêtre mais le code pour l'images lui ne marche pas et niveau authentifications etc plein d'erreur tu peut m'envoyer une de tes workspace pour je regarde comment tu as mis le code ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Ohla ohla on se calme xD

Déjà "Le code pour l'images" je sais pas ce que c'est.

Et pour l'authentification, passe moi les erreurs s'il te plait.

2 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

PAS CON XD

 

Deux choix s'offre à toi :

 

Soit tu change ça :

new LauncherFrame().refresh();

en ça :

LauncherFrame lf = new LauncherFrame();lf.refresh();lf.loadUsername();

Soit au début de refresh tu met loadUsername();

 

Pour Wondcraft, si tu voulais juste mettre un background le lien de Diagamma est un peu compliqué, il suffit juste de créer un JLabel vide, et de faire :

try {    label.setIcon(new ImageIcon(ImageIO.read(getClass().getResourceAsStream("monimage.png"))));} catch (IOException e) {}

monimage.png devra être situé avec ta classe dans ton package et devra faire la même taille que ta fenêtre.

2 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

PAS CON XD

 

Deux choix s'offre à toi :

 

Soit tu change ça :

new LauncherFrame().refresh();

en ça :

LauncherFrame lf = new LauncherFrame();lf.refresh();lf.loadUsername();

Soit au début de refresh tu met loadUsername();

 

Pour Wondcraft, si tu voulais juste mettre un background le lien de Diagamma est un peu compliqué, il suffit juste de créer un JLabel vide, et de faire :

try {    label.setIcon(new ImageIcon(ImageIO.read(getClass().getResourceAsStream("monimage.png"))));} catch (IOException e) {}

monimage.png devra être situé avec ta classe dans ton package et devra faire la même taille que ta fenêtre.

j'ai pas que sa comme erreur j'en ai plein envoi tous ton Main je regarde pourquoi le mien ne marche pas ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Non, toi envoie ton Main, je te dit les erreurs, et tu les corriges, c'est comme ça que ça marche, je vais pas te donner un truc a copier coller, je vais te faire progresser pour pas que tu refasse les même erreurs. C'est comme ça qu'on fait sur bukkit.fr. En tout cas c'est comme ça que je fait.

4 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

tien : je pense que c'est moi qui ait tous de travers

package fr.bonjourtv.launcher;import java.io.File;import java.io.IOException;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JProgressBar;import javax.swing.JTextField;import javax.swing.SwingConstants;import fr.theshark34.openlauncherlib.GameLauncher;import fr.theshark34.s_update.S_Update;public class LauncherFrame extends JFrame {    public static final File GAME_DIR = new File(System.getProperty("user.home") + "/.MonServ");    private JLabel titre;    private static JTextField pseudo;    private static JPasswordField mdp;    private static JButton jouer;    private static JProgressBar pb;    private static String username = null;    private static String accessToken = null;    private static String id = null;    public LauncherFrame() {        this.setTitle("Test");        this.setSize(850, 500);        this.setUndecorated(true);        this.setDefaultCloseOperation(EXIT_ON_CLOSE);        this.setLocationRelativeTo(null);        this.setLayout(null);        titre = new JLabel("Test", SwingConstants.CENTER);        titre.setFont(titre.getFont().deriveFont(60f));        titre.setBounds(0, 20, 850, 100);        this.add(titre);        pseudo = new JTextField("Pseudo");        pseudo.setBounds(350, 275, 150, 20);        this.add(pseudo);        mdp = new JPasswordField("Mot de Passe");        mdp.setBounds(350, 305, 150, 20);        this.add(mdp);                jouer = new JButton("Jouer !");        jouer.setBounds(350, 335, 150, 20);        this.add(jouer);                pb = new JProgressBar();        pb.setStringPainted(true);        pb.setBounds(0, 480, 850, 20);        this.add(pb);                this.setVisible(true);    }    public static void main(String[] args) {        // Astuce pour avoir le style visuel du systeme hôte        try {            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());        } catch (Exception e) {            e.printStackTrace();        }        new LauncherFrame();            jouer.addActionListener(new ActionListener() {        @Override       public void actionPerformed(ActionEvent e) {           Thread t = new Thread() {               @Override               public void run() {                   auth();               }			private void auth() {				pseudo.setEnabled(false);				mdp.setEnabled(false);				jouer.setEnabled(false);				try {				    YggdrasilAuthenticateResponse rep = Authenticator.auth(GAME_DIR, pseudo.getText(), new String(mdp.getPassword()));				    username = rep.getSelectedProfile().getName();				    accessToken = rep.getAccessToken();				    id = rep.getSelectedProfile().getId();				} catch (AuthYggdrasilException e) {				    pseudo.setEnabled(true);				    mdp.setEnabled(true);				    jouer.setEnabled(true);				    pseudo.setText(e.getErrorModel().getErrorMessage());				}				if(username != null) {				    // Ici on lancera la mise à jour				}			}           };           t.start();                             }        public void refresh() {            pseudo.setEnabled(false);            mdp.setEnabled(false);            jouer.setEnabled(false);            try {                YggdrasilRefreshResponse rep = Authenticator.refresh(GAME_DIR);                if(rep == null)                    throw new AuthYggdrasilException(null);                username = rep.getSelectedProfile().getName();                accessToken = rep.getAccessToken();                id = rep.getSelectedProfile().getId();            } catch (AuthYggdrasilException e) {                pseudo.setEnabled(true);                mdp.setEnabled(true);                jouer.setEnabled(true);            }            if(username != null) {                Thread t = new Thread() {                    @Override                    public void run() {                        // Ici on lancera la mise a jour                    }                };                t.start();            }        }                 public void main(String[] args) {            // Astuce pour avoir le style visuel du systeme hôte            try {                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());            } catch (Exception e) {                e.printStackTrace();            }            new LauncherFrame().refresh();        }    });        private void final update1() {         pb.setString("Verification des mises à jours");        update();        S_Update su = new S_Update("http://monsitestyle.fr/fichiersserveur/", GAME_DIR);        try {            if (su.checkForUpdate()) {                pb.setString("Preparation de la mise à jour");                su.createLists();                pb.setString("Mise a jour");                su.update();            }            pb.setString("A jour ! Lancement du jeu...");        } catch (IOException e) {            // Affichage d'un message d'erreur            JOptionPane.showMessageDialog(null, "Impossible de mettre a jour mon serveur ! : " + e, "Erreur !", JOptionPane.ERROR_MESSAGE);            pseudo.setEnabled(true);            mdp.setEnabled(true);            jouer.setEnabled(true);            e.printStackTrace();            return;        }    }    }	private static void update() {		// TODO Auto-generated method stub			}	protected void refresh() {		// TODO Auto-generated method stub			}	Thread t = new Thread() {	    @Override	    public void run() {	        boolean stop = false;	        while (!stop) {	            if (Util.getDownloadingFile() != null) {	                switch (su.getState()) {	                case S_Update.DOWNLOADING:	                    pb.setString("Downloading file "	                            + su.getCurrentFileName() + " "	                            + su.getFileNumber() + "/"	                            + su.getNumberOfFiles());	                    pb.setMaximum((int) Util.getDownloadingFileSize());	                    pb.setValue((int) Util.getDownloadingFile()	                            .length());	                    System.out.println(Util.getDownloadingFile()	                            .length()	                            + "/"	                            + Util.getDownloadingFileSize());	                    break;	                case S_Update.UNZIPPING:	                    pb.setString("Unzipping file "	                            + su.getCurrentFileName() + " "	                            + su.getFileNumber() + "/"	                            + su.getNumberOfFiles());	                    pb.setMaximum((int) Util.getUnzipingFileSize());	                    pb.setValue((int) Util.getUnzipingFileLen());	                    break;	                case S_Update.REMOVING:	                    pb.setString("Removing file "	                            + su.getCurrentFileName() + " "	                            + su.getFileNumber() + "/"	                            + su.getNumberOfFiles());	                    break;	                case S_Update.FINISH:	                    stop = true;	                    break;	                }	            }	        }	    }	};	try {	    if (su.checkForUpdate()) {	        pb.setString("Preparation de la mise à jour");	        su.createLists();	        pb.setString("Mise a jour");	        t.start();	        su.update();	    }	} catch (IOException e) {	    // Affichage d'un message d'erreur	    JOptionPane.showMessageDialog(null, "Impossible de mettre a jour mon serveur ! : " + e, "Erreur !", JOptionPane.ERROR_MESSAGE);	    pseudo.setEnabled(true);	    mdp.setEnabled(true);	    jouer.setEnabled(true);	    e.printStackTrace();	    return;	}	pb.@setString("A jour ! Lancement du jeu...");	private void launchGame(String username, String accessToken, String id) {		GameLauncher gl = new GameLauncher(version, GAME_DIR, LauncherTv, username, accessToken, id, argumentsJVM, supportForge, legacyAssets);	}}

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est normal ta mis les codes n'importe ou et plusieurs fois les même XD

Bon, comme tu na pas lair d'avoir appris le java alors que ce tutoriel le requiert je vais te le faire parce que je suis très sympa, je bouffe et je te le fais

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà, bon t'avait vraiment mais vraimant fait n'importe quoi. Tu n'a que copié collé les codes sans lire le tutoriel. Des bases en Java aurais suffit a comprendre pourquoi c'etait n'importe quoi, sérieux les gens, pour programmer en Java, il faut avoir des bases au moins, c'est logique, vous avez déjà lu un livre sans savoir lire ? Au moins faut savoir l'alphabet...

C'est vraiment parce que je suis gentil, après faut que tu remplace les trucs du style "MonServ", et que tu finisse de lire le tutoriel.

 

package fr.boujourtv.launcher;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.IOException;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JProgressBar;import javax.swing.JTextField;import javax.swing.SwingConstants;import javax.swing.UIManager;import net.kronos.mclib.auth.yggdrasil.AuthYggdrasilException;import net.kronos.mclib.auth.yggdrasil.model.response.YggdrasilAuthenticateResponse;import net.kronos.mclib.auth.yggdrasil.model.response.YggdrasilRefreshResponse;import fr.theshark34.openlauncherlib.Authenticator;import fr.theshark34.openlauncherlib.GameLauncher;import fr.theshark34.s_update.S_Update;import fr.theshark34.s_update.Util;@SuppressWarnings("serial")public class LauncherFrame extends JFrame {    public static final File GAME_DIR = new File(            System.getProperty("user.home") + "/.MonServ");    private JLabel titre;    private static JTextField pseudo;    private static JPasswordField mdp;    private static JButton jouer;    private static JProgressBar pb;    private static String username = null;    private static String accessToken = null;    private static String id = null;    public LauncherFrame() {        this.setTitle("Test");        this.setSize(850, 500);        this.setUndecorated(true);        this.setDefaultCloseOperation(EXIT_ON_CLOSE);        this.setLocationRelativeTo(null);        this.setLayout(null);        titre = new JLabel("Test", SwingConstants.CENTER);        titre.setFont(titre.getFont().deriveFont(60f));        titre.setBounds(0, 20, 850, 100);        this.add(titre);        pseudo = new JTextField("Pseudo");        pseudo.setBounds(350, 275, 150, 20);        this.add(pseudo);        mdp = new JPasswordField("Mot de Passe");        mdp.setBounds(350, 305, 150, 20);        this.add(mdp);        jouer = new JButton("Jouer !");        jouer.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                Thread t = new Thread() {                    @Override                    public void run() {                        auth();                    }                };                t.start();            }        });        jouer.setBounds(350, 335, 150, 20);        this.add(jouer);        pb = new JProgressBar();        pb.setStringPainted(true);        pb.setBounds(0, 480, 850, 20);        this.add(pb);        this.setVisible(true);    }    private void auth() {        pseudo.setEnabled(false);        mdp.setEnabled(false);        jouer.setEnabled(false);        try {            YggdrasilAuthenticateResponse rep = Authenticator.auth(GAME_DIR,                    pseudo.getText(), new String(mdp.getPassword()));            username = rep.getSelectedProfile().getName();            accessToken = rep.getAccessToken();            id = rep.getSelectedProfile().getId();        } catch (AuthYggdrasilException e) {            pseudo.setEnabled(true);            mdp.setEnabled(true);            jouer.setEnabled(true);            pseudo.setText(e.getErrorModel().getErrorMessage());        }        if (username != null) {            update();        }    }    public void refresh() {        pseudo.setEnabled(false);        mdp.setEnabled(false);        jouer.setEnabled(false);                try {            YggdrasilRefreshResponse rep = Authenticator.refresh(GAME_DIR);            if(rep == null)                throw new AuthYggdrasilException(null);            username = rep.getSelectedProfile().getName();            accessToken = rep.getAccessToken();            id = rep.getSelectedProfile().getId();        } catch (AuthYggdrasilException e) {            pseudo.setEnabled(true);            mdp.setEnabled(true);            jouer.setEnabled(true);        }        if(username != null) {            Thread t = new Thread() {                @Override                public void run() {                    update();                }            };            t.start();        }    }        private void update() {        pb.setString("Verification des mises à jours");        update();        final S_Update su = new S_Update("http://monsitestyle.fr/fichiersserveur/", GAME_DIR);        try {            if (su.checkForUpdate()) {                pb.setString("Preparation de la mise à jour");                su.createLists();                Thread t = new Thread() {                    @Override                    public void run() {                        boolean stop = false;                        while (!stop) {                            if (Util.getDownloadingFile() != null) {                                switch (su.getState()) {                                case S_Update.DOWNLOADING:                                    pb.setString("Downloading file "                                            + su.getCurrentFileName() + " "                                            + su.getFileNumber() + "/"                                            + su.getNumberOfFiles());                                    pb.setMaximum((int) Util.getDownloadingFileSize());                                    pb.setValue((int) Util.getDownloadingFile()                                            .length());                                    System.out.println(Util.getDownloadingFile()                                            .length()                                            + "/"                                            + Util.getDownloadingFileSize());                                    break;                                case S_Update.UNZIPPING:                                    pb.setString("Unzipping file "                                            + su.getCurrentFileName() + " "                                            + su.getFileNumber() + "/"                                            + su.getNumberOfFiles());                                    pb.setMaximum((int) Util.getUnzipingFileSize());                                    pb.setValue((int) Util.getUnzipingFileLen());                                    break;                                case S_Update.REMOVING:                                    pb.setString("Removing file "                                            + su.getCurrentFileName() + " "                                            + su.getFileNumber() + "/"                                            + su.getNumberOfFiles());                                    break;                                case S_Update.FINISH:                                    stop = true;                                    break;                                }                            }                        }                    }                };                t.start();                pb.setString("Mise a jour");                su.update();            }            pb.setString("A jour ! Lancement du jeu...");            launchGame();        } catch (IOException e) {            // Affichage d'un message d'erreur            JOptionPane.showMessageDialog(this, "Impossible de mettre a jour mon serveur ! : " + e, "Erreur !", JOptionPane.ERROR_MESSAGE);            pseudo.setEnabled(true);            mdp.setEnabled(true);            jouer.setEnabled(true);            e.printStackTrace();            return;        }    }        private void launchGame() {        GameLauncher gl = new GameLauncher(version, GAME_DIR, "LauncherTv", username, accessToken, id, argumentsJVM, supportForge, legacyAssets);        try {            Process p = gl.launchMinecraft();            gl.printProcessOutput(p);        } catch(IOException e) {            JOptionPane.showMessageDialog(this, "Impossible de lancer mon serveur ! : " + e, "Erreur !", JOptionPane.ERROR_MESSAGE);        }    }        public static void main(String[] args) {        try {            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());        } catch (Exception e) {            e.printStackTrace();        }        new LauncherFrame();    }} 
2 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà, bon t'avait vraiment mais vraimant fait n'importe quoi. Tu n'a que copié collé les codes sans lire le tutoriel. Des bases en Java aurais suffit a comprendre pourquoi c'etait n'importe quoi, sérieux les gens, pour programmer en Java, il faut avoir des bases au moins, c'est logique, vous avez déjà lu un livre sans savoir lire ? Au moins faut savoir l'alphabet...

C'est vraiment parce que je suis gentil, après faut que tu remplace les trucs du style "MonServ", et que tu finisse de lire le tutoriel.

 

package fr.boujourtv.launcher;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.IOException;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JProgressBar;import javax.swing.JTextField;import javax.swing.SwingConstants;import javax.swing.UIManager;import net.kronos.mclib.auth.yggdrasil.AuthYggdrasilException;import net.kronos.mclib.auth.yggdrasil.model.response.YggdrasilAuthenticateResponse;import net.kronos.mclib.auth.yggdrasil.model.response.YggdrasilRefreshResponse;import fr.theshark34.openlauncherlib.Authenticator;import fr.theshark34.openlauncherlib.GameLauncher;import fr.theshark34.s_update.S_Update;import fr.theshark34.s_update.Util;@SuppressWarnings("serial")public class LauncherFrame extends JFrame {    public static final File GAME_DIR = new File(            System.getProperty("user.home") + "/.MonServ");    private JLabel titre;    private static JTextField pseudo;    private static JPasswordField mdp;    private static JButton jouer;    private static JProgressBar pb;    private static String username = null;    private static String accessToken = null;    private static String id = null;    public LauncherFrame() {        this.setTitle("Test");        this.setSize(850, 500);        this.setUndecorated(true);        this.setDefaultCloseOperation(EXIT_ON_CLOSE);        this.setLocationRelativeTo(null);        this.setLayout(null);        titre = new JLabel("Test", SwingConstants.CENTER);        titre.setFont(titre.getFont().deriveFont(60f));        titre.setBounds(0, 20, 850, 100);        this.add(titre);        pseudo = new JTextField("Pseudo");        pseudo.setBounds(350, 275, 150, 20);        this.add(pseudo);        mdp = new JPasswordField("Mot de Passe");        mdp.setBounds(350, 305, 150, 20);        this.add(mdp);        jouer = new JButton("Jouer !");        jouer.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                Thread t = new Thread() {                    @Override                    public void run() {                        auth();                    }                };                t.start();            }        });        jouer.setBounds(350, 335, 150, 20);        this.add(jouer);        pb = new JProgressBar();        pb.setStringPainted(true);        pb.setBounds(0, 480, 850, 20);        this.add(pb);        this.setVisible(true);    }    private void auth() {        pseudo.setEnabled(false);        mdp.setEnabled(false);        jouer.setEnabled(false);        try {            YggdrasilAuthenticateResponse rep = Authenticator.auth(GAME_DIR,                    pseudo.getText(), new String(mdp.getPassword()));            username = rep.getSelectedProfile().getName();            accessToken = rep.getAccessToken();            id = rep.getSelectedProfile().getId();        } catch (AuthYggdrasilException e) {            pseudo.setEnabled(true);            mdp.setEnabled(true);            jouer.setEnabled(true);            pseudo.setText(e.getErrorModel().getErrorMessage());        }        if (username != null) {            update();        }    }    public void refresh() {        pseudo.setEnabled(false);        mdp.setEnabled(false);        jouer.setEnabled(false);                try {            YggdrasilRefreshResponse rep = Authenticator.refresh(GAME_DIR);            if(rep == null)                throw new AuthYggdrasilException(null);            username = rep.getSelectedProfile().getName();            accessToken = rep.getAccessToken();            id = rep.getSelectedProfile().getId();        } catch (AuthYggdrasilException e) {            pseudo.setEnabled(true);            mdp.setEnabled(true);            jouer.setEnabled(true);        }        if(username != null) {            Thread t = new Thread() {                @Override                public void run() {                    update();                }            };            t.start();        }    }        private void update() {        pb.setString("Verification des mises à jours");        update();        final S_Update su = new S_Update("http://monsitestyle.fr/fichiersserveur/", GAME_DIR);        try {            if (su.checkForUpdate()) {                pb.setString("Preparation de la mise à jour");                su.createLists();                Thread t = new Thread() {                    @Override                    public void run() {                        boolean stop = false;                        while (!stop) {                            if (Util.getDownloadingFile() != null) {                                switch (su.getState()) {                                case S_Update.DOWNLOADING:                                    pb.setString("Downloading file "                                            + su.getCurrentFileName() + " "                                            + su.getFileNumber() + "/"                                            + su.getNumberOfFiles());                                    pb.setMaximum((int) Util.getDownloadingFileSize());                                    pb.setValue((int) Util.getDownloadingFile()                                            .length());                                    System.out.println(Util.getDownloadingFile()                                            .length()                                            + "/"                                            + Util.getDownloadingFileSize());                                    break;                                case S_Update.UNZIPPING:                                    pb.setString("Unzipping file "                                            + su.getCurrentFileName() + " "                                            + su.getFileNumber() + "/"                                            + su.getNumberOfFiles());                                    pb.setMaximum((int) Util.getUnzipingFileSize());                                    pb.setValue((int) Util.getUnzipingFileLen());                                    break;                                case S_Update.REMOVING:                                    pb.setString("Removing file "                                            + su.getCurrentFileName() + " "                                            + su.getFileNumber() + "/"                                            + su.getNumberOfFiles());                                    break;                                case S_Update.FINISH:                                    stop = true;                                    break;                                }                            }                        }                    }                };                t.start();                pb.setString("Mise a jour");                su.update();            }            pb.setString("A jour ! Lancement du jeu...");            launchGame();        } catch (IOException e) {            // Affichage d'un message d'erreur            JOptionPane.showMessageDialog(this, "Impossible de mettre a jour mon serveur ! : " + e, "Erreur !", JOptionPane.ERROR_MESSAGE);            pseudo.setEnabled(true);            mdp.setEnabled(true);            jouer.setEnabled(true);            e.printStackTrace();            return;        }    }        private void launchGame() {        GameLauncher gl = new GameLauncher(version, GAME_DIR, "LauncherTv", username, accessToken, id, argumentsJVM, supportForge, legacyAssets);        try {            Process p = gl.launchMinecraft();            gl.printProcessOutput(p);        } catch(IOException e) {            JOptionPane.showMessageDialog(this, "Impossible de lancer mon serveur ! : " + e, "Erreur !", JOptionPane.ERROR_MESSAGE);        }    }        public static void main(String[] args) {        try {            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());        } catch (Exception e) {            e.printStackTrace();        }        new LauncherFrame();    }} 

Je vais l'apprendre toutes suite moi a vrai dire je connais bukkit :/ merci comme meme et l'images je le mets ou ?

Partager ce message


Lien à poster
Partager sur d’autres sites

tu suis le lien de Diagamma, après tu peut pas dire savoir coder bukkit sans savoir coder Java, car bukkit est fait en Java Donc ca veut juste dire que tu sais faire le truc des tutoriels, quand tu a appris le Java et que tu as plusieurs années d'experience, tu peut faire ce que tu veux.

3 personnes aiment ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.