From 0b0edc1a59adc504e814b123b16862f34a2daf18 Mon Sep 17 00:00:00 2001 From: Ollie <69084614+olijeffers0n@users.noreply.github.com> Date: Wed, 21 Feb 2024 23:38:02 +0000 Subject: [PATCH] Initial Work on Lifecycle API --- config/sidebar.paper.ts | 1 + docs/paper/dev/api/lifecycle.md | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 docs/paper/dev/api/lifecycle.md diff --git a/config/sidebar.paper.ts b/config/sidebar.paper.ts index cd0ba882..f41a4e54 100644 --- a/config/sidebar.paper.ts +++ b/config/sidebar.paper.ts @@ -141,6 +141,7 @@ const paper: SidebarsConfig = { "dev/api/scheduler", "dev/api/plugin-messaging", "dev/api/plugin-configs", + "dev/api/lifecycle", "dev/api/folia-support", "dev/api/roadmap", ], diff --git a/docs/paper/dev/api/lifecycle.md b/docs/paper/dev/api/lifecycle.md new file mode 100644 index 00000000..0247308c --- /dev/null +++ b/docs/paper/dev/api/lifecycle.md @@ -0,0 +1,31 @@ +--- +slug: /dev/lifecycle +description: A guide to Paper's Lifecycle API +--- + +# Lifecycle API + +The lifecycle API can be used for lifecycle-related registration, such as commands, the Registry Modification API and other similar resources. + +## LifecycleEventManager + +The `LifecycleEventManager` is tied to either a `Plugin` instance or a `BootstrapContext` depending on where you access +it from. For example in your plugin's main class: + +```java title="TestPlugin.java" +@Override +public void onEnable() { + LifecycleEventManager lifecycleManager = this.getLifecycleManager(); +} +``` + +Or, with a bootstrapper: + +```java title="TestPluginBootstrap.java" +@Override +public void bootstrap(@NotNull BootstrapContext context) { + final LifecycleEventManager lifecycleManager = context.getLifecycleManager(); +} +``` + +## LifecycleEvents & RegistryEvents