Demonstration:



Presentation:
SkWrapper is a simple premium wrapper for your BungeeCord system, it will help you to manage server's creation and deletion the way you want it. (It's a BungeeCord plugin)
This is an independent plugin that can be used as addon for Skript with the free SkWaze addon: https://forums.skunity.com/resources/skwaze.344/
SkWaze will send the commands you want to execute to SkWrapper on your BungeeCord system.
Also your servers need to be on the same machine of your BungeeCord.
Installation:
First  you need a linux or windows VPS with at least 2GB of ram ! (with screen and Java 8 installed for linux)
1) Put SkWrapper.jar in your BungeeCord plugins directory
2) Start your BungeeCord and stop it after to generate files for SkWrapper
3) Add your spigot.jar in each server template
4) Create a new template in the templates directory
5) Start your BungeeCord again or do /skw refresh to refresh templates forlder
6) Don't forget to create a lobby server with SkWaze and Skript to execute your main commands at the beginning (if you want to use this plugin as an addon of skript)
7) Set enable-skwaze to true in the config.properties of SkWrapper if you want to send data accross your BungeeCord. (if you want to use this plugin as an addon of skript)
8) That's all! you can modify if you want the configuration files and the ram for each template in templates.yml (512MB by default for each server).
Commands:
/skw start [template_name] [server_name]
/skw stop [template_name] [server_name]
/skw delete <template_name> <server_name>
/skw refresh
/skw show
/skw stopall
/skw stopallfromtemplate <template_name>
/skw startall
/skw startallfromtemplate <template_name>
Permissions: skwrapper.use

Effects:
[waze] (add|create) [[a] new] [skwrapper] server named %string% (from|with) template %string%
[waze] (start|begin) [skwrapper] server named %string% (from|with) template %string%
[waze] (stop|end) [skwrapper] server named %string% (from|with) template %string%
[waze] (remove|delete) [skwrapper] server named %string% (from|with) template %string%
[waze] (send|teleport) %players% to [bungee[cord]] server %string%
[waze] (stop|end|shut[ ]down) [skwrapper] proxy [server]
[waze] refresh [all] [skwrapper] server templates
[waze] (start|begin) all [skwrapper] servers
[waze] (start|begin) all [skwrapper] servers from template %string%
[waze] (stop|end) all [skwrapper] servers
[waze] (stop|end) all [skwrapper] servers from template %string%

Expressions:
[waze] [number of] online player[s] on bungee[cord]
[waze] [bungee[cord]] server[s] list, [waze] [bungee[cord]] list of server[s]
[waze] [bungee[cord]] %player% server", "[waze] [bungee[cord]] server of %player%
[skwrapper] (global|network) variable [(from|of)] %object%

Conditions:
[skwrapper] server %string% is online
Events:
[skwrapper] player join[ing]
API example:
ServersManager.getInstance().createServer(TemplatesManager.TemplateInfo templateInfo, String string)
String server = "test_server";
String template = "lobby";
            TemplateInfo tp = TemplatesManager.getInstance().getTemplate(template);
            ServersManager.getInstance().createServer(tp, server);

Skript network variables example:
command /test:
    trigger:
        set network variable {mdr} to 5
        set network variable {player} to player
        set network variable {servers::*} to bungee server list
        send "Before: %network variable {mdr}%" to player
        set {wait} to network variable {mdr}
        set network variable {mdr} to {wait}+4
        send "After: %network variable {mdr}%" to network variable {player}
        send "%network variable {servers::*}% <- servers" to player
        set {servers::*} to "%network variable {servers::*}%,yo"
        send "%{servers::*}% <- new servers" to player
        send "%online player on bungee%" to player
        reset network variable {servers::*}
        send "reset: %network variable {servers::*}%" to players
on player join:
    send network message "Salut %event-player% bienvenue sur le serveur Waze" to proxy players
    send network title "Salut %event-player%" with subtitle "Bienvenue sur le serveur Waze" to proxy players for 1 second
    send network actionbar "Salut %event-player%" to proxy players
    run proxy command "alert Hello %event-player%"
on horse jump:
    broadcast "Mdr %event-entity% a sauté"
on swim:
    broadcast "Mdr %event-entity% nage"
command /addserver <text> <text>:
    trigger:
        add new server named arg-1 from template arg-2
        start server named arg-1 from template arg-2
command /uuid:
    trigger:
        set global variable {player.%player's uuid%} to 1
        send "Value: %global variable {player.%player's uuid%}%" to player
command /player:
	trigger:
		set network variable {player} to player
		send "Bonjour" to network variable {player}

Configuration:
#Here is the main configuration for SkWrapper
prefix: '&cSkWrapper> '
server-lobby: lobby
min-port: 3000
max-port: 6000
server-jar: spigot.jar
templates-location: templates
servers-location: servers
#That is all, just have fun with SkWrapper! :D

Help:
If you need help, just report it here.
Or contact me on Discord: Weefle#2074
To do:
✘: Not featured
✔: Already featured
⌛: Working on

- add delete effect to delete a server from the online list ✔
- some ameliorations ✔
- add expression to get the list of online servers ✔
- added own communication system ✔
- your ideas ⌛

[img] tag