Clase de Plug-in Principal

Nota

The instructions within the Sponge Documentation assume that you have prior knowledge of Java. SpongeAPI provides the foundation for you to begin creating plugins for Minecraft servers powered by Sponge; however, it is up to you to be creative and make your code work! There are several free Java courses online if you have had little experience with Java.

Comenzando Su Clase

The next step after adding SpongeAPI as a dependency is creating a new class. The class can be named however you like, and can be in any package that does not begin with org.spongepowered. By convention, class names should be in title case.

Oracle recomienda para usar su dominio como si nombre de paquete, si es dueño de un dominio. Sin embargo, en caso de que no sea dueño de alguno, es comun usar una dirección de correo electrónico (como com.gmail.username.project) o un repositorio de código abierto (como io.github.username.project).

After creating your main class, the Plugin annotation must be affixed to it. This annotation allows Sponge to easily find your main plugin class when your plugin is loaded. An example usage is illustrated below, more detailed usage is explained on Metadatos del Complemento.

package io.github.username.project;

import org.spongepowered.api.plugin.Plugin;

@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0", description = "Example")
public class ExamplePlugin {

}

Nota

Diríjase a Identificadores de Complementos si usted aún no ha elegido su ID de plugin.

Inicializando tu plugin

Los plugins son cargados antes del juego y el/los mundo(s). Esto deja un período de tiempo en el que tus plugins deberían de comenzar a interactuar con el juego, como registrar comandos o eventos.

Su plug-in puede escuchar eventos particulares, llamados eventos de estado, para ser notificado sobre los cambios en el estado del juego. En el ejemplo posterior, onServerStart() se llama cuando ocurre el GameStartedServerEvent; tome nota de la anotación Listener antes del método.

The example below will log a message upon starting the server. If your plugin is correctly loaded, you should see this message as part of the server’s initialization output.

import org.spongepowered.api.plugin.Plugin;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GameStartedServerEvent;

// Imports for logger
import com.google.inject.Inject;
import org.slf4j.Logger;

@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0", description = "Example")
public class ExamplePlugin {

    @Inject
    private Logger logger;

    @Listener
    public void onServerStart(GameStartedServerEvent event) {
        logger.info("Successfully running ExamplePlugin!!!");
    }

}

Truco

La documentación de Sponge proporciona una guía con más información sobre eventos (ver Eventos). Normalmente, además de prefijar los métodos de manejo de eventos con @Listener, también debes registrar tu objeto con el bus de eventos de Sponge. Sin embargo, tu clase de complementos principal es registrada automáticamente.

Eventos de Estado

También podría ser deseable escuchar otros eventos de estado, particularmente el GameStoppingServerEvent. Hay dos categorías de eventos de estado:

Para información acerca de cuando cada evento de estado ocurre, vea el documentación del ciclo de vida de plugin.