Skip to content

Instantly share code, notes, and snippets.

@SOF3
Last active November 5, 2020 02:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SOF3/bc47ccce0cbf9a464c30f522d534e8ca to your computer and use it in GitHub Desktop.
Save SOF3/bc47ccce0cbf9a464c30f522d534e8ca to your computer and use it in GitHub Desktop.

Poggit Try-Plugin Program

Rationale

To allow users to try out plugins without spending the time to install the plugin on their own server, server hosts are encouraged to provide free, temporary servers with the plugins preinstalled and preconfigured. Poggit users will be linked to the server hosts providing this service in the plugin page.

Poggit does not sell ads, so this is a great opportunity if you want to promote your server host through Poggit.

Conditions

This is a voluntary collaboration. No financial transactions are involved between Poggit and server hosts. This means Poggit provides the links to server hosts free of charge, and server hosts provide their servers free of charge. However, server hosts shall conform to the following conditions:

  • User data must be completely cleared for each session. This means world, configuration, database or other content generated by the previous user must be discarded before accessed by the next user.
    • An exemption applies to rate limit values for external API services.
  • The test server must be immediately ready for use. While the server host may, through web interface or otherwise, allow the user to change certain plugin settings, the plugin must be immediately testable by joining the server directly.
  • The test server must not use unspecified plugins that change gameplay or plugin behavior. However, non-game-changing plugins to assist host interface is acceptable.
  • The test server must use the latest stable PocketMine-MP version, with up to 168 hours of tolerance for delayed updates.
  • The server host may refuse to provide test servers for certain plugins, but they must return an empty array in the availability-check protocol in that case.
  • The server host may preconfigure the plugin with their own choice of default settings, as long as they are helpful in letting the user explore the features of the plugin.
  • Each provided setup shall not contain unnecessary plugins.

Violation of these conditions may result in downranking or even removal of the server host from the list of test server providers. Server hosts are strongly recommended to manually test every plugin setup they provide before declaring availability.

Web interface on Poggit

Poggit will render icons of the test server providers (as uploaded in the application form below) next to the "Direct download" button if they declare availability with at least one setup. An example display would be like below:

[Direct download]   Try plugin via
[How to install?]   [x] [x] [x] [x]

where each [x] is an icon for a server host.

When an [x] icon is clicked, a modal dialog is opened with each available setup listed as a link:

<tr>
  <td>
    {{ for each plugins as plugin }}
      <img src="{{icon for plugin}}"/>
    {{ end for }}
  </td>
  <td>
    <a href="{{ url }}">
      {{ description }}
    </a>
  </td>
  <td>
    {{ players }}
  </td>
  <td>
    {{ duration }}
  </td>
</tr>

Protocol

At every plugin page, web clients of Poggit will execute a HTTPS POST request via XmlHttpRequest API for each participating server host, with the following parameters (via application/json format):

  • plugin: The name of the plugin that the user is currently viewing
  • version: The version of the plugin that the user is targetting

The server host shall respond an array (in application/json format) of available plugin setups, each setup expressed as a JSON object with the following fields:

  • description: a string: the text to display
  • plugins: a string array: the names of plugins included in this setup
  • duration: an integer in seconds: the duration the test server session will last for; a minimum of 300 is required
  • players: an integer: the maximum number of clients allowed to join the test server; only accepting 1 player is acceptable
  • url: the URL to redirect users to upon clicking the link

By providing a setup, the server host asserts that it is able to allocate a dedicated test server for the specified duration in duration.

Note that appropriate Cross Origin Resource Sharing (CORS) policies shall be set up so that Poggit web clients can access it.

Application

To request your server host to be included in the list of test server providers, please fill in this form. We may test your service and contact you further via email to confirm your application. There is no deadline for this application form.

If you are still developing the corresponding mechanism for your server host but you confirm your plan to join this program, you are also welcome to notify @SOFe#4765 via Discord in advance.

Agenda

  • November 2020: receive applications
  • November-December 2020: Poggit frontend update
@SOF3
Copy link
Author

SOF3 commented Nov 4, 2020

The corresponding frontend changes for Poggit are expected to be deployed by the end of 2020.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment