[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"indexing-guide-html":3},"\u003Ch1>Plugin Indexing Guide\u003C/h1>\n\u003Cp>This guide is written for plugin developers. If you want your project to appear on NukkitHub, follow the checklist below.\u003C/p>\n\u003Ch2>Quick Inclusion Checklist\u003C/h2>\n\u003Cp>To get your plugin included, make sure your repository satisfies all of the following:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Use a public GitHub repository\u003C/strong>\u003C/li>\n\u003Cli>\u003Cstrong>Do not archive the repository\u003C/strong>\u003C/li>\n\u003Cli>\u003Cstrong>Do not mark it as a template\u003C/strong>\u003C/li>\n\u003Cli>\u003Cstrong>Do not add the \u003Ccode>noindex\u003C/code> topic\u003C/strong>\u003C/li>\n\u003Cli>\u003Cstrong>Put your manifest in the standard path\u003C/strong>\n\u003Cul>\n\u003Cli>\u003Ccode>src/main/resources/plugin.yml\u003C/code>\u003C/li>\n\u003Cli>or \u003Ccode>src/main/resources/powernukkitx.yml\u003C/code> for PowerNukkitX-first modules\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Cstrong>Add the topic that matches your target runtime\u003C/strong>\u003C/li>\n\u003Cli>\u003Cstrong>Fill in \u003Ccode>plugin.yml\u003C/code> / \u003Ccode>powernukkitx.yml\u003C/code> and README.md\u003C/strong>\u003C/li>\n\u003C/ol>\n\u003Cp>If you only do one extra thing beyond the manifest, add the correct topic. That makes discovery much more reliable.\u003C/p>\n\u003Ch2>Which Topic Should You Add?\u003C/h2>\n\u003Cp>Use the topic that best matches your plugin:\u003C/p>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Target runtime\u003C/th>\n\u003Cth>Recommended topic\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>NukkitX\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-plugin\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Nukkit-MOT\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-mot-plugin\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>PowerNukkitX\u003C/td>\n\u003Ctd>\u003Ccode>powernukkitx-plugin\u003C/code> or \u003Ccode>pnx-plugin\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Lumi\u003C/td>\n\u003Ctd>\u003Ccode>lumi-plugin\u003C/code>\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003Cp>If your plugin supports both NukkitX and Nukkit-MOT, \u003Ccode>nukkit-plugin\u003C/code> is acceptable.\u003C/p>\n\u003Cp>\u003Cstrong>How to add a topic:\u003C/strong> GitHub repository -&gt; About -&gt; gear icon -&gt; Topics.\u003C/p>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Fork note:\u003C/strong> If your plugin repository is a fork, adding the correct topic is especially important.\u003C/p>\n\u003C/blockquote>\n\u003Ch2>What To Do For Each Runtime\u003C/h2>\n\u003Ch3>NukkitX (\u003Ccode>nkx\u003C/code>)\u003C/h3>\n\u003Cp>Recommended setup:\u003C/p>\n\u003Cul>\n\u003Cli>Use \u003Ccode>src/main/resources/plugin.yml\u003C/code>\u003C/li>\n\u003Cli>Add the \u003Ccode>nukkit-plugin\u003C/code> topic\u003C/li>\n\u003Cli>Reference NukkitX-related repositories or dependencies such as:\n\u003Cul>\n\u003Cli>\u003Ccode>cloudburstmc\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>opencollab.dev\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>repo.nukkitx.com\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Cp>If your plugin uses generic \u003Ccode>cn.nukkit:*\u003C/code> dependencies, it may be treated as shared compatibility for both NukkitX and Nukkit-MOT.\u003C/p>\n\u003Ch3>Nukkit-MOT (\u003Ccode>nkmot\u003C/code>)\u003C/h3>\n\u003Cp>Recommended setup:\u003C/p>\n\u003Cul>\n\u003Cli>Use \u003Ccode>src/main/resources/plugin.yml\u003C/code>\u003C/li>\n\u003Cli>Add the \u003Ccode>nukkit-mot-plugin\u003C/code> topic\u003C/li>\n\u003Cli>Reference Nukkit-MOT-related names in your build files, such as:\n\u003Cul>\n\u003Cli>\u003Ccode>memoriesoftime\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>nukkit-mot\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Cp>If your plugin supports both NukkitX and Nukkit-MOT, generic \u003Ccode>cn.nukkit:*\u003C/code> dependencies are acceptable.\u003C/p>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Important:\u003C/strong> MOTCI is not a repository submission channel. Your plugin still needs to be discoverable from GitHub.\u003C/p>\n\u003C/blockquote>\n\u003Ch3>PowerNukkitX (\u003Ccode>pnx\u003C/code>)\u003C/h3>\n\u003Cp>Recommended setup:\u003C/p>\n\u003Cul>\n\u003Cli>Prefer \u003Ccode>src/main/resources/powernukkitx.yml\u003C/code>\u003C/li>\n\u003Cli>Add \u003Ccode>powernukkitx-plugin\u003C/code> or \u003Ccode>pnx-plugin\u003C/code>\u003C/li>\n\u003Cli>Reference PowerNukkitX-related dependencies, such as:\n\u003Cul>\n\u003Cli>\u003Ccode>cn.powernukkitx\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>powernukkitx\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Cp>Using \u003Ccode>powernukkitx.yml\u003C/code> is the clearest way to make a PowerNukkitX module indexable.\u003C/p>\n\u003Ch3>Lumi (\u003Ccode>lumi\u003C/code>)\u003C/h3>\n\u003Cp>Recommended setup:\u003C/p>\n\u003Cul>\n\u003Cli>Use \u003Ccode>src/main/resources/plugin.yml\u003C/code>\u003C/li>\n\u003Cli>Add the \u003Ccode>lumi-plugin\u003C/code> topic\u003C/li>\n\u003Cli>Reference Lumi in Gradle or Maven, such as:\n\u003Cul>\n\u003Cli>\u003Ccode>repo.luminiadev.com\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>com.koshakmine:lumi\u003C/code>\u003C/li>\n\u003Cli>Maven coordinates containing \u003Ccode>com.koshakmine\u003C/code> and \u003Ccode>lumi\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch2>Manifest Requirements\u003C/h2>\n\u003Cp>At least one supported manifest must exist in the standard path:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>src/main/resources/plugin.yml\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>src/main/resources/powernukkitx.yml\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Cp>Example:\u003C/p>\n\u003Cpre>\u003Ccode class=\"language-yaml\">\u003Cspan class=\"hljs-attr\">name:\u003C/span> \u003Cspan class=\"hljs-string\">MyNukkitPlugin\u003C/span>\n\u003Cspan class=\"hljs-attr\">version:\u003C/span> \u003Cspan class=\"hljs-number\">1.0\u003C/span>\u003Cspan class=\"hljs-number\">.0\u003C/span>\n\u003Cspan class=\"hljs-attr\">main:\u003C/span> \u003Cspan class=\"hljs-string\">com.example.MyNukkitPlugin\u003C/span>\n\u003Cspan class=\"hljs-attr\">api:\u003C/span> [\u003Cspan class=\"hljs-string\">&#x27;1.0.0&#x27;\u003C/span>]\n\u003Cspan class=\"hljs-attr\">authors:\u003C/span> [\u003Cspan class=\"hljs-string\">&#x27;AuthorName&#x27;\u003C/span>]\n\u003Cspan class=\"hljs-attr\">description:\u003C/span> \u003Cspan class=\"hljs-string\">A\u003C/span> \u003Cspan class=\"hljs-string\">short\u003C/span> \u003Cspan class=\"hljs-string\">description\u003C/span> \u003Cspan class=\"hljs-string\">of\u003C/span> \u003Cspan class=\"hljs-string\">my\u003C/span> \u003Cspan class=\"hljs-string\">plugin\u003C/span>\n\u003Cspan class=\"hljs-attr\">website:\u003C/span> \u003Cspan class=\"hljs-string\">https://example.com\u003C/span>\n\u003Cspan class=\"hljs-attr\">depend:\u003C/span> []\n\u003Cspan class=\"hljs-attr\">softdepend:\u003C/span> []\n\u003C/code>\u003C/pre>\n\u003Ch3>Required Metadata\u003C/h3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Field\u003C/th>\n\u003Cth>Required\u003C/th>\n\u003Cth>Description\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>name\u003C/code>\u003C/td>\n\u003Ctd>Yes\u003C/td>\n\u003Ctd>Plugin name\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>version\u003C/code>\u003C/td>\n\u003Ctd>Yes\u003C/td>\n\u003Ctd>Plugin version\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>main\u003C/code>\u003C/td>\n\u003Ctd>Yes\u003C/td>\n\u003Ctd>Main class path\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>api\u003C/code>\u003C/td>\n\u003Ctd>Yes\u003C/td>\n\u003Ctd>Supported API version(s)\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>authors\u003C/code>\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003Ctd>Author list\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>description\u003C/code>\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003Ctd>Short summary\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>website\u003C/code>\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003Ctd>Homepage URL\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>depend\u003C/code>\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003Ctd>Required dependencies\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>softdepend\u003C/code>\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003Ctd>Optional dependencies\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003Ch2>Multi-Module Repositories\u003C/h2>\n\u003Cp>If your repository contains multiple plugin modules:\u003C/p>\n\u003Cul>\n\u003Cli>each module should have its own manifest in \u003Ccode>src/main/resources/\u003C/code>\u003C/li>\n\u003Cli>each module is indexed separately\u003C/li>\n\u003Cli>the generated IDs will look like \u003Ccode>owner/repo--module-suffix\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Cp>Examples:\u003C/p>\n\u003Cul>\n\u003Cli>Single-module repository: \u003Ccode>cooldev/myplugin-repo\u003C/code>\u003C/li>\n\u003Cli>Multi-module repository: \u003Ccode>cooldev/myplugin-repo--modules-economy\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Ch2>Versions And Downloads\u003C/h2>\n\u003Cp>Your repository can be indexed without a GitHub Release.\u003C/p>\n\u003Cp>However, if you want users to see downloadable versions on NukkitHub, publish releases this way:\u003C/p>\n\u003Col>\n\u003Cli>Create a GitHub Release\u003C/li>\n\u003Cli>Attach one or more \u003Ccode>.jar\u003C/code> files\u003C/li>\n\u003Cli>Use the release title and body as your version title and changelog\u003C/li>\n\u003C/ol>\n\u003Cp>Only \u003Cstrong>GitHub Releases\u003C/strong> are indexed as plugin versions.\u003C/p>\n\u003Ch2>Categories\u003C/h2>\n\u003Cp>Add category topics to help users find your plugin:\u003C/p>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Category\u003C/th>\n\u003Cth>Topic\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Adventure\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-adventure\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Cursed\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-cursed\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Decoration\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-decoration\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Economy\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-economy\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Equipment\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-equipment\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Food\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-food\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Game Mechanics\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-game-mechanics\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Library\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-library\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Magic\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-magic\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Management\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-management\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Minigame\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-minigame\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Mobs\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-mobs\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Optimization\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-optimization\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Social\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-social\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Storage\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-storage\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Technology\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-technology\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Transportation\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-transportation\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Utility\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-utility\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>World Generation\u003C/td>\n\u003Ctd>\u003Ccode>nukkit-world-generation\u003C/code>\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003Ch2>README, Icon, And Gallery\u003C/h2>\n\u003Cp>To make your listing look complete after inclusion:\u003C/p>\n\u003Ch3>README\u003C/h3>\n\u003Cp>Your \u003Ccode>README.md\u003C/code> becomes the main long description.\u003C/p>\n\u003Cp>Recommended:\u003C/p>\n\u003Cul>\n\u003Cli>explain what the plugin does\u003C/li>\n\u003Cli>show usage screenshots\u003C/li>\n\u003Cli>include installation steps\u003C/li>\n\u003Cli>keep links valid and public\u003C/li>\n\u003C/ul>\n\u003Ch3>Icon\u003C/h3>\n\u003Cp>To add a custom icon:\u003C/p>\n\u003Col>\n\u003Cli>place \u003Ccode>logo.png\u003C/code> or \u003Ccode>icon.png\u003C/code> in \u003Ccode>.github/img/\u003C/code> or the repository root\u003C/li>\n\u003Cli>use PNG format\u003C/li>\n\u003Cli>recommended size: \u003Ccode>256x256\u003C/code>\u003C/li>\n\u003C/ol>\n\u003Cp>If no icon is found, the repository owner's avatar is used.\u003C/p>\n\u003Ch3>Gallery Images\u003C/h3>\n\u003Cp>To add screenshots:\u003C/p>\n\u003Col>\n\u003Cli>place PNG files in \u003Ccode>.github/img/\u003C/code>\u003C/li>\n\u003Cli>do not use \u003Ccode>logo.png\u003C/code> or \u003Ccode>icon.png\u003C/code> for screenshots\u003C/li>\n\u003Cli>additional README images may also be picked up as gallery content\u003C/li>\n\u003C/ol>\n\u003Ch2>License\u003C/h2>\n\u003Cp>Add a standard license file if possible.\u003C/p>\n\u003Cp>NukkitHub will try to read license information from:\u003C/p>\n\u003Col>\n\u003Cli>GitHub's license detection\u003C/li>\n\u003Cli>a \u003Ccode>LICENSE\u003C/code> file in the repository root\u003C/li>\n\u003C/ol>\n\u003Cp>If no open-source license is found, the project may appear as All Rights Reserved.\u003C/p>\n\u003Ch2>When A Plugin Will Not Be Indexed\u003C/h2>\n\u003Cp>Your plugin may be skipped or removed if any of the following is true:\u003C/p>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Situation\u003C/th>\n\u003Cth>Result\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Repository is private\u003C/td>\n\u003Ctd>Not indexed\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Repository is archived\u003C/td>\n\u003Ctd>Removed or skipped\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Repository is a template\u003C/td>\n\u003Ctd>Skipped\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Repository has \u003Ccode>noindex\u003C/code> topic\u003C/td>\n\u003Ctd>Skipped or removed\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>No supported manifest exists in \u003Ccode>src/main/resources/\u003C/code>\u003C/td>\n\u003Ctd>Not discovered correctly\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>The runtime is unclear and there is no matching topic or dependency signal\u003C/td>\n\u003Ctd>Module may be skipped\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003Cp>To remove your plugin manually, add the \u003Ccode>noindex\u003C/code> topic.\u003C/p>\n\u003Ch2>Tips To Get Indexed Faster\u003C/h2>\n\u003Col>\n\u003Cli>Add the correct runtime topic immediately\u003C/li>\n\u003Cli>Put the manifest in \u003Ccode>src/main/resources/\u003C/code> from the start\u003C/li>\n\u003Cli>Fill in \u003Ccode>name\u003C/code>, \u003Ccode>version\u003C/code>, \u003Ccode>main\u003C/code>, and \u003Ccode>api\u003C/code>\u003C/li>\n\u003Cli>Keep README and repository metadata public\u003C/li>\n\u003Cli>Publish a GitHub Release if you want downloadable versions visible\u003C/li>\n\u003Cli>Add category topics, icon, and screenshots after the plugin is indexed\u003C/li>\n\u003C/ol>\n\u003Ch2>Example Repository Structure\u003C/h2>\n\u003Cpre>\u003Ccode class=\"language-text\">my-nukkit-plugin/\n├── .github/\n│   └── img/\n│       ├── logo.png\n│       ├── gallery1.png\n│       └── gallery2.png\n├── src/\n│   └── main/\n│       ├── java/\n│       │   └── com/example/\n│       │       └── MyPlugin.java\n│       └── resources/\n│           └── plugin.yml\n├── README.md\n└── LICENSE\n\u003C/code>\u003C/pre>\n\u003Ch2>Troubleshooting\u003C/h2>\n\u003Ch3>My plugin is not showing up\u003C/h3>\n\u003Cp>Check these items in order:\u003C/p>\n\u003Col>\n\u003Cli>repository is public\u003C/li>\n\u003Cli>repository is not archived\u003C/li>\n\u003Cli>repository does not have the \u003Ccode>noindex\u003C/code> topic\u003C/li>\n\u003Cli>manifest exists in \u003Ccode>src/main/resources/\u003C/code>\u003C/li>\n\u003Cli>the runtime topic is set correctly\u003C/li>\n\u003Cli>build files clearly reference the runtime you are targeting\u003C/li>\n\u003Cli>wait up to 1 hour for the next indexing cycle\u003C/li>\n\u003C/ol>\n\u003Ch3>My project is indexed but has no downloads\u003C/h3>\n\u003Cp>Make sure you created a \u003Cstrong>GitHub Release\u003C/strong> and attached a \u003Ccode>.jar\u003C/code> file.\u003C/p>\n\u003Ch3>My runtime is detected incorrectly\u003C/h3>\n\u003Cp>Use the topic that matches your runtime and make your build files reference the matching core clearly.\u003C/p>\n",1773156789150]