CloudNet | The Cloud Network Environment Technology 2.1.5 Final

The Minecraft server cloud network environment technology

  1. Dytanic
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    Source Code:
    https://github.com/CloudNetService/CloudNet
    [​IMG]
    The project has ended, it's now a community project on GitHub.

    CloudNet is a cloud computing service for Minecraft networks. With a wide range of functionality, it offers both Minecraft Server (Craftbukkit / Spigot / Glowstone) and BungeeCord.

    CloudNet is dynamic, which means that the software automates and "limits" many already clear functionalities based on the pre-configuration or the "CloudDynamicServices" (CDS 2.1)

    CloudNet is to be the manager and network extension with new technologies the administration of a Minecraft network to the side. The second direction is the unlimited development possibility with its own modules, and extensive programming interfaces.
    Support for a wide range of needs and future opportunities, such as support for a Round Robin DNS management with the CloudFlare company service and the multi-proxy functionality for networks with more than 500 players, the project is important to enable high performance and stabilization for a Minecraft network.
    [​IMG]


    [​IMG]

    » Java 8
    » Linux/Windows server with min. 2GB DDR3 Memory and 2 vCores

    » A FTP/SFTP client for mange your linux or windows server

    [​IMG]
    Support:
    Spigot-Support » 1.7.x - 1.12.1 ● PaperSpigot, TacoSpigot, Hose, Torch

    BungeeCord-Support » 1.7.x - 1.12.1 ● Flexpipe, HexaCord, Waterfall, TraverTine

    Cloud:
    • dynamic server and BungeeCord starting via wrapper service
    • multi - root support
    • synchronized Bungeecord API
    • multi - BungeeCord via proxy group support
    • module support for master and wrapper
    • memory and resource manager
    • cpu provider
    • Network security system BungeeCord exploid protection
    • balance management system
    • server group system
    • template system
    • balanced template system
    • url template management
    • dynamic signs-system
    • dynamic entity server selectors
    • server portals
    • server priority system
    • dynamic memory management
    • automatic server start and stop system
    • server records of log files
    • a big game and bungeecord API
    • ingame minecraft commands
    • static servers
    • custom servers
    • auto start with player force
    • server group maintenance system
    • simple server management
    • proxy version selection
    • spigot version selection
    • premium join on network
    • log web service with /cloud log <server>
    • programming modules for cloudnet

    Sub features:
    • bungeecord motd and maintenance system
    • maintenance whitelist
    • multi random motd
    • multi - root support
    • synchronized Bungeecord API
    • multi - BungeeCord via proxy group support
    • fast connect
    • ssl support via "--ssl" argument on start script
    • permissions-system for bukkit and bungeecord
    • player register system
    • cloudflare support
    • alternative console header for the master, wrapper and bukkit/bungeecord
    • random hub-system and /hub command
    • global TabList
    • kick force fallback
    • auto updates
    • cloudflare support
    • round robin support via multi - proxy and cloudflare dns mangement
    Description:

    TabList:

    You can use colour codes and patterns.
    You can break the line via "\n"


    %server% - the currently server
    %proxy% - the currenttly proxy
    %online_players% - the currently network online count
    %max_players% - the currently max players
    %group% - the currently server group of the server

    Notify System:

    The permission which allows a player notify all incoming network messages is "cloudnet.notify".

    config.properties cloudnet-core

    Code (Text):
    notifysystem=true

    Maintenance Handling:

    The permission which allows a player to join if the network is in maintenance is use the "cloudnet whitelist" command or add you to the whitelist in the config.json for the group if you execute the command
    Code (Text):
          "proxyConfig": {
            "enabled": true,
            "maintenance": true,
            "motdsLayouts": [
              {
                "firstLine": "   §b§lCloud§f§lNet§8■ §7your §bfree §7cloudsystem §8§l【§f%version%§8§l】",
                "secondLine": "         §aOnline §8» §7We are now §aavailable §7to §ball §e%proxy%"
              }
            ],
            "maintenanceMotdLayout": {
              "firstLine": "   §b§lCloud§f§lNet§8■ §7your §bfree §7cloudsystem §8§l【§f%version%§8§l】",
              "secondLine": " §e%proxy% §bMaintenance §8» §7We are still in §bmaintenance"
            },
            "maintenaceProtocol": "§8➜ §bMaintenance §8§l【§c✘§8§l】",
            "maxPlayers": 1000,
            "fastConnect": false,
            "autoSlot": {
              "dynamicSlotSize": 0,
              "enabled": false
            },
            "tabList": {
              "enabled": true,
              "header": " \n§b§lCloud§f§lNet §8× §7your §bfree §7cloudsystem §8➜ §f%online_players%§8/§f%max_players%§f\n §8► §7Current server §8● §b%server% §8◄ \n ",
              "footer": " \n §7Twitter §8» §[email protected] §8▎ §7Discord §8» §fdiscord.gg/UNQ4wET \n §7powered by §8» §b§b§lCloud§f§lNet \n "
            },
            "playerInfo": [
              " ",
              "§b§lCloud§f§lNet §8× §7your §bfree §7cloudsystem",
              "§7Twitter §8» §[email protected]",
              "§7Discord §8» §fdiscord.gg/UNQ4wET",
              " "
            ],
            "whitelist": [
              "Dytanic",
              "Dytanic",
              "FemtoYT"
            ]
          }

    Full Join:
    The permission which allows a player to join if the network is full is
    "cloudnet.fulljoin".


    Multi templates:

    Since CloudNet2, you can create templates for each server group, which can be stored or retrieved via URL or LOCAL
    The URLTemplates must be a ".zip" archive

    Code (Text):
            {
              "name": "default",
              "backend": "LOCAL",
              "url": null
            },
            {
              "name": "urltemplate",
              "backend": "URL",
              "url": "https://dytanic.de/cloudnet2/TestTemplate.zip"
            }

    Server groups:
    The collection of server which use a server template is a group. You can modify the group settings like memory or similar.

    Code (Text):

    {
      "wrapper": [
        {
          "id": "Wrapper-1",
          "hostName": "xxx.xxx.xxx.xxx",
          "user": "admin"
        }
      ],
      "serverGroups": [
        {
          "name": "BauServer",
          "wrapper": [
            "Wrapper-1"
          ],
          "kickedForceFallback": false,
          "serverType": "BUKKIT",
          "groupMode": "STATIC",
          "globalTemplate": {
            "name": "globaltemplate",
            "backend": "LOCAL",
            "url": null,
            "processPreParameters": [],
            "installablePlugins": []
          },
          "templates": [
            {
              "name": "default",
              "backend": "LOCAL",
              "url": null,
              "processPreParameters": [],
              "installablePlugins": []
            }
          ],
          "memory": 1024,
          "dynamicMemory": 1024,
          "joinPower": 50,
          "maintenance": false,
          "minOnlineServers": 1,
          "maxOnlineServers": -1,
          "advancedServerConfig": {
            "notifyPlayerUpdatesFromNoCurrentPlayer": false,
            "notifyProxyUpdates": false,
            "notifyServerUpdates": false,
            "disableAutoSavingForWorlds": false
          },
          "percentForNewServerAutomatically": 0,
          "priorityService": {
            "stopTimeInSeconds": 180,
            "global": {
              "onlineServers": 0,
              "onlineCount": 100
            },
            "group": {
              "onlineServers": 1,
              "onlineCount": 100
            }
          },
          "settings": {
            "picture": "http://dytanic.de/cloudnetv2/cloud.png"
          }
        },
        {
          "name": "TestServer",
          "wrapper": [
            "Wrapper-1"
          ],
          "kickedForceFallback": false,
          "serverType": "BUKKIT",
          "groupMode": "DYNAMIC",
          "globalTemplate": {
            "name": "globaltemplate",
            "backend": "LOCAL",
            "url": null,
            "processPreParameters": [],
            "installablePlugins": []
          },
          "templates": [
            {
              "name": "default",
              "backend": "LOCAL",
              "url": null,
              "processPreParameters": [],
              "installablePlugins": []
            }
          ],
          "memory": 356,
          "dynamicMemory": 356,
          "joinPower": 100,
          "maintenance": false,
          "minOnlineServers": 0,
          "maxOnlineServers": 2,
          "advancedServerConfig": {
            "notifyPlayerUpdatesFromNoCurrentPlayer": false,
            "notifyProxyUpdates": false,
            "notifyServerUpdates": false,
            "disableAutoSavingForWorlds": true
          },
          "percentForNewServerAutomatically": 0,
          "priorityService": {
            "stopTimeInSeconds": 180,
            "global": {
              "onlineServers": 0,
              "onlineCount": 100
            },
            "group": {
              "onlineServers": 0,
              "onlineCount": 100
            }
          },
          "settings": {
            "picture": "http://dytanic.de/cloudnetv2/cloud.png"
          }
        },
        {
          "name": "Lobby",
          "wrapper": [
            "Wrapper-1"
          ],
          "kickedForceFallback": true,
          "serverType": "BUKKIT",
          "groupMode": "LOBBY",
          "globalTemplate": {
            "name": "globaltemplate",
            "backend": "LOCAL",
            "url": null,
            "processPreParameters": [],
            "installablePlugins": []
          },
          "templates": [
            {
              "name": "default",
              "backend": "LOCAL",
              "url": null,
              "processPreParameters": [],
              "installablePlugins": []
            }
          ],
          "memory": 356,
          "dynamicMemory": 512,
          "joinPower": 0,
          "maintenance": false,
          "minOnlineServers": 0,
          "maxOnlineServers": -1,
          "advancedServerConfig": {
            "notifyPlayerUpdatesFromNoCurrentPlayer": false,
            "notifyProxyUpdates": false,
            "notifyServerUpdates": false,
            "disableAutoSavingForWorlds": true
          },
          "percentForNewServerAutomatically": 50,
          "priorityService": {
            "stopTimeInSeconds": 300,
            "global": {
              "onlineServers": 1,
              "onlineCount": 100
            },
            "group": {
              "onlineServers": 0,
              "onlineCount": 100
            }
          },
          "settings": {
            "picture": "https://pbs.twimg.com/profile_images/904045982475833344/2_9F3qbm_400x400.jpg"
          }
        },
        {
          "name": "Premium",
          "wrapper": [
            "Wrapper-1"
          ],
          "kickedForceFallback": false,
          "serverType": "BUKKIT",
          "groupMode": "DYNAMIC",
          "globalTemplate": {
            "name": "globaltemplate",
            "backend": "LOCAL",
            "url": null,
            "processPreParameters": [],
            "installablePlugins": []
          },
          "templates": [
            {
              "name": "default",
              "backend": "LOCAL",
              "url": null,
              "processPreParameters": [],
              "installablePlugins": []
            }
          ],
          "memory": 512,
          "dynamicMemory": 512,
          "joinPower": 0,
          "maintenance": true,
          "minOnlineServers": 1,
          "maxOnlineServers": -1,
          "advancedServerConfig": {
            "notifyPlayerUpdatesFromNoCurrentPlayer": false,
            "notifyProxyUpdates": false,
            "notifyServerUpdates": false,
            "disableAutoSavingForWorlds": true
          },
          "percentForNewServerAutomatically": 50,
          "priorityService": {
            "stopTimeInSeconds": 180,
            "global": {
              "onlineServers": 0,
              "onlineCount": 100
            },
            "group": {
              "onlineServers": 1,
              "onlineCount": 100
            }
          },
          "settings": {}
        }
      ],
      "proxyGroups": [
        {
          "name": "Bungee",
          "wrapper": [
            "Wrapper-1"
          ],
          "template": {
            "name": "default",
            "backend": "LOCAL",
            "url": null,
            "processPreParameters": [],
            "installablePlugins": []
          },
          "proxyVersion": "BUNGEECORD",
          "startPort": 25565,
          "fallback": "Lobby",
          "startup": 2,
          "memory": 128,
          "proxyConfig": {
            "enabled": true,
            "maintenance": true,
            "motdsLayouts": [
              {
                "firstLine": "   §b§lCͩʸlͭoͣᶰuͥdͨNʷeͦtͬᵏ§8■ §7your §bfree §7cloudsystem §8§l【§f%version%§8§l】",
                "secondLine": "         §aOnline §8» §7We are now §aavailable §7to §ball §e%proxy%"
              }
            ],
            "maintenanceMotdLayout": {
              "firstLine": "   §b§lCloud§f§lNet§8■ §7your §bfree §7cloudsystem §8§l【§f%version%§8§l】",
              "secondLine": " §e%proxy% §bMaintenance §8» §7We are still in §bmaintenance"
            },
            "maintenaceProtocol": "§8➜ §bMaintenance §8§l【§c✘§8§l】",
            "maxPlayers": 1000,
            "fastConnect": false,
            "autoSlot": {
              "dynamicSlotSize": 0,
              "enabled": false
            },
            "tabList": {
              "enabled": true,
              "header": " \n§b§lCloud§f§lNet §8× §7your §bfree §7cloudsystem §8➜ §f%online_players%§8/§f%max_players%§f\n §8► §7Current server §8● §b%server% §8◄ \n ",
              "footer": " \n §7Twitter §8» §[email protected] §8▎ §7Discord §8» §fdiscord.gg/UNQ4wET \n §7powered by §8» §b§b§lCloud§f§lNet \n "
            },
            "playerInfo": [
              " ",
              "§b§lCloud§f§lNet §8× §7your §bfree §7cloudsystem",
              "§7Twitter §8» §[email protected]",
              "§7Discord §8» §fdiscord.gg/UNQ4wET",
              " "
            ],
            "whitelist": [
              "Dytanic",
              "Dytanic",
              "FemtoYT"
            ]
          },
          "proxyGroupMode": "DYNAMIC",
          "settings": {
            "picture": "http://dytanic.de/cloudnetv2/cloud.png"
          }
        }
      ]
    }
     

    Spigot Group Modes:


    DYNAMIC

    • active joinpower system
    • will delete the tmp folder for the instance on stop
    • no signs system
    • perfect for game servers
    • auto start on percentlly configuration

    LOBBY
    • inactive joinpower system
    • will delete the tmp folder for the instance on stop
    • signs system is active
    • mob selectors is active
    • service portals are active
    • perfect for hub servers
    • auto start on percentlly configuration

    STATIC
    • one server can start per group
    • active joinpower system
    • the world and all other data from the server will save (+ Auto save) on stop
    • no signs system
    • perfect for freebuild servers

    Server Priority:
    The priority system is made up of the priority groups and the global priority. Server is started because of a relationship. In the standard, the ratio as many servers with 100 players are to be there. The servers are bsp. At a ratio of 4 servers with 100 players for an active player number of 75 a 3 server started. The servers are then stopped by a priorityStopTime after a certain time in seconds. In the default, the time is 180. You can set the time as well as the ratio in the config.

    groups.json at cloudnet core
    Code (Text):
          "priorityService": {
            "stopTimeInSeconds": 180,
            "global": {
              "onlineServers": 0,
              "onlineCount": 100
            },
            "group": {
              "onlineServers": 0,
              "onlineCount": 100
            }
          },


    Joinpower:
    Joinpower is the permission to enter a server from the permission system. You can set for each group a number of joinpower. The permission group (ex. member) must have the same or higher joinpower to enter the server. Server with the mode LOBBY are ignore this feature.

    groups.json and permissions.json
    Code (Text):
          "joinPower": 100,

    At: 1.0.20 -> JoinPower permission for servers: "cloudnet.joinpower.<joinpower from group>"

    Dynamic Memory-System:
    The dynamic memory system should provide the first servers with more resources than the new servers. The resources are calculated on the basis of the active servers from the group and from the global Cloud consumption. That is, the bsp. In a dynamic memory of 1024MB the first server also starts and the next with 956, 872 etc ... so the first server stable run :)
    Important is the output from the standard memory value and the dynamic work memory is seen in the relationship


    Permission system:
    The permission system is network wide, means all components such as BungeeCord and Bukkit have the same permissions. The permissions are divided into groups, which are available via the permissions.yml in the CloudNet proxy folder. New groups can be added or modified via copy and paste. Take care of the already given permissions and options. The options are for developers, that they can record different metadata like ts3 server groups and ids that it remains stored in the network and is accessible.

    The permissions are BungeeCord AND Bukkit, these are added with a true for right and are denoted with false as permission.

    To update the permissions, enter the command "rl config" in the CloudNet console. If there is a misconfiguration, an error occours. You can then find the failure and correct it.

    You can assign players to permission groups in the same console via the "perms user Dytanic group set Admin lifetime" command. You can use it like: "/cperms user Dytanic group set Admin lifetime" ingame.

    usage:
    /cperms creategroup <name>
    /cperms deletegroup <name>
    /cperms group <group> add permission <permission>"
    /cperms group <group> add permission <permission> (servergroup)"
    /cperms group <group> delete permission <permission>"
    /cperms group <group> delete permission <permission> (servergroup)"
    /cperms group <group> add implementation <group>"
    /cperms group <group> delete implementation <group>"
    /cperms group <group> set display <display>"
    /cperms group <group> set prefix <prefix>"
    /cperms group <group> set suffix <suffix>"
    /cperms group <group> set tagid <tagid>"
    /cperms group <group> set permissiondefault <DEV, ADMINISTRATOR, TEAM_MEMBER, USER>"
    /cperms group <group> set default <true : false>
    /cperms group <group> set fallback <fallback>
    /cperms user <user> group set <groupName> <lifetime or time in days>
    /cperms group <group> group add <groupName> <lifetime or time in days>
    /cperms user <user> group remove <groupName>
    /cperms user <user> add permission <permission>
    /cperms user <user> remove permission <permission>

    permissions.json
    Code (Text):
    {
      "enabled": true,
      "groups": [
        {
          "name": "default",
          "prefix": "§eMember §7| §e",
          "suffix": "§f",
          "display": "§e",
          "tagId": 9999,
          "joinPower": 0,
          "defaultGroup": true,
          "permissions": {},
          "serverGroupPermissions": {
            "Lobby": [
              "test.permission.for.group.Lobby"
            ]
          },
          "options": {},
          "implementGroups": [],
          "permissionFallback": {
            "enabled": false,
            "fallback": "Lobby"
          }
        },
        {
          "name": "Test",
          "prefix": "&4Test &7| &4",
          "suffix": "§f",
          "display": "§7",
          "tagId": 98,
          "joinPower": 200,
          "defaultGroup": false,
          "permissions": {
            "minecraft.command.gamemode": true,
            "minecraft.command.tp": true
          },
          "serverGroupPermissions": {},
          "options": {},
          "implementGroups": [],
          "permissionFallback": {
            "enabled": false,
            "fallback": "Lobby"
          }
        },
        {
          "name": "Moderator",
          "prefix": "&cMod &8|&7 ",
          "suffix": "§f",
          "display": "§7",
          "tagId": 2,
          "joinPower": 0,
          "defaultGroup": false,
          "permissions": {
            "minecraft.command.gamemode": true,
            "minecraft.command.tp": true
          },
          "serverGroupPermissions": {},
          "options": {},
          "implementGroups": [],
          "permissionFallback": {
            "enabled": false,
            "fallback": "Lobby"
          }
        },
        {
          "name": "Supporter",
          "prefix": "&bSup &8|&7 ",
          "suffix": "§f",
          "display": "§7",
          "tagId": 2,
          "joinPower": 0,
          "defaultGroup": false,
          "permissions": {
            "minecraft.command.gamemode": true,
            "minecraft.command.tp": true
          },
          "serverGroupPermissions": {},
          "options": {},
          "implementGroups": [],
          "permissionFallback": {
            "enabled": false,
            "fallback": "Lobby"
          }
        },
        {
          "name": "Admin",
          "prefix": "§cAdmin §7| §c",
          "suffix": "§f",
          "display": "§c",
          "tagId": 2000,
          "joinPower": 100,
          "defaultGroup": false,
          "permissions": {
            "*": true,
            "test.permission": true
          },
          "serverGroupPermissions": {
            "Lobby": [
              "test.permission.for.group.Lobby"
            ]
          },
          "options": {},
          "implementGroups": [],
          "permissionFallback": {
            "enabled": false,
            "fallback": "Lobby"
          }
        }
      ]
    }


    Global folder:

    In the Global directory, you can add your own files if required. E.g. provide a bukkit.yml or spigot.yml for all servers. (Plugins and folders aswell) :)


    Signs:
    » dynamic sign animations with the signlayout.json
    » /cloudserver createSign <group>
    Look at the active sign and write the command "/cloudserver createSign". The sign should be create from the network in a few seconds.
    » removing a sign with:
    Look at the active sign and write the command "/cloudserver removeSign". The sign should be removed from the network in a few seconds.


    %server% - server name
    %online_players% - online count
    %max_players% - max onlinecount
    %state% - state of the server (LOBBY)
    %wrapper% - wrapper name
    %extra% - a extra string from the cloudnet-api
    %group% - group name
    %template% - template which started
    %memory% - Memory
    %port% - Port of the server
    %host% - HostName of the server
    %id% - GroupInitId of the server (Lobby-"1")

    Code (Text):
    {
      "layout_config": {
        "fullServerHide": true,
        "groupLayouts": [
          {
            "name": "default",
            "layouts": [
              {
                "name": "online",
                "signLayout": [
                  "%server%",
                  "&e%state%",
                  "%online_players%/%max_players%",
                  "%motd%"
                ],
                "blockId": 159,
                "subId": 0
              },
              {
                "name": "full",
                "signLayout": [
                  "%server%",
                  "&ePREMIUM",
                  "%online_players%/%max_players%",
                  "%motd%"
                ],
                "blockId": 159,
                "subId": 0
              },
              {
                "name": "maintenance",
                "signLayout": [
                  "§8§m---------",
                  "maintenance",
                  "§cmode",
                  "§8§m---------"
                ],
                "blockId": 159,
                "subId": 0
              }
            ]
          }
        ],
        "searchingAnimation": {
          "animations": 33,
          "animationsPerSecond": 10,
          "searchingLayouts": [
            {
              "name": "loading1",
              "signLayout": [
                "&8&m----------",
                "server loading",
                "●                ",
                "&8&m----------"
              ],
              "blockId": 159,
              "subId": 14
            },
            {
              "name": "loading2",
              "signLayout": [
                "&8&m----------",
                "server loading",
                " ●               ",
                "&8&m----------"
              ],
              "blockId": 159,
              "subId": 14
            },
            {
              "name": "loading3",
              "signLayout": [
                "&8&m----------",
                "server loading",
                "  ●              ",
                "&8&m----------"
              ],
              "blockId": 159,
              "subId": 14
            },
            {
              "name": "loading4",
              "signLayout": [
                "&8&m----------",
                "server loading",
                "   ●             ",
                "&8&m----------"
              ],
              "blockId": 159,
              "subId": 14
            }
            [...]
          ]
        }
      }
    }

    [​IMG]
    Warning the Installer is for the last 1.0.50 Version of CloudNet


    » Java 8
    » Linux/Windows server with min. 2GB DDR3 Memory and 2 vCores
    » A FTP/SFTP client for mange your linux or windows server

    compatible versions:
    » Debian 7/8
    » CentOS 6/7
    » Ubuntu 16.x

    http://dytanic.de/cloudnet_installer.sh

    To use the installer, run the following command as root user:
    Code (Text):
    bash <(wget --no-check-certificate -q -O - 'http://dytanic.de/cloudnet_installer.sh')

    by https://twitter.com/MiniMinerLPs
    [​IMG]
    Support:
    Discord
    » https://discord.gg/CPCWr7w


    CloudNet-Core:
    This is the actual network program of the cloud, here all configurations, the internal database management and the players are managed and calculated. The Minecraft Server as well as the BungeeCord server are supported by the "brain"
    To the CloudNet wrappers. All configurations (except for the wrapper) are stored in the CloudNet core.


    Console commands:
    "create | creates new Wrapper, ServerGroups, PermissionGroups, ProxyGroups, custom server",
    "stop | Stop the CloudNet and all Wrapper's",
    "clear | Clear the console",
    "reload | Reload the config and modules",
    "shutdown | Stop wrappers, proxys, servers or proxy/server groups",
    "perms | Manage the permissions from the permissions-system",
    "screen | managed the console of one server",
    "cmd | Executes a command on one game server or proxy server",
    "statistic | A list of all statistic of cloudnet!",
    "modules | Lists all modules, versions and authors",
    "clearcache | Clear for all wrappers the plugin and template cache",
    "list | Lists some informations of the network",
    "installplugin | Plugin install for one server",


    CloudNet wrapper:

    This software is the slave of the CloudNet core. It receives all requests on server and manages them in a queue. The wrapper looks very much at the CPU, and starts server when the CPU is under 50% of the load. The wrapper manages the servers, monitors the status, and executes the commands of the cloud


    The goal of CloudNet:
    CloudNet is a Minecraft server / BungeeCord cloud system, which is to come with a base so that the user of the software will find the benefits of the cloud in the future. CloudNet is designed specifically for every network of people, and provides sufficient networking for each to allow have a stable start into the future of the network.
    CloudNet goes so to speak to anyone who would like to have a Minecraft network, which also with 2 players an advantage to save resources would like to offer!


    Technical information:
    CloudNet is to work with modern frameworks to provide the best and future performance. Netty4 was used for network communication. For the actual source code management, Lombok 1.16.6 was used. Gson 2.8.0 has been designed to simplify and understand data management to provide a very understandable and API friendly method. CloudNet was therefore developed with this base and has a large number of its own interfaces, so that the cloud could be made in the best and most comprehensible form possible

    BungeeCord Commands:

    /cloud (cns, cn, cnp, cloud) | cloudnet.command.cloud
    /hub (quit, game, l, leave, lobby)
    /cperms (perms, permissions) | cloudnet.command.permissions


    Bukkit Commands:
    /cloudserver | cloudnet.command.cloudserver
    /resource | cloudnet.command.resource


    [​IMG]

    Developers have a big JavaDoc lib with the CoreAPI, Lib and BukkitProxyAPI from CloudNet and can use a lot of functions with CloudNet
    bsp. Custom Servers

    CloudAPI Download

    http://dytanic.de/cloudnet/version/pre/2.1.PreLastFix1/CloudNetAPI.jar

    Java Documentation:
    http://dytanic.de/cloudnet/docs/v2.1/


    CloudNet-Repo

    Code (Text):

    <!--- Repository --->
    <repositories>
            <repository>
                <id>cloudnet-repo</id>
                <url>http://dytanic.de/repositories/</url>
            </repository>
    </repositories>

    <!--- CloudNet-API for Bukkit and BungeeCord --->
    <dependency>
      <groupId>de.dytanic.cloudnet</groupId>
      <artifactId>cloudnet-api</artifactId>
      <version>2.1.Pv30F0</version>
      <scope>provided</scope>
    </dependency>

    <!--- For Modules --->
    <dependency>
      <groupId>de.dytanic.cloudnet</groupId>
      <artifactId>cloudnet-core</artifactId>
      <version>2.1.Pv30F0</version>
      <scope>provided</scope>
    </dependency>
     
    [​IMG]
    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]


    [​IMG]

    [​IMG]

    Setup 2.1.PXI getPlugin


    Setup 2.1.PXI getPlugin


    Setup 2.1.PXI getPlugin


    Setup 2.1.PXI getPlugin


    Setup 2.1.PXI getPlugin


    Setup: 2.0.03 BETA Dytanic


    [​IMG]

    » Designs made by https://twitter.com/FemtoYT
    » Language update by https://twitter.com/EUDevNet
    » Thanks to BukkitFAQ for the setup video https://www.youtube.com/channel/UCsMGD91_Wye-5RMSZsk4w1A
    » The Discord server is managed by https://twitter.com/byRoadrunner
    » Thanks for all Supporters on Discord and maker of the Forum and Website and all Addons or supports for CloudNet <3
    » Thanks to all YouTuber who recorded a vide
    » Thanks for the design help at start of this project https://twitter.com/byTit4n and https://twitter.com/einpume

