API server and modernized control panel for PocketMine servers.

Overview

WebConsole

API server and modernized control panel for PocketMine servers.

The WebConsole plugin provides an HTTP API server that can be extended with other plugins through intuitive API involving minimal logic related to web development so that developers can focus on the actual logic and let WebConsole handle the GUI.

The project comes with a static web app that connects to this API server, providing visualization of server data and a user-friendly GUI to control the server.

Objectives

Goals

  • Provide a basic medium of inter-process communication to control a PocketMine server.
  • Provide an extensible API that allows plugins to expose their functionality to other processes.
  • Provide a user-friendly GUI to view server data and trigfer actions on the server, eventually phasing out stdin commands.

Non-goals

  • WebConsole does not implement any permission management or authentication. Hence, it should not be a publicly accessible API. It only serves as an RPC server, but does not come with any permission management. Any access to the WebConsole HTTP server, other than access by the sole super user, must be relayed through a more secure layer that implements authentication.
  • WebConsole is not a server deployment manager. It does not control the startup/shutdown lifecycle of a server. The WebConsole HTTP server runs inside a PocketMine server, not the other way round.
  • WebConsole is not scalable for network management. While it is designed to serve as a building block for centralized network management, it is not designed to be connected from every other node in a server network. A central network manager can call WebConsole APIs to control an individual server, but WebConsole itself should not be used as the network manager itself.

Concepts

Objects

Objects are the primary interface for WebConsole. Objects are grouped into different kinds, where the web app would display a list of each object kind.

Builtin object kinds include:

  • Online Player
  • Account (including online and offline players)
  • World
  • Server (only has one object)
  • WebConsole (only has one object)

Other plugins can register new object kinds. The plugin that registers the object kind is responsible for notifying the creation and deletion of its objects.

Details

Details are data associated to an object. Details can be of any scalar or complex type. The following types have builtin support for WebConsole web app:

  • String (including specialized types like datetime and enums)
  • Number
  • Boolean
  • Time series
  • References to other objects
  • Lists/Structs of the types above

Other plugins can register new object details for existing object kinds. Detail provision is async, continuous and active, which means other plugins need to notify WebConsole API when an object detail is updated.

Mutations

While objects and details provide read access to the server, mutations allow clients to actively modify the server.

Plugins can register new mutations with explicitly declared parameter types. If a parameter type is an object, it gets linked in the object display page. For example, a mutation called "ban player" accepts an Account object parameter, so a "ban player" button is available from each account display page.

Mutation responses can be progressive. Plugins can return an asynchronous stream of "progress snapshots" that are rendered in the client similar to detail views. A mutation completes when server returns with a snapshot that flags an end-of-stream.

You might also like...
This repository demonstrates exemplary implementation of chat using HTTP and Websocket servers in PHP using Kraken Framework components.
This repository demonstrates exemplary implementation of chat using HTTP and Websocket servers in PHP using Kraken Framework components.

This repository demonstrates exemplary implementation of chat using HTTP and Websocket servers in PHP using Kraken Framework components.

 Execute Artisan commands on remote servers
Execute Artisan commands on remote servers

Execute Artisan commands on remote servers This package provides a command to execute Artisan command on a remote server. Here's an example that will

Block ads for other servers.

[] NoAdvertisings| v0.0.1 Block ads for other servers. Features Block server ads. Easy to setup. Block server address ads when chatting, using command

Custom NPC for pocket-mine servers
Custom NPC for pocket-mine servers

[Description] Click on above picture to see tutorial video of the plugin. This is an NPC plugin with super easy customization for pocket-mine. Note: W

A tool for managing SSH key access to any number of servers.

Revons - SSH Key Authority Features Easily manage SSH key access for all accounts on your servers. Manage user access and server-to-server access rule

Stop players from having spaces in their name in Pocketmin Servers.
Stop players from having spaces in their name in Pocketmin Servers.

SpaceRemover Engelish Stop players from having spaces in their name in Pocketmin Servers. Preview Help ‼ If your server does not have players with nam

