dpt
Dynamic PTerodactyl -- Spin up/down Pterodactyl minecraft servers on demand!
dpt
PTynamic PTerodactyl
Velocity plugin for on-demand minecraft containers!
Features: - Start/Stop a Pterodactyl Container (hosting Minecraft) - Send player(s) to the new servers once it has started (or prompt them to do so)
*Ideal for communities with servers you don't want to run 24/7 (i.e.: For minigame servers)*
Demo
A word on security
I would advise that you make a specific user in your panel to use for your API keys for this! You only need to give this user 'START', 'STOP' and 'RESTART' permissions on a server by server basis.
This is not a matter of plugin functionality but it is always advisable to restrict what your API keys can do to restrict the potential for abuse.
See:

Config
See the following example:
``` api-url: "https://panel.example.com" api-key: "apiKeyHere" default-timeout: 120 # interval between times server's watchdog will check if its empty & online. startup-timeout: 120 # how long the plugin is willing to wait for a server to start before failing a request.
servers: survival-example: # this must match the `servers` section of `velocity.toml` display-name: Survival 2 # This can use minimessage! uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" watchdog: true # set to false or omit to disable watchdog entirely. timeout: 120 # watchdog timeout in seconds (default: 120s) ```
Note that using `/dpt reload` will not change `api-url`/`api-key`, you must restart the proxy in order to do this.
Commands
`/dptsend <player/all/current> <server> <promptPlayersToJoin/promptMeToSend>`
- player: send player to server - all: send all players on the proxy to server - current: CALLER MUST BE A PLAYER. send all players on current server to server. - promptPlayersToJoin: send a message to all players when the server is ready inviting them to the server. - promptMeToSend: send an interactive message when the server is ready that sends all the players on click.
`/dptsend server <origin server> <destination server> <promptPlayersToJoin/promptMeToSend>`
- origin server: any velocity server. - destination server: any velocity server dpt is configured to control. - promptPlayersToJoin: send a message to all players when the server is ready inviting them to the server. - promptMeToSend: send an interactive message when the server is ready that sends all the players on click.
`/dptserver <destination server> <immediate>`
- destination server: any velocity server dpt is configured to control - immediate: `dptserver` default behaviour should be to prompt when the server is ready. specifying this option will send the player as soon as the servers ready.
`/dptping <server>`
- server: any velocity server dpt is configured to control
`/dptwd <server> <start/stop>`
- server: any velocity server dpt is configured to control
Permissions:
- `dpt.send` Access to `/dptserver <destination server>`. Give this permission to users ideally (plus specific server permissions) - `dpt.send.others` Send other players on proxy/server (`/dptsend <player> <destination>`) - `dpt.send.all` Send all players on proxy/server (`/dptsend <all/current> <destination>`) - `dpt.send.<server-name>` Access to do `/dptserver <server-name>` and `/dptsend <player/all/current> <server-name>` where `server-name` is already configured. - `dpt.send.anywhere` Above permission but for any server. - `dpt.ping` Ping a server. - `dpt.watchdog` Access to `/dptwd`
License
Licensed under Apache 2.0.