Recent Reviews

  1. JavaDE
    JavaDE
    5/5,
    Version: 2.1.5 Final
    Hallo. Ist es möglich mit hilfe der CloudAPi eine Spieler auf einen Server zu senden?
  2. Anweisung
    Anweisung
    5/5,
    Version: 2.1.5 Final
    CloudNet ist das beste CloudSystem allerzeiten! Kein anderes ist so individuell, hat eigene Ideen & ist zudem kostenlos und Open Source. So viele Server verwenden mittlerweile CloudNet, da es nicht nur ein Netzwerk managen kann, sondern auch das Bedienen von Servern deutlich vereinfacht. Vielen, vielen Dank!
  3. teddycraft
    teddycraft
    5/5,
    Version: 2.1.5 Final
    Ich Suche Ein CloudNet Plugin WO ich Ränge Verkaufen kann Also Die perms bzw Die cperms und das es dan auch gut geht das jeder sei rang hat den er kaufen tut
  4. xLikeNicooo
    xLikeNicooo
    5/5,
    Version: 2.1.5 Final
    Weshalb sollte man für ein CloudSystem Geld ausgeben, wenn es auch die perfekte Cloud bereits kostenlos gibt?
  5. Maikiboy2000
    Maikiboy2000
    5/5,
    Version: 2.1.5 Final
    Wenn ich eine Sign Vorlage verwende von FemtoYT sehe ich die Zeichen nicht die mit eingebaut sind.
  6. Maxi05133333
    Maxi05133333
    5/5,
    Version: 2.1.5 Final
    Bestes CloudSystem der Welt. Schade Dytanic das du aufhörs CloudNet weiter zu Coden:(
  7. marlontrot
    marlontrot
    5/5,
    Version: 2.1.PreLF4
    Echt krasse Cloud respekt an dich, Dytanic!

    Kennst du ein NickSystem was zu den CloudNET-PrefixSystem funktioniert?
  8. eazySkripting
    eazySkripting
    5/5,
    Version: 2.1.PreLF4
    BESTES CLOUDSYSTEM EVER!
    Frage : Gibt es Rechte dafür das man zb jemanden Rechte für /perms user ______ Group set ____ lifetime geben kann
    also das srmod anderen rämgen geben kann auser Admin
  9. Teddyw2000
    Teddyw2000
    5/5,
    Version: 2.1.PreLF4
    Ich finde das Plugin MEGA cool. Aber ich hätte da eine Frage: Wie kann man den /cloud Command benutzen wenn das Intererigierte Permissionsystem aus ist. Weil ich benutze PermissionsEX und ich kann PEX nur benutzen wenn das Interergierte System aus ist. Ansonsten ist es aber TOP (-:
    1. Dytanic
      Author's Response
      Danke für dein Review!

      Es freut mich, dass dir das Programm gefällt!

      Der /Cloud Befehl ist ein im BungeeCord Plugin integrierter Befehl. Da zählt nur das Rechte System von BungeeCord. Die permission ist cloudnet.command.cloud. Die weiteren Sub Befehlsrechte habe ich leider nur in einem update log.

      MFG
      Tarek
  10. Twe3x
    Twe3x
    5/5,
    Version: 2.1.PreLF4
    Sehr Gutes CloudNet-System,
    aber ich hätte da eine kleine frage.
    Wenn ich mit /cloudserver ein Mob erstelle geht es weg
    wenn ich 1mal joine und wider in die lobby gehe
    und vill. kommt es dann wieder.
    jetzt weiß ich nicht ob dass ein Bug ist oder irgendwie gewollt ist.
    1. Dytanic
      Author's Response
      Hey,

      Ich kenne diesen Fehler bereits, jedoch weiß ich noch nicht, ob ich das Problem beheben kann.

      Ich werde es mir heute anschauen.

      Mit freundlichen Grüßen
      Dytanic