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:
Inicialización: Estos eventos ocurren cuando Sponge y los plugins están cargando.
Corriendo: Éstos eventos ocurren cuando el juego y el mundo están cargando.
Para información acerca de cuando cada evento de estado ocurre, vea el documentación del ciclo de vida de plugin.