Skip to content

Server integration via a Bukkit plugin #238

@AlexTMjugador

Description

@AlexTMjugador

Related problem or need

The discussion and research that led to #38 (comment) identified the need of providing non-technical server owners and hosting providers with easier means to run PackSquash, that readily work with the software stack they already know and use. However, we think that this need can be addressed better, despite the aforementioned suggestion being rejected.

Proposed solution

There are lots of server environment options, but a common component for the vast majority of them is a modded Minecraft server capable of running plugins targeting the Bukkit API. Therefore, a server plugin for integrating with PackSquash addresses the stated need in a significant way: server owners would be able to easily apply the knowledge they already have to install and configure a plugin, and hosting providers can leverage existing processes to provision servers with plugins.

As a rough guideline, the plugin could have the following features:

  • Fetch the suitable PackSquash binary (not necessary if the PackSquash API suggested in Add crate for API use #215 ever materializes in a form directly usable by plugins).
  • Manage the options passed to PackSquash.
    • These can be stored in a file in YAML or TOML format and passed as-is.
    • Alternatively, or in addition to the options file, configuration commands may be appropriate.
  • Run the PackSquash binary (or call its API), logging the results accordingly.
  • Configure the server to use the generated resource packs.
    • The plugin could also implement a minimal HTTP server to serve the pack to clients, enabling zero-configuration pack hosting (assuming no firewall configuration is required).

Alternative solutions

Given the sheer variety of server environments, alternatives such as Fabric mods could also address this need, but we have not yet identified other alternatives with a higher return on investment.

Additional context

The PackSquash Wiki has documentation on how to integrate it with other applications, which includes server plugins.

Since a PackSquash Bukkit plugin would not share code with the main PackSquash project, it's best to develop it on a separate repository. Please contact us if you have something working and would like to see it get some official recognition.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Accepted ideas

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions