Savoir si nous sommes en singleplayer ou en multiplayer ?
-
Avant de commencez, si tu regarde ce tutoriel qui reste simple… C’est que tu est très certainement un débutant modeur, ou simplement que tu est en galère et ça arrive. Je t’invite à te renseignez sur les events FML qui sont très utiles comme ici, pour connaître la nature de notre partie
Je t’ai mis quelques liens juste ici, pour te renseignez sur les events :
Sommaire du tutoriel
Pré-requis
Tutoriel
Tout d’abord, il faut savoir si nous sommes sur une partie quelconque, nous allons donc utilisez les events FML pour exécutez du code quand une partie est lancez.
Et grâce à la magie d’internet nous pouvons facilement trouvez tout les Events de FML.
Celui qui nous intérréssent estFMLServerStartingEvent
En déclarant l’EventHandler voici le code que vous devez avoir :
@EventHandler public void onParty(FMLServerStartingEvent event) { }
Pour l’instant ce code serra exécutez dès que nous lancerons une partie qu’elle sois multijoueur ou singleplayer.
Mais avant tout il faut indiquez que notre code ne fonctionnera seulement sur Client et non serveur !
@SideOnly(Side.CLIENT) @EventHandler public void onParty(FMLServerStartingEvent event) { }
Nous allons donc ajoutez des conditions si/sinon pour exécutez un code précis en fonction du mode de jeu. Avec les classes de minecraft qui sont directement renseignez sur Eclipse dans les resources, nous utiliserons
Minecraft.getMinecraft().isSingleplayer()
, qui retourne une valeur booléenne. Si vrai nous sommes en singleplayer, si faux, en multiplayerVoici le code final :
@SideOnly(Side.CLIENT) @EventHandler public void onParty(FMLServerStartingEvent event) { if(Minecraft.getMinecraft().isSingleplayer() == true) { //SINGLEPLAYER System.out.println("Vous êtes en singleplayer !"); }else if(Minecraft.getMinecraft().isSingleplayer() == false) { //MULTIPLAYER System.out.println("Vous êtes en multiplayer !"); } }
Licence et attribution
Ce tutoriel rédigé par YiraSan et publié sur Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International
-
Je tenais à précisez que le code ne marche que pour les parties en solo et les parties en LAN, mais pour savoir si le joueur est connecté à un serveur il existe cette événement :
FMLNetworkEvent.ClientConnectedToServerEvent
, ne pas oubliez d’ajoutez@EventHandler
ainsi que@SideOnly(Side.CLIENT)
.