Hoofdklasse uw plugin
Notitie
De instructies in de Sponge Documentatie veronderstellen dat je voorkennis hebt van Java. De Sponge API geeft je een fundering voor jou om plugins om te bouwen voor Minecraft servers die gebruik maken van Sponge; het is echter jouw taak om creatief te zijn en er voor te zorgen dat je code werkt! Er zijn verschillende gratis Java cursussen online indien je weinig ervaring hebt met Java.
Uw klasse maken
De volgende stap na het toevoegen van de Sponge API als een dependency is het aanmaken van een nieuwe klasse. De klasse kan genoemd worden zoals u maar wilt en in elk package zitten, zolang het niet begint met org.spongepowered
. Volgens conventies moet de klassenaam in Title Case.
Oracle raadt aan om uw domeinnaam te gebruiken als package naam, indien u een domeinnaam heeft. Als u geen domeinnaam heeft is het gebruikelijk om een e-mailadres te gebruiken (zoals com.gmail.gebruikersnaam.project
) of een open-source repository (zoals io.github.gebruikersnaam.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.
package io.github.username.project;
import org.spongepowered.api.plugin.Plugin;
@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0")
public class ExamplePlugin {
}
Notitie
Refereer naar Plugin-ID’s als u nog niet uw plugin-ID heeft gekozen.
Jouw plugin initialiseren
Plugins worden geladen voor het spel en de wereld(en). Dit creëert een tijdspanne waarin uw plugin moeten beginnen met de interactie met het spel, zoals het registreren van commando’s of events.
Uw plugin kan luisteren naar bepaalde events die state events worden genoemd, om meldingen te krijgen over veranderingen in de state van het spel. In het voorbeeld hieronder wordt onServerStart()
aangeroepen wanneer het GameStartedServerEvent event plaats vindt; merk de Listener annotatie op voor de methode.
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GameStartedServerEvent;
@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0")
public class ExamplePlugin {
@Listener
public void onServerStart(GameStartedServerEvent event) {
// Hey! The server has started!
// Try instantiating your logger in here.
// (There's a guide for that)
}
}
Tip
De Sponge documentatie beschikt over een handleiding met meer informatie over events (zie Events). Normaal gesproken, als aanvulling op het prefixen van event-handler methodes met @Listener
, moet u ook het object registreren met de event bus van Sponge. De hoofdklasse van uw plugin wordt echter automatisch geregistreerd.
State Events
Het kan ook wenselijk zijn om te luisteren naar andere state events, vooral het GameStoppingServerEvent
. Er zijn twee categorieën state events:
Initialization: Deze events gebeuren wanneer Sponge en de plugins geladen worden.
Running: Deze events gebeuren wanneer het spel en de wereld geladen worden.
Voor meer informatie omtrent wanneer elke state event gebeurt, zie plugin lifecycle documentation.