Gamecom.io - Find the best game, community, mod, or servers for you! Data retrieved from @modcommunity.
Gamecom.io - Find the best game, community, mod, or servers for you! Data retrieved from @modcommunity.

A website made by Christian Deacon that helps users find any game, community, mod, or server. All data retrieved by @modcommunity. This website is ope

A plugin manager for PocketMine-MP downloads plugin from PocketMine-MP official plugin repository

oh-my-pmmp A plugin manager for PocketMine-MP Getting Started Prerequisites Your server MUST RUN the latest version of PocketMine. Installation From P

A MCPE server software that backporting new Minecraft: Bedrock Edition to older PocketMine versions with better stability and performance.
A MCPE server software that backporting new Minecraft: Bedrock Edition to older PocketMine versions with better stability and performance.

CoarseMC is a server software that backports new Minecraft: Bedrock Edition versions to older PocketMine versions with better stability and performance, while retaining as many features from the new PocketMine-MP versions as possible.

Owner
Jonathan Chan Kwan Yin
a.k.a. SOFe, @chankyin. Infrastructure developer. I Go at daytime and Rust at night.
Jonathan Chan Kwan Yin
Creates a WorldBorder for PocketMine-MP servers!

This plugin is not yet ready for Poggit or download It is going through mass changes over the next few days Message my Discord to recieve an older eli

Soulz 9 Sep 5, 2021
✨A simple way to create a GUI on servers based on PocketMine-MP 4.0!✨

FakeInventories ✨ A simple way to create a GUI on servers based on PocketMine-MP 4.0! ✨ (https://youtu.be/D1NIx8E2UPg) Features Fast opening without a

iDarkQ 6 Nov 20, 2022
A Customizable Fishing Rod for PocketMine-MP servers.

Custom Fishing Rod About [ENG] This is a PocketMine-MP (or forks) plugin that implements a customizable fishing rod to your server. [FRA] C'est un plu

null 6 May 25, 2022
Allows the connection of Minecraft: JE clients to PocketMine servers. Made for PM4

JavaPlayer Allows the connection of Minecraft: JE clients to PocketMine servers. Made for PM4 MCJE VER: 1.18.2 Need implemented Chunks (convert proble

kanison konkla 30 Dec 7, 2022
The best announcer for PocketMine-MP 4.0 servers, make messages for your users very easily

BroadcastACM The best announcer for PocketMine-MP 4.0 servers, make messages for your users very easily. Make the best announcements for your server w

fernanACM 3 May 30, 2022
A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch screens with a resolution of 1024x600 connected to a Raspberry Pi.

EDStatusPanel A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch scr

marcus-s 24 Oct 4, 2022
A plugin that allows you to hear the sound "Welcome to the server!" when you join the server by NhanAZ for PocketMine-MP

General A plugin that allows you to hear the sound "Welcome to the server!" when you join the server by NhanAZ for PocketMine-MP Contacts You can cont

NhanAZ's PocketMine-MP Plugins 10 Sep 27, 2022
Cool economy plugin for PM-like servers. API included.

Economy Description Cool and easy to use economy plugin API: 2.0.0 Plugin version: 1.0.0 Default money value on first join: 1000 (can be changed in co

Artem Turov 0 Feb 4, 2022
A small library to help run PHP servers easily and quickly.

PHP Server A small library to help run PHP servers easily and quickly. Installation composer require ahmard/php-server Usage PHP Built-In Server An i

Ahmad Mustapha 9 Dec 31, 2022
Configure Magento 2 to send email using Google App, Gmail, Amazon Simple Email Service (SES), Microsoft Office365 and many other SMTP (Simple Mail Transfer Protocol) servers

Magento 2 SMTP Extension - Gmail, G Suite, Amazon SES, Office 365, Mailgun, SendGrid, Mandrill and other SMTP servers. For Magento 2.0.x, 2.1.x, 2.2.x

MagePal :: Magento Extensions 303 Oct 7, 2022