AcoDev/Addons

★ 0Forks 0PythonGitHub ↗Compare

README

Addons

An Endstone plugin that installs Minecraft Bedrock add-ons from local files or remote URLs. Version 0.2.1 targets Endstone 0.11.8 and API 0.11.

Features

  • Installs .mcpack, .mcaddon, and .zip files from the server's addons/ folder.
  • Supports behavior packs, resource packs, root-level manifests, and .mcpack files nested inside .mcaddon archives.
  • Downloads remote add-ons and only reprocesses files when their footprint changes.
  • Adds entries to world_behavior_packs.json and world_resource_packs.json without removing pre-existing packs.
  • Never deletes installed pack folders when a source archive is missing.
  • Preserves the legacy plugins/configuration/addons/config.json location when it already exists.

Install

Build the wheel from this directory:

python -m pip wheel . --no-deps --wheel-dir dist

Copy the resulting endstone_addons-0.2.1-py3-none-any.whl into the Endstone server's plugins/ directory, then start the server.

On first start, the plugin creates:

bedrock_server/
|-- addons/
|   `-- processed.json
`-- plugins/
    `-- addons/
        `-- config.json

The default world is read from level-name in server.properties. The generated configuration can be edited before the next start:

{
    "world": "Bedrock level",
    "addons": [
        {
            "name": "Some Cool Addon",
            "url": "https://example.com/some-addon.mcaddon"
        },
        {
            "name": "Another Addon",
            "url": "https://example.com/another-addon.zip"
        }
    ]
}

config.json must be valid JSON, so comments are not supported.

Usage

Place local add-on archives in bedrock_server/addons/, or add remote downloads to config.json. During startup, the plugin extracts changed packs and updates the selected world's pack lists. When a pack changes, it shuts the server down cleanly once so the world can load the new packs on the next start.

For GitHub downloads, use a URL that returns the archive itself. For example, a codeload URL provides useful change headers more reliably than a GitHub HTML page.

Contributors

AcoDevMih4n

Issues