Skip to content

About

Monorepo for Pumpkin plugins written in TypeScript (built on pumpkin-api-ts).

Topics

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Latest commit

 

History

1,064 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pumpkin-plugins

License CI codecov Contributors GitHub Commit Activity

This monorepo brings together plugins for Pumpkin, the tools used to build and release them, reusable GitHub Actions, and VS Code extensions. Most components are written in TypeScript. It was originally built on and inspired by pumpkin-api-ts.

Browse the public documentation site for guides, component overviews, and generated API references.

Actions

Action Description
Publish to Pumpkin Market Upload a released Pumpkin plugin WebAssembly file to its existing Market listing
Sign Pumpkin plugin Sign Pumpkin plugin WebAssembly files with their Ed25519 release metadata
Update Pumpkin Market Listing Update Pumpkin Market listing metadata from a JSON file or direct inputs
Verify Pumpkin plugin Verify Pumpkin plugin signatures with optional public-key pinning and metadata checks

Plugins

Plugin Description License
AppleSkinPumpkin The plugin syncs saturation and exhaustion so AppleSkin can show accurate food stats. MIT
BedrockAddonManager (unreleased) BedrockAddonManager hosts Bedrock resource packs over HTTP, reads their manifests and prints the pumpkin.toml block that makes Pumpkin offer them to players. MIT
DistantHorizonsSupportPumpkin This unofficial integration lets Java players use Distant Horizons with terrain from your Pumpkin server. GPL-3.0-or-later
DynamicLightsPumpkin DynamicLightsPumpkin shows temporary light around supported items and nearby entities without changing the world. MIT
TabDisplay (unreleased) TabDisplay formats Java player-list names, headers, and footers. It leaves Bedrock lists unchanged. MIT
UPnPumpkin UPnPumpkin asks UPnP or NAT-PMP routers to forward server ports so players outside your network can connect. Other plugins can request mappings too. MIT
Waypoints Waypoints lets you create shared locations, control who can access each one, show them on a Java HUD, and look them up with PumpkinPIE placeholders. MIT

Tools

Package Description License
@pumpkin-plugins/pumpkin-pie-api PumpkinPIE client for protocol checks and placeholder expansion MIT
@pumpkin-plugins/upnpumpkin-api Request and release router port mappings through UPnPumpkin MIT
@pumpkin-plugins/build Shared build tool for the plugins MIT
@pumpkin-plugins/codemod Codemod runner for Pumpkin plugins MIT
@pumpkin-plugins/config Schema-driven TOML config for plugins MIT
create-pumpkin-plugin Create a minimal Pumpkin plugin project MIT
@pumpkin-plugins/cspell-dict-minecraft Minecraft terminology for Code Spell Checker and cspell MIT
@pumpkin-plugins/docs Generates component READMEs, doc links, and repository catalogs MIT
@pumpkin-plugins/minecraft-colors Chalk-like Minecraft text formatting for plugins MIT
@pumpkin-plugins/plugin-kit Shared lifecycle, command, task, logging, and file helpers for plugins MIT
@pumpkin-plugins/port-mapping UPnP and NAT-PMP port mapping MIT
@pumpkin-plugins/pumpkin-api TypeScript API for PumpkinMC plugins MIT
@pumpkin-plugins/signing Ed25519 signing for plugin builds MIT
@pumpkin-plugins/static-analysis Static JavaScript and TypeScript module graph analysis MIT
@pumpkin-plugins/static-hermes-runtime Static Hermes Runtime shim for Pumpkin plugin components MIT
@pumpkin-plugins/terrain Shared terrain capture and access contracts MIT
@pumpkin-plugins/test-harness Runs plugins on a real Pumpkin in vitest MIT
@pumpkin-plugins/update-check Check plugin versions against Pumpkin Market MIT
@pumpkin-plugins/wasi-capabilities WASI capability metadata for Pumpkin plugins MIT

VS Code extensions

Extension Description License
Minecraft Terms Minecraft terminology for Code Spell Checker MIT

Getting started

Use the Node.js version pinned in .node-version and the pnpm version in package.json. From the repository root, install dependencies, build the plugins, and run the unit-test suite:

pnpm install
pnpm build
pnpm test

Creating a plugin

Run the generator to scaffold a plugin in packages/:

pnpm gen

It asks for a folder name, a plugin name, and a description, then registers the package for releases and generates its README. To provide those answers without prompts, pass them in order:

pnpm gen --args my-plugin MyPlugin "Does a thing"

See Creating a plugin for the generated files and next steps.

Creating an action or extension

Run pnpm gen:action to scaffold a GitHub Action, or pnpm gen:extension to create a VS Code extension. Their guides explain what each generator creates and how releases work: Creating an action and Creating an extension.

Command reference

Run these commands from the repository root. Most workspace tasks use Turborepo, which reuses cached results for packages that haven't changed.

Command What it does
pnpm gen Scaffold a new plugin; see Creating a plugin.
pnpm gen:action Scaffold a GitHub Action; see Creating an action.
pnpm gen:extension Scaffold a VS Code extension; see Creating an extension.
pnpm build Build every plugin to packages/*/build/*.wasm.
pnpm lint Run Biome's lint, formatting and import-order checks, followed by the JSDoc check. Use pnpm lint:fix to apply fixes.
pnpm lint:commits Check the latest commit message against the Conventional Commits rules used by CI.
pnpm typecheck Typecheck every package in the workspace.
pnpm test Run the workspace unit tests.
pnpm coverage Run the unit tests of every package outside extensions/, then the script and action tests, with V8 coverage; LCOV reports go under package and action coverage directories.
pnpm test:scripts Run the tests for repository checks, release scripts and agent hooks.
pnpm test:integration Build the plugins, then run their tests against a real Pumpkin server. Set PUMPKIN_BIN to choose the server binary; see Testing.
pnpm readme Regenerate component READMEs, catalogs and documentation references.
pnpm check Check release configuration, package metadata and docs against the repository; see Code style.
pnpm fix Check release configuration, repair package metadata, regenerate READMEs and documentation links, then apply lint fixes.
pnpm dev:docs Generate API references and serve the documentation site locally.
pnpm docs Generate API references and build the full static documentation site.
pnpm docs:api Generate type declarations and API reference pages for the documentation site.
pnpm docs:site Build the VitePress site from the generated API pages.
pnpm docs:preview Preview the most recently built documentation site.
pnpm package Collect built plugins in dist/<plugin>.wasm and create checksums. The reusable action handles signing separately; see CI and releases.

Documentation

To find the Markdown source pages behind the guides, start with docs/README.md.

GitHub Actions

Reusable actions live in actions/{name}/, with their own metadata, implementation and README. Release Please versions and tags each action independently, so releasing one action doesn't also ship plugin builds or other actions.

About

Monorepo for Pumpkin plugins written in TypeScript (built on pumpkin-api-ts).

Topics

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Contributors

Languages