A minecraft cloud system using docker & netty supporting multiroot & multiproxy for learning purpose
This project is only intended as a learning experience. You should not use this cloud system for production, as no support will be given and the project may be very inactive and lack features.
I would recommend you to use one of the following cloud systems:
- master (base):
Manager of the cloud, commander of nodes
Maybe known as manager or base from other cloud systems - node (base, remote):
Responsible for starting & stopping of services (minecraft servers, bungee proxies), connects to the master.
Probably known as wrapper or slave from other cloud system - wrapper (remote):
Runs a service, connects to the master.
Probably known as runner or bridge from other cloud systems
- cloud.join.maintenance: Player with this permission will be able to join during maintenance (Cloud-Bridge)
- cloud.join.full: Player with this permission will be able to join although the server is full (Cloud-Bridge)
- cloud.auto.op: Player with this permission will automatically be set as operators on bukkit servers (Cloud-Perms)
- cloud.notify: Player with this permission will receive messages when services are started/stopped (Cloud-Notify)
- cloud.chat.color: Player with this permission will be able to send colored message using
&
(Cloud-ChatTab) - cloud.command.use: Player with this permission will be able to use
/cloud
commands (Cloud.Bridge)
- Bridge: Allows the use of player management possible
- Perms: Allows the use of an integrated permission system
- Cloudflare: Allows the use of a multiproxy setup using round-robin dns load balancing
- Notify: Allows the sending of service update messages to players
- Proxy: Allows the use of proxy systems & configs
- Tablist Replacements:
{ping}
The ping of the player provided by the proxy{name}
The name of the player{server}
The name of the server the player is currently on{proxy}
The name of the proxy the player is connected to{node}
The name of the proxy's node the player is connected to{group.name}
The name of the player's highest group{group.color}
The color of the player's highest group{group.display}
The display name of the player's highest group{players.online}
The count of online players on the network{players.max}
The max count of player on the network defined in global.json as maxPlayers
- Motd Replacements:
{proxy}
The name of the proxy the player is pinging{node}
The name of the proxy's node the player is pinging{players.online}
The count of online players on the network{players.max}
The max count of player on the network defined in global.json as maxPlayers
- Tablist Replacements:
- ChatTab: Runtime module to enable the use of chat formatting & name tags
- Message Replacements:
{message}
The message sent by the player{player.uuid}
The uuid of the player{player.name}
The name of the player{player.display}
The display name of the player{group.name}
The name of the player's highest group{group.color}
The color of the player's highest group{group.display}
The display name of the player's highest group
- Message Replacements:
π | Name / Label / Description |
---|---|
βοΈ | Logging |
βοΈ | Basic Networking with Netty |
βοΈ | Advanced Networking: Chunked Packets & Queries |
βοΈ | Node Management + Authentication |
βοΈ | Request API with Packets |
βοΈ | Event System |
βοΈ | Master TemplateStorage -> Download |
βοΈ | Docker: Wrapper Setup |
βοΈ | Service Start / Stop |
βοΈ | Wrapper Authentication |
β | Proper Docker Connection (Not Legacy) |
π§ | Node Information Cycle & Timeout |
β | Node Load Balancing |
β | Auto Client Reconnect |
β | Encryption for sockets |
β | Pre launch setup |
π§ | REST API |
π§ | Websocket API for Dashboard |
β | SSL Encryption for http server |
βοΈ | ServiceInfo publish |
βοΈ | Basic Service Events |
π§ͺ | Service auto start (minCount & maxCount) |
π§ͺ | Shutdown mechanism |
β | Template Cache |
βοΈ | Proxy Bridge |
π§ | Support for Velocity |
π§ | Support for MineStorm |
π§ | Support for SpongePowered |
βοΈ | Dynamic Proxy Server Registry |
π§ͺ | MultiProxy Cord |
βοΈ | Lobby Balancing |
βοΈ | Remote Database API |
π§ͺ | Service Timeout (Crash detection) -> Delete -> Start new |
β | Messenger System for Modules |
βοΈ | Bukkit Bridge |
π§ | Implement all driver functions for wrapper & node (remote) |
β | Wrapper & Node to Master Logging |
βοΈ | Player Executor |
βοΈ | Global Player Management |
βοΈ | Permission System |
π§ͺ | Permission Chat & Tab Extension |
βοΈ | Module System (Master, Node?, Wrapper?) |
βοΈ | Module Copy |
βοΈ | Notify Module |
βοΈ | Synced Proxy Module |
β | Service Screens |
βοΈ | Message Translations |
βοΈ | Advanced Translations (link to other messages & chatevents eg run command) |
βοΈ | Proxy Commands (+ Cloud Command API?) |
π§ | Cloud Commands |
β | Migrate to Gradle |
β | Relocate google depends & netty to prevent issues from server software using older versions |
Service Deployments | |
Static Services | |
NPC Module | |
Signs Module | |
CloudAPI Implementation |
βοΈ
Finished
π§ͺ
Experimental
π§
In Progress
β
Planned
β οΈ
Planned (Unimportant)