Classe Principale du Plugin

Note

Les instructions dans la documentation de Sponge suppose que vous avez des connaissances préalables en Java. SpongeAPI vous fournit les bases pour commencer à créer des plugins pour les serveurs Minecraft utilisant Sponge; en revanche, c’est à vous d’être créatif et de faire en sorte que votre code fonctionne ! Il existe plusieurs cours de Java, en ligne et gratuit, si vous avez peu d’expérience avec Java.

Commencer votre Classe

La prochaine étape après avoir ajouté SpongeAPI comme dépendance, est la création d’une nouvelle classe. La classe peut être appelée comme bon vous semble, et mise dans n’importe quel package ne commençant pas par org.spongepowered. Par convention, les noms de classe doivent être écrit en CamelCase (la première lettre de chaque mot est une majuscule).

Oracle recommande d’utiliser votre nom de domaine comme nom pour vos packages, si vous possédez un nom de domaine. Cependant, dans l’éventualité où vous ne posséderiez pas de nom de domaine, une pratique courante est d’utiliser une adresse email (par exemple com.gmail.username.project) ou un dépôt open-source (comme io.github.username.project).

Après avoir créé votre classe principale, l’annotation Plugin doit lui être apposée. Cette annotation permet à Sponge de facilement retrouver la classe principale de votre plugin, lorsque celui-ci est chargé. Un exemple d’utilisation est présenté ci-dessous, une utilisation plus détaillée est expliqué dans Plugin Metadata.

package io.github.username.project;

import org.spongepowered.plugin.builtin.jvm.Plugin;

@Plugin("exampleplugin")
public class ExamplePlugin {

}

Note

Voir Identifiants de Plugins si vous n’avez pas encore choisi votre plugin ID.

Initialiser votre Plugin

Your plugin can listen for particular events, called lifecycle events, to be notified about changes in the state of the game or be to prompted to peform a specific task, such as registering a command. In the example below, onServerStart(StartedEngineEvent<Server>) is called when the StartedEngineEvent occurs for the Server. Note that the method is annotated with the Listener annotation.

L’exemple ci-desssous va log un mesage lors du démarrage du serveur. Si votre plugin est chargé correctement, vous devriez voir ce message dans la sortie lors de l’initialisation du serveur.

import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.lifecycle.StartedEngineEvent;
import org.spongepowered.plugin.builtin.jvm.Plugin;

// Imports for logger
import com.google.inject.Inject;
import org.apache.logging.log4j.Logger;

@Plugin("exampleplugin")
public class ExamplePlugin {

    @Inject
    private Logger logger;

    @Listener
    public void onServerStart(final StartedEngineEvent<Server> event) {
        logger.info("Successfully running ExamplePlugin!!!");
    }

}

Astuce

The Sponge documentation provides a guide with more information on events (see Événements). Normally, in addition to prefixing event-handler methods with @Listener, you must also register your object with Sponge’s event bus, which can be done at any time. However, your main plugin class is registered automatically.

Lifecycle Events

It may also be desirable to listen for other lifecycle events in your plugin, such that you can react to re-registration requests or engine/game state changes. See the plugin lifecycle documentation for more information on the lifecycle events available for plugins to listen to.