²

Introduction


 // Bienvenue dans le monde de la documentation
 System.out.println("Hello World !");
                    

Bienvenue sur la documentation officielle de MineLaunched. La documentation à pour but de vous enseigner l'utilisation des bibliothèques et APIs mit à disposition de la communauté.

La documentation est basée sur le langage Java. Par conséquent, il est inutile de se lancer dans l'apprentissage d'une API sans avoir toucher une seule fois au Java. Nous vous recommandons donc de vous familiariser avant d'en faire l'usage.

Il est également nécessaire d'avoir des bases en JavaFX qui nous servira pour l'utilisation des composants graphiques.

Si vous êtes confronté à des difficultés liées à la compréhension des outils ci-dessous, n'hésitez pas à nous contacter via le support et par les autres moyens de communication tels que discord ou le forum.

Afin de maintenir la documentation à jour, les bibliothèques et APIs proposées ci-dessous sont susceptibles d'être modifiées. C'est pourquoi il est important de consulter régulièrement la documentation et de se mettre à jour.

Explication

Il est très difficile de trouver un moyen de créer un lanceur complet et qui correspond à vos attentes sans avoir à dépenser des sommes astronomiques.

C'est tout l'intérêt de MineLaunched. Minelaunched est un gestionnaire complet qui offre à tout créateur de serveur minecraft la possibilité de créer et personnaliser son propre launcher à petit prix.

Si vous êtes développeur, vous pouvez créer un thème et le proposer à la communauté de MineLaunched. Si vous êtes un créateur, vous pouvez demander auprès des développeurs de la communauté de vous créer un thème qui sera ensuite rendu certifié par l'administration de minelaunched.

Thème

Tout d'abord, pour pouvoir commencer à développer votre propre thème, il vous faudra vous munir de la bibliothèque qui est téléchargeable ci-après: Bibliothèque thème v2.0

Avant de commencer à étudier le contenu de la bibliothèque, nous allons d'abord, en passant par éclipse, voir comment structurer et organiser nos classes.

Vous pouvez bien entendu vous appuyer sur le thème de base en analysant son code pour savoir comment vous y prendre. Faites très attention il y a beaucoup de codes regroupés dans une seule classe. Nous vous recommandons de créer plusieurs classes pour avoir une meilleure organisation et pour vous repérer plus facilement.

Eclipse

Faites un clic-droit sur l'explorateur de projects > New > Project > Java Project. Attribuez un nom de thème original à votre projet.

MineLaunched Créer un projet éclipse

Dans cet exemple, nous avons choisi d'appeler notre thème LEmeraude. Le nom n'a pas été choisi arbitrairement. Il a une histoire et un sens. Le L devant est un diminutif de "Launcher" et Emeraude parce qu'il portera les couleurs vertes du minerai :D

Le but de cet exemple est de vous apporter un ordre d'idées afin que vous sachiez comment vous y prendre plus tard. C'est une sorte de consensus.

MineLaunched Exemple de projet

Une fois que vous avez créé votre projet et que vous lui avez donné un nom, il est désormais temps de créer un package qui va représenter: Votre localisation, Votre identité de développeur, et enfin un groupe de classe.

Le but d'un package est d'organiser vos codes de sorte à ce que vous sachiez vous repérer. Un peu comme quand vous avez une chambre toute propre et bien rangée.

MineLaunched Exemple de package

Dans l'exemple ci-dessus, notre package s'appelle fr.nac.lemeraude

Il est maintenant temps de créer notre classe principale qui va contenir les méthodes de la bibliothèque

MineLaunched exemple de classe principale

Nous allons désormais importer la bibliothèque pour créer notre thème. Pour ce faire, faites un clic-droit sur votre projet > propriétés > Java Build Path > Add External JARs...

Vous selectionnez la lib que vous avez téléchargé plus haut.

MineLaunched Importer la bibliothèque thème
MineLaunched Java Build Path
						
{"class": "fr.nac.lemeraude.Main"}
						
					

