Lifok

[WIP]Sponge : Les bases

7 messages dans ce sujet

Sponge : Les bases



88x31.png

Cette uvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas dUtilisation Commerciale - Pas de Modification 3.0 non transposé. Tout partage implique que vous citiez l'auteur original.




-[iNTRODUCTION]-

Salutations chères compagnons !

Certains d'entre vous le savent peut-être déjà, mais la communauté

minecraft a encore frappé, et cette fois ci, c'est du lourd !

J'ai l'honneur de vous présenter :

TJSoFTt.png

-[sOMMAIRE]-
1] Sponge : Qu'est ce que c'est ?

2] Mise en place de l'espace de travail

[/goancre]A] Avec Maven

B] Avec Gradle

3] Création d'un Plugin simple

4] Création d'un Mod Simple

[goancre=infos]5] Liens utiles




1] Sponge : Qu'est ce que c'est ?

Sponge est une collaboration entre les API récentes (Spout, Flow's APIs...) implémentée sur forge, à l'aide de la communauté de modding Minecraftienne : Cauldron, Glowstone, Spout... C'est une API universelle : elle s'occupe du coté client et du côté serveur, mais actuellement, seul la face serveur est vraiment développée, la face client étant gérée par Forge.

Sponge se divise en 3 parties :
  • Sponge API : C'est l'API de Sponge, celle qui nous permettra de faire des Plugins ou des Mods. Tout est regroupé dans cette API, c'est génial vous ne trouvez pas ? :D Téléchargeable ici.
  • Sponge Server Implementation : C'est un serveur Minecraft qui charge les Plugins.
  • Sponge Forge Implementation : C'est un client Minecraft qui charge les Mods.

Les deux implémentations peuvent être téléchargées ici.
Bon, vu comme ça, c'est pas très compréhensible, mais pour faire simple, le serveur, c'est le nouveau Cauldron, et le client, c'est le nouveau Forge.
Pour le site officiel, il suffit de cliquer sur Spongy un peu plus haut.

Je vous conseil de lire ce récapitulatif des évènements qui explique bien l'utilité de Sponge et l'avenir de Minecraft.
Bon alors, ça vous intéresse ? On passe à la suite ? C'est parti !


2] Mise en place de l'espace de travail


A] Avec Maven

Ajoutez dans le pom.xml :


	<repositories>
		<repository>
			<id>sponge-maven-repo</id>
			<name>Sponge maven repo</name>
			<url>http://repo.spongepowered.org/maven</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
	<dependencies>
		<dependency>
			<groupId>org.spongepowered</groupId>
			<artifactId>spongeapi</artifactId>
			<version>2.1-SNAPSHOT</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>

Enregistrez et laissez le workspace se reconstruire.



B] Avec Gradle

repositories {
mavenCentral()
maven {
name "sponge-maven-repo"
url "http://repo.spongepowered.org/maven/"
}
}

dependencies {
compile "org.spongepowered:spongeapi:2.1-SNAPSHOT"
}



3] Création d'un Plugin simple

On y est, enfin ! C'est là que ça va devenir intéressant !
On va commencer par les plugins, globalement, si vous avez déjà créé un plugin avec Bukkit, vous allez voir que c'est très similaire, à quelques choses près.
Créons tout d'abord notre package : Clique droit sur src/main/java New Package
Pour ce tutoriel, ce sera : fr.ironcraft.spongetutorial
Passons à notre première classe : PluginTutorial
package fr.ironcraft.spongetutorial;

public class PluginTutorial {

}

Maintenant, il faut dire à Sponge que notre classe va être un Plugin, pour se faire, ajouter l'annotation @Plugin.

@Plugin(id = "TutorialPlugin", name = "Tutorial", version = "1.0")
public class PluginTutorial {

}

Contrairement à Bukkit, les plugins Sponge ne possède pas (encore) de fichier yml. Il est remplacé par cette annotation.
Voici la liste des paramètres :

  • id : L'id de votre plugin, ici TutorialPlugin.
  • name : Le nom du plugin (affiché dans le Logger), ici Tutorial.
  • version : La version du plugin, ici 1.0.
  • dependencies : les dépendences du plugin.

a ressemble pas mal à Forge hein ? :D
Bon, pour la suite, on va juste apprendre à faire un Hello World, les plugins fonctionnent de la même façon que sur Bukkit, vous pouvez donc vous servir des tutoriels bukkit et vous documenter pour retrouver les bons Events.
Pour récupérer les instance du jeu et du logger, on va passer par google, merci google ! :D

	@Inject
	Game game;

	@Inject
	Logger logger;

On oublie pas les imports : Ctrl + Shift + O sur Eclipse.
Attention pour le Logger, le bon import est :

import org.slf4j.Logger;

Pour les habitués, il n'existe plus de onEnable() et onDisable(), par contre il y a des Events bien pratique, à la place du onEnable, on va utiliser l'Event ServerStartingEvent :

	@Subscribe
	public void onServerStarting(ServerStartingEvent event) {
		logger.info("Bonjour tout le monde !");
	}

Et voilà, on a notre Hello World ! Je m'en vais partager ce plugin très très utile dans le monde entier, et à mon retour, on parlera de mods ! ;p
PS : Si vous voulez la liste des Events, sachez que la plupart sont les même que Forge. Si vous voulez la doc, la voici.

4] Création d'un Mod simple

WIP


5] Liens utiles
2

Partager ce message


Lien à poster
Partager sur d’autres sites

Gradle dominera le monde un jour.

Super tuto, je suis vraiment préssé qu'il sorte, bravo à toi !

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci, ce tuto ne montrera vraiment que les bases, car Sponge ressemble énormément à Forge et Bukkit, la plupart des Events possèdent le même nom, enfin bref, c'est presque identique, donc ça allège le travail. ^^

EDIT : Voilà, j'ai terminé jusqu'aux plugins, me manque plus que les mods et c'est finis !

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Poooouuuuu c'est nul !!

Nan c'est pas vrai c'est une blague.

lol.

ahah.

Bon tuto vivement la suite \o/

0

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