⁠
kyle wood: Remove legacy creator
- package ${PACKAGE};
-
- import com.google.inject.Inject;
- import net.kyori.adventure.identity.Identity;
- import net.kyori.adventure.text.Component;
- import net.kyori.adventure.text.LinearComponents;
- import net.kyori.adventure.text.format.NamedTextColor;
- import net.kyori.adventure.text.format.Style;
- import net.kyori.adventure.text.format.TextDecoration;
- import org.apache.logging.log4j.Logger;
- import org.spongepowered.api.Server;
- import org.spongepowered.api.command.Command;
- import org.spongepowered.api.command.CommandResult;
- import org.spongepowered.api.command.parameter.Parameter;
- import org.spongepowered.api.event.Listener;
- import org.spongepowered.api.event.lifecycle.ConstructPluginEvent;
- import org.spongepowered.api.event.lifecycle.RegisterCommandEvent;
- import org.spongepowered.api.event.lifecycle.StartingEngineEvent;
- import org.spongepowered.api.event.lifecycle.StoppingEngineEvent;
- import org.spongepowered.plugin.PluginContainer;
- import org.spongepowered.plugin.builtin.jvm.Plugin;
-
- /**
- * The main class of your Sponge plugin.
- *
- * <p>All methods are optional -- some common event registrations are included as a jumping-off point.</p>
- */
- @Plugin("${PLUGIN_ID}")
- public class ${CLASS_NAME} {
-
- private final PluginContainer container;
- private final Logger logger;
-
- @Inject
- ${CLASS_NAME}(final PluginContainer container, final Logger logger) {
- this.container = container;
- this.logger = logger;
- }
-
- @Listener
- public void onConstructPlugin(final ConstructPluginEvent event) {
- // Perform any one-time setup
- this.logger.info("Constructing ${PLUGIN_ID}");
- }
-
- @Listener
- public void onServerStarting(final StartingEngineEvent<Server> event) {
- // Any setup per-game instance. This can run multiple times when
- // using the integrated (singleplayer) server.
- }
-
- @Listener
- public void onServerStopping(final StoppingEngineEvent<Server> event) {
- // Any tear down per-game instance. This can run multiple times when
- // using the integrated (singleplayer) server.
- }
-
- @Listener
- public void onRegisterCommands(final RegisterCommandEvent<Command.Parameterized> event) {
- // Register a simple command
- // When possible, all commands should be registered within a command register event
- final Parameter.Value<String> nameParam = Parameter.string().key("name").build();
- event.register(this.container, Command.builder()
- .addParameter(nameParam)
- .permission("${PLUGIN_ID}.command.greet")
- .executor(ctx -> {
- final String name = ctx.requireOne(nameParam);
- ctx.sendMessage(Identity.nil(), LinearComponents.linear(
- NamedTextColor.AQUA,
- Component.text("Hello "),
- Component.text(name, Style.style(TextDecoration.BOLD)),
- Component.text("!")
- ));
-
- return CommandResult.success();
- })
- .build(), "greet", "wave");
- }
- }