C'est presque fini ! Il faut maintenant créer un fichier theme.json à la racine de votre projet comme ci-après

MineLaunched Java Build Path

Vous n'avez plus qu'à remplacer le chemin de la classe par le vôtre en veillant à bien mettre à la fin le nom de votre classe principale.

Ce fichier est très important puisque c'est grâce à cela que votre thème sera lu par le système.

Contenu Classe Principale

Vous avez gagné le droit d'avoir le code qu'il faudra mettre dans votre classe principale

                        
public class Main extends Theme{

	public Main(ICore core) {
		super(core);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void PreLoading(Stage arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public ApplicationController getApplicationController(IApplicationController arg0) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getAuthor() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public ConnectionLostController getConnectionLostController(IConnectionLostController arg0) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Controller getLauncherController(ILauncherController arg0) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Controller getLoadingController(ILoadingController arg0) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public UpdaterController getUpdaterController(IUpdaterController arg0) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getName() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getVersion() {
		// TODO Auto-generated method stub
		return null;
	}

}
                        
                    

EXPLICATION DU CODE

Méthode Type Paramètres Description
PreLoading void void Etat de préchargement avant définition des contrôleurs
getApplicationController ApplicationController IApplicationController Fenêtre principale de l'application
getAuthor String void Nom de l'auteur qui a créé le thème
getConnectionLostController ConnectionLostController IApplicationController Sous-Fenêtre consacrée à la perte de connexion
getLauncherController Controller ILauncherController Sous-Fenêtre consacrée au menu principal du launcher
getLoadingController Controller ILoadingController Sous-Fenêtre consacrée au menu de chargement du launcher
getUpdaterController UpdaterController IUpdaterController Sous-Fenêtre consacrée à la mise à jour du launcher
getName String void Nom du thème
getVersion String void Version du thème

La représentation structurelle de la classe principale telle qu'il est, n'est pas difficile. Ce choix repose sur la simplification pour que n'importe qui dans la communauté puisse facilement se familiariser avec cela. Le but étant de respecter l'abstraction de cette représentation et de bien l'assimiler pour en faire bon usage.

Description détaillée des méthodes

Preloading: Réalisez toutes vos tâches dans cette méthode avant l'enclenchement des états des différents contrôleurs. Autrement dit, cette méthode est exécutée avant l'affichage de la fenêtre. Donc, vous avez donc la possibilité d'agir sur le Stage pour par exemple effectuer des animations avant l'ouverture de la fenêtre principale.

getApplicationController: Cette méthode prend en paramètre le Stage. L'intérêt de cette méthode est d'initialiser la fenêtre principale en créant la scène dans laquelle vous allez définir des éléments statiques tels que la barre de titre et ce qu'on appelle un pane ou vitre en Français dans laquelle vont aller vos sous-fenêtres. Nous étudierons plus tard l'intérêt de l'instance de la classe ApplicationController renvoyée par la méthode et le paramètre passé.

getAuthor: Cette méthode renvoie une chaîne de caractères correspondant à l'auteur du thème. L'auteur doit être un nom et prénom ou un pseudo.

getConnectionLostController: Sous-fenêtre réservée à la perte de connexion qui sera intégrée dans la vitre de la fenêtre principale. Vous pouvez vous en passer de cela en renvoyant une valeur nulle. Ce n'est pas obligatoire de l'utiliser dans l'application. Toutefois, il est important d'indiquer à l'application que vous ne voulez pas l'utiliser pour qu'il transmette l'information au gestionnaire d'états. Nous verrons plus tard dans la documentation la valeur renvoyée par cette méthode et le paramètre passé.

getLauncherController: Sous-fenêtre réservée au menu principal ( accueil ) du launcher qui contiendra l'authentification, le lancement du jeu et toutes les autres pages. L'explication au-dessus est aussi valable pour cette méthode excepté le fait qu'il ne doit pas renvoyer de valeur nulle.

getLoadingController: L'importance de cette sous-fenêtre est moindre puisqu'il sert à rafraîchir ou à charger par exemple des pages contenant des WebView (Page Web) qui nécessite une connexion distante. Tout comme les autres contrôleurs, vous pouvez vous en passer.

getUpdaterController: Cette sous-fenêtre est cruciale puisqu'elle effectue l'installation des fichiers pour lancer le jeu et pour les fichiers liés au thème comme par exemple pour effectuer le téléchargement d'un image de fond qui sera ensuite utilisé pour le menu principal du launcher. Cette sous-fenêtre est appelée après le l'initialisation de la fenêtre principale. Elle joue donc un rôle très important puisqu'elle assure le bon fonctionnement du launcher.

getName: Cette méthode renvoie une chaîne de caractères correspondant au nom du thème. Le nom du thème doit-être original et doit avoir, comme indiqué plus haut, un sens, une histoire, une signification, une couleur.

getVersion: Cette méthode renvoie une chaîne de caractères correspondant à la version du thème.

Coeur du thème

Le Coeur du thème ou Core en anglais contient des outils indispensables qui facilitent la tâche du développeur. On peut citer par exemple l'utilitaire permettant de lancer minecraft voire même l'utilitaire pour créer des formulaires. Ces outils ont été développés par les administrateurs de MineLaunched.


public interface ICore {
	IConfiguration getConfig();
	IStateManager getStateManager();
	IControllersManager getControllersManager();
	IListeners getListeners();
	IAuthUtils getAuthUtils();
	IHTTPUtils getHTTPUtils();
	IMemoryUtils getMemoryUtils();
	IMinecraftUtils getMinecraftUtils();
	IOSUtils getOSUtils();
	ITimerUtils getTimerUtils();
	IEmailUtils getEmailUtils();
	IPasteEEUtils getPasteEEUtils();
}

ICore

Méthode Type Paramètres Description
getConfig IConfiguration void Configuration du launcher
getStateManager IStateManager void Gestionnaire d'états
getControllersManager IControllersManager void Gestionnaire de contrôleurs
getListeners IListeners void Gestionnaire d'événements
getAuthUtils IAuthUtils void Utilitaire d'authentification minecraft
getHTTPUtils IHTTPUtils void Utilitaire HTTP
getMemoryUtils IMemoryUtils void Utilitaire de gestion de la mémoire
getMinecraftUtils IMinecraftUtils void Utilitaire pour lancer minecraft
getOSUtils IOSUtils void Utilitaire contenant des informations sur le système d'exploitation
getTimerUtils ITimerUtils void Utilitaire pour le temps
getEmailUtils IEmailUtils void Utilitaire pour envoyer des mails
getPasteEEUtils IPasteEEUtils void Utilitaire pour mettre en ligne du texte

public interface IConfiguration {
	void configInfo();
	void saveConfigData();
	Logger getLogger();
	String getJvmPath();
	void setJvmPath(String path);
	File getGamePath();
	File getLogPath();
	File getLauncherDirPath();
	APIModel getData();
	File getJarPath();
	File getLibrariesPath();
	File getAssetsPath();
	File getNativesPath();
	double getJavaMaxHeap();
	void setJavaMaxHeap(double javaMaxHeap);
	void refreshDataConfiguration();
	File getTmpPath();
	void setWindowSize(Dimension d);
	Dimension getWindowSize();
	UserModel getUser();
}

IConfiguration

Méthode Type Paramètres Description
configInfo void void Affiche en sortie les données concernant la configuration du launcher
saveConfigData void void Sauvegarde les données du launcher dans un fichier de configuration
getLogger Logger void Journalisation
getJvmPath String void Chemin du java qui permettra de lancer le jeu
setJvmPath void String Définir le nouveau chemin du java permettant de lancer le jeu. Prend en paramètre une chaîne de caractères représentant le nouveau chemin de java
getGamePath File void Chemin du répertoire du jeu
getLogPath File void Chemin du fichier de journalisation
getLauncherDirPath File void Chemin du répertoire contenant les fichiers du launcher
getData APIModel void Données du launcher provenant de l'API
getJarPath File void Chemin du fichier jar du jeu
getLibrariesPath File void Chemin du répertoire contenant les bibliothèques de minecraft
getAssetsPath File void Chemin du répertoire contenant les assets de minecraft
getNativesPath File void Chemin du répertoire contenant les natives de minecraft
getJavaMaxHeap double void proportion maximum de mémoire allouée pour la jvm de minecraft
setJavaMinHeap void double Définition de la proportion maximum de mémoire à allouer pour minecraft
refreshDataConfiguration void void Rafraichissement des données du launcher en contactant l'API
getTmpPath File void Récupère le chemin des fichiers temporaires du launcher (il y a parfois des fichiers préservés)
setWindowSize void Dimension Définition de la taille de la fenêtre principale du launcher
getWindowSize Dimension void Récupération de la taille de la fenêtre principale du launcher
getUser void UserModel Données de l'utilisateur

public interface IAuthUtils {
	boolean connect(String username, String password);
	AuthResponse getResponse(String username, String password);
}

IAuthUtils

Méthode Type Paramètres Description
connect boolean (String,String) Authentifie un utilisateur à minecraft. Renvoie l'état de l'authentification
getResponse AuthResponse (String,String) Réponse de l'authentification

public interface IEmailUtils {
	void sendMailDevelopers(String subject, String text);
}

IEmailUtils

Méthode Type Paramètres Description
sendMailDevelopers void (String,String) Envoie un mail aux développeurs du launcher. Il prend en paramètre le sujet du mail et son contenu.

public interface IHTTPUtils {
	HttpURLConnection sendGetRequest(String requestURL) throws IOException;
	HttpURLConnection sendPostRequest(String requestURL,
            Map params) throws IOException;
	String readSingleLineRespone() throws IOException;
	String[] readMultipleLinesRespone() throws IOException;
	void disconnect();
	String getJsonContent(String url);
}

IHTTPUtils

Méthode Type Paramètres Description
sendGetRequest HttpURLConnection String Envoie une requête GET au serveur distant
sendGetRequest HttpURLConnection (String,Map) Envoie une requête POST au serveur distant
readSingleLineRespone String void Renvoie la valeur de la requête sur une seule ligne
readMultipleLinesRespone String[] void Renvoie la valeur de la requête sur plusieurs lignes
disconnect void void Met fin à la connexion HTTP
getJsonContent String String Récupère les données en json du serveur distant

public interface IMemoryUtils {
	int getProcessors();
	double getMaxHeap();
	Double availableMemory();
	Double TotalRam();
	String aboutMemory();
}

IMemoryUtils

Méthode Type Paramètres Description
getProcessors int void Nombre de processus de la machine exécutant la jvm
getMaxHeap double void Mémoire maximale allouée par défaut pour lancer minecraft
availableMemory Double void Mémoire disponible qui peut être alloué par la machine
TotalRam Double void Ram totale de la machine en Gb
aboutMemory String void Renvoie des informations concernant la mémoire de la machine

public interface IMinecraftUtils {
	boolean launchGame(String formtype);
}

IMinecraftUtils

Méthode Type Paramètres Description
launchGame boolean String Lance le jeu selon le type d'authentification. Premium ou Crack

public interface IOSUtils {
	OS getOSType();
	String getUserPath();
	String getOSVersion();
	String getOSName();
	OSARCH getOSArch() ;
	String getJavaDir();
	String JavaVersion();
	String AboutSystem();
	void openFileExplorer(Path path);
}

IOSUtils

Méthode Type Paramètres Description
getOSType OS void Le système d'exploitation de la machine
getUserPath String void Chemin vers le répertoire home de la machine
getOSVersion String void Version du système d'exploitation
getOSName String void Nom du système d'exploitation
getOSArch OSARCH void Architecture du système d'exploitation (64x ou 32x)
getJavaDir String void Chemin vers le java par défaut de la machine
JavaVersion String void Version du java utilisée par la machine
AboutSystem String void Chaîne qui liste des informations concernant le système
openFileExplorer void Path Ouvre le gestionnaire de fichiers vers le chemin donné en paramètre

public interface IPasteEEUtils {
	String submitPaste(String text) throws IOException;
}

IPasteEEUtils

Méthode Type Paramètres Description
submitPaste String String Créer une copie du texte saisie en paramètre de la fonction et renvoie le lien de sa copie. Une erreur peut être levée en cas de problème.

public interface ITimerUtils {
	String formatInterval(final long l);
}

ITimerUtils

Méthode Type Paramètres Description
formatInterval String long Transforme le timestamp donné en argument en un format lisible

public enum OS{
	WINDOWS, OSX, LINUX, UNKNOWN
}

OS

Enumerateur contenant les différents système d'exploitation reconnus par le launcher. IL y a windows, Mac os x, linux et les ce qui ne sont pas connus et exclus par le launcher.


public enum OSARCH{
	X64(64), X32(32);

	private int name;

	OSARCH(int arch){
		name = arch;
	}

	public int getName() {
		return name;
	}
}

OSARCH

Enumerateur listant les différentes architectures possibles

Méthode Type Paramètres Description
getName int void Renvoie la version de l'architecture sous forme d'entier

public interface IStateManager {
	IState getState();
	void setState(StateType stateType);
}

IStateManager

Méthode Type Paramètres Description
getState IState void Récupère l'état dans lequel est actuellement le launcher
setState void StateType Change l'état du launcher

public enum StateType {
	UPDATER, LAUNCHER, CONNECTIONLOST, LOADING;
}

StateType

Enumérateur listant les différents états possibles. Il y a l'état de mise à jour lié à la sous-fenêtre créé dans le contrôleurs Updater, l'état de launcher, l'état de perte de connexion et l'état de chargement.


public class APIModel {
	public GameModel getGame() {
		return game;
	}

	public String getServername() {
		return servername;
	}

	public String getLauncherTitle() {
		return LauncherTitle;
	}

	public String getLogpath() {
		return logpath;
	}

	public String getVersion() {
		return version;
	}

	public String getCustomversionurl() {
		return customversionurl;
	}

	public String getCustomressourcesurl() {
		return customressourcesurl;
	}

	public String getLogoUrl() {
		return logoUrl;
	}

	public String getJavaARG() {
		return JavaARG;
	}

	public String getAuthentification() {
		return authentification;
	}

	public boolean isCustomJar() {
		return customversionurl != null && !customversionurl.isEmpty();
	}

	public boolean hasRessources() {
		return customressourcesurl != null && !customressourcesurl.isEmpty();
	}

	public String getJarFilename() {
		if(customversionurl != null) {
			String last = customversionurl.substring(customversionurl.lastIndexOf('/') + 1);
			if(last.contains(".jar")) {
				return last;
			}
		}
		return null;
	}

	public String getRessourcesZipFilename() {
		if(customressourcesurl != null) {
			String last = customressourcesurl.substring(customressourcesurl.lastIndexOf('/') + 1);
			if(last.contains(".zip")) {
				return last;
			}
		}
		return null;
	}

	public String getCustomversionhash() {
		return customversionhash;
	}

	public ServerModel getServer() {
		return server;
	}

	public boolean isPaid() {
		return paid;
	}

	public boolean isOnGameStartHide() {
		return OnGameStartHide;
	}

	public long getDemotime() {
		return demotime;
	}

	public boolean isForge() {
		return forge;
	}

	public ThemeModel getTheme() {
		return theme;
	}

	public String getCustomressources_integrity() {
		return customressources_integrity;
	}
}

APIModel

Méthode Type Paramètres Description
getGame GameModel void Récupère les données liées à minecraft par l'API
getServername String void Récupère le nom du serveur minecraft
getLauncherTitle String void Récupère le titre du launcher qui sera utilisé pour la barre de titre
getLogpath String void Chemin du fichier de journalisation
getVersion String void Version de minecraft utilisée
getCustomversionurl String void URL du jar correspondant à la version de minecraft pour lancer le jeu
getLogoUrl String void URL de l'icon du serveur minecraft qui sera utilisé pour l'afficher dans la barre de tâches et dans l'exécutable
getJavaARG String void Arguments personnalisés JAVA pour lancer le jeu
getAuthentification String void Type d'authentification choisi par le créateur du launcher
isCustomJar boolean void Si le créateur du launcher a fourni un jar personnalisé
hasRessources boolean void Si le créateur a fourni un modpack
getJarFilename String void Nom du jar personnalisé fourni par le créateur du launcher
getRessourcesZipFilename String void Nom de l'archive correspondant au modpack fourni par le créateur du launcher
getCustomversionhash String void Signature du jar personnalisé fourni par le créateur du launcher
getServer String void Données du serveur minecraft
isPaid boolean void Si le créateur du launcher dispose d'une licence. (Utile pour créer une version démo du thème)
isOnGameStartHide boolean void Si au lancement de minecraft le launcher est masqué
getDemotime long void Timestamp pour déterminer la date de début de la démo. Le timestamp est défini à la création du launcher
isForge boolean void Si c'est forge minecraft
getTheme ThemeModel void Thème du launcher
getCustomressources_integrity String void Signature du modpack

public class GameModel {
	private boolean fullscreen;

	public String getDirectory() {
		return directory;
	}

	public int[] getWindow() {
		return window;
	}

	public boolean isFullscreen() {
		return fullscreen;
	}

}

GameModel

Méthode Type Paramètres Description
getDirectory String void Nom du répertoire du jeu
getWindow int[] void Taille de la fenêtre du jeu
isFullscreen boolean void Si le jeu est en plein écran

public class ServerModel {

	private String ip;

	private String port;

	public String getIp() {
		return ip;
	}
	public String getPort() {
		return port;
	}
}

ServerModel

Méthode Type Paramètres Description
getIp String void Ip du serveur minecraft
getPort String void Port du serveur minecraft

public class ThemeModel {
	public String getBackgroundurl() {
		return backgroundurl;
	}
	public String getName() {
		return name;
	}
	public String getTheme_integrity() {
		return theme_integrity;
	}
}

ThemeModel

Méthode Type Paramètres Description
getBackgroundurl String void Lien de l'image du fond qui sera utilisé pour le launcher (optionnel selon les thèmes)
getName String void Nom du thème choisi par le créateur du launcher
getTheme_integrity String void Signature du thème

public class UserModel {
	public String getPseudo() {
		return pseudo;
	}

	public String getAccount() {
		return account;
	}

	public String getPassword() {
		return pass;
	}

	public void setPseudo(String ps) {
		pseudo = ps;
	}

	public void setAccount(String a) {
		account = a;
	}

	public void setPassword(String ps) {
		pass = ps;
	}

	public boolean isCrackForgotChecked() {
		return crackForgotChecked;
	}

	public void setCrackForgotChecked(boolean crackForgotChecked) {
		this.crackForgotChecked = crackForgotChecked;
	}

	public boolean isPremiumForgetChecked() {
		return premiumForgetChecked;
	}

	public void setPremiumForgetChecked(boolean premiumForgetChecked) {
		this.premiumForgetChecked = premiumForgetChecked;
	}
}

UserModel

Méthode Type Paramètres Description
getPseudo String void Pseudo du joueur
getAccount String void Adresse mail ou nom du joueur (compte minecraft)
getPassword String void Mot de passe du joueur (compte minecraft)
isCrackForgotChecked boolean void S'il faut se souvenir du compte crack
isPremiumForgetChecked boolean void S'il faut se souvenir du compte minecraft
setPseudo void String Définir un pseudo
setAccount void String Définir un nom/mail ( compte minecraft )
setPassword void String Définir un mot de passe ( compte minecraft )
setCrackForgotChecked void boolean retenir les identifiants pour l'authentification crack
setPremiumForgetChecked void boolean retenir les identifiants pour l'authentification premium

public interface IEvent {
	Object getSource();
}

IEvent

IEvent est la mère de tous les événements. Ils héritent tous de cette interface. L'événement sera propogé avec le listener

Méthode Type Paramètres Description
getSource Object void Renvoie l'appelant

public interface IEventCrashReport extends IEvent{
	String getCrashLog();
}

IEventCrashReport

Cette évenement est appelé après un crash du jeu

Méthode Type Paramètres Description
getCrashLog String void Chaîne contenant le rapport d'un crash

public interface IPaneChangeEvent extends IEvent{
	Pane getPane();
	Pane getOldPane();
}

IPaneChangeEvent

Cette évenement est appelé lorsqu'il y a un changement de vitre

Méthode Type Paramètres Description
getPane Pane void Récupère la nouvelle vitre contenant la Sous-fenêtre actuelle
getOldPane Pane void Récupère l'ancienne vitre

public interface IWindowResizeEvent extends IEvent{
	double getWidth();
	double getHeight();
}

IWindowResizeEvent

Cette événement est appelé lors du redimensionnement de la fenêtre principale

Méthode Type Paramètres Description
getWidth double void Longueur de la fenêtre après redimensionnement
getHeight double void Largeur de la fenêtre après redimensionnement

public interface IEventListener {
	void handleEvent(IEvent e);
}

IEventListener

IEventListener est la mère des listeners. Tous les listeners en héritent. Le listener est utilisé pour gérer et propager des événements.

Méthode Type Paramètres Description
handleEvent void IEvent Propage un événement dans un listener écoutant des appelants

public abstract class IGameClosedListener implements IEventListener {
	public void handleEvent(IEvent e) {
		handle(e);
	}
}

IGameClosedListener

Listener utilisé pour propager un événement lors de la fermeture du jeu

Méthode Type Paramètres Description
handleEvent void IEvent Propage un évenement

public abstract class IGameCrashedListener implements IEventListener {
	public void handleEvent(IEvent e) {
		handle((IEventCrashReport)e);
	}
}

IGameCrashedListener

Listener utilisé pour propager un événement lors d'un crash du jeu

Méthode Type Paramètres Description
handleEvent void IEvent Propage un évenement

public abstract class IGameLaunchedListener implements IEventListener {
	public void handleEvent(IEvent e) {
		handle(e);
	}
}

IGameLaunchedListener

Listener utilisé pour propager un événement lors du lancement du jeu

Méthode Type Paramètres Description
handleEvent void IEvent Propage un évenement

public interface IListeners {
	void registerListener(IEventListener listener);
	void unregisterListener(IEventListener listener);
	void dispatch(Class class1, IEvent e);
}

IListeners

Méthode Type Paramètres Description
registerListener void IEventListener Enregistre un listener
unregisterListener void IEventListener Libère un listener
dispatch void (Class,IEvent) Envoi un événement à un listener

public abstract class IPaneChangeListener implements IEventListener {
	public void handleEvent(IEvent e) {
		handle((IPaneChangeEvent)e);
	}
}

IPaneChangeListener

Listener utilisé pour propager un événement lors d'un chagement de vitre

Méthode Type Paramètres Description
handleEvent void IEvent Propage un évenement

public abstract class IWindowResizeListener implements IEventListener{
	public void handleEvent(IEvent e) {
		handle((IWindowResizeEvent)e);
	}

}

IWindowResizeListener

Listener utilisé pour propager un événement lors du rendimensionnement de la fenêtre principale du launcher

Méthode Type Paramètres Description
handleEvent void IEvent Propage un évenement

public interface ApplicationController {
	BorderPane getPane();
}

ApplicationController

Méthode Type Paramètres Description
getPane BorderPane void Récupère la sous-fenêtre de l'application

public interface ConnectionLostController extends Controller{
	Label getConnectionLostText();
}

ConnectionLostController

Méthode Type Paramètres Description
getConnectionLostText Label void Texte de perte de connexion (une référence)

public interface Controller {
	Pane getPane();
}

Controller

Méthode Type Paramètres Description
getPane Pane void Renvoie une sous-fenêtre d'une vitre

public interface IApplicationController extends IController, IBorderPane{
	void closeWindowAction();
	void switchMainPane(Pane newpane);
	void resizeWindow();
	BorderPane MainPane();
	Dimension getDimensionByResolution(int width, int height);
}

IApplicationController

Méthode Type Paramètres Description
closeWindowAction void void Enclenchement de l'événement gérant la fermeture de la fenêtre principale
switchMainPane void Pane Changement de sous-fenêtre
resizeWindow void void Enclenchement du redimensionnement de la fenêtre
MainPane BorderPane void renvoie la fenêtre principale
getDimensionByResolution BorderPane (int,int) récupère la dimension de la fenêtre passé en paramètre en appliquant la résolution de l'écran

public interface IBorderPane {
	BorderPane getPane();
}

IBorderPane

Méthode Type Paramètres Description
getPane BorderPane void Renvoie une sous-fenêtre

public interface IConnectionLostController extends IController, IPane {

}

IConnectionLostController

Pour l'instant vide mais utilisé puisqu'il hérite des interfaces IController et IPane


public interface IController {
	Stage getStage();
}

IController

Méthode Type Paramètres Description
getStage Stage void Renvoie le Stage

public interface IControllersManager {
	void setLauncherController();
	void setApplicationController();
	void setConnectionLostController();
	void setUpdaterController();
	void setLoadingController();

	ILauncherController  getILauncherController();
	IApplicationController  getIApplicationController();
	IConnectionLostController  getIConnectionLostController();
	IUpdaterController  getIUpdaterController();
	ILoadingController  getILoadingController();
}

IControllersManager

Listener utilisé pour propager un événement lors du lancement du jeu

Méthode Type Paramètres Description
setLauncherController void void Rédefinie le contrôleur launcher (en créant une nouvelle instance)
setApplicationController void void Rédefinie le contrôleur application (en créant une nouvelle instance)
setConnectionLostController void void Rédefinie le contrôleur ConnectionLost (en créant une nouvelle instance)
setUpdaterController void void Rédefinie le contrôleurs Updater (en créant une nouvelle instance)
setLoadingController void void Rédefinie le contrôleurs Loading (en créant une nouvelle instance)
getILauncherController ILauncherController void Renvoie les données utiles du contrôleur launcher
getIApplicationController IApplicationController void Renvoie les données utiles du contrôleur application
getIConnectionLostController IConnectionLostController void Renvoie les données utiles du contrôleur ConnectionLost
getIUpdaterController IUpdaterController void Renvoie les données utiles du contrôleur Updater
getILoadingController ILoadingController void Renvoie les données utiles du contrôleur Loading

public interface ILauncherController extends IController, IPane {

}

ILauncherController

Pour l'instant vide mais utilisé puisqu'il hérite des interfaces IController et IPane


public interface ILoadingController extends IController, IPane{

}

ILoadingController

Pour l'instant vide mais utilisé puisqu'il hérite des interfaces IController et IPane


public interface IPane {
	Pane getPane();
}

IPane

Méthode Type Paramètres Description
getPane Pane void Renvoie une Sous-fenêtre

public interface IUpdaterController extends IController, IPane{
}

IUpdaterController

Pour l'instant vide mais utilisé puisqu'il hérite des interfaces IController et IPane


public abstract class IGameLaunchedListener implements IEventListener {
	public void handleEvent(IEvent e) {
		handle(e);
	}
}

IGameLaunchedListener

Listener utilisé pour propager un événement lors du lancement du jeu

Méthode Type Paramètres Description
handleEvent IEvent void Propage un évenement

public interface UpdaterController extends Controller{
	ProgressBar getProgressBar();
	Label getUpdateText();
}

UpdaterController

Méthode Type Paramètres Description
getProgressBar ProgressBar void Barre de progression qui peut-être personnalisé (l'utilisation est optionnel)
getUpdateText Label void Référence vers un Label qui renvoie les messages durant le cyle de téléchargement