Releases: CloudNetService/CloudNet
4.0.0-RC3 - Blizzard
Update 4.0.0-RC3 - Blizzard
We are pleased to announce the third release candidate for CloudNet 4.0. This release includes some smaller fixes for reported issues and improvements. We urge all users to install the update, as we will no longer provide support for RC2. Users who want to switch from 3.4.X to 4.0 can find instructions in the release information for RC1.
Cheers!
(Please remember, CloudNet is provided as-is - we are not responsible for data loss or corruption. You are encouraged to back up your files before any updates!)
Changelog
🐛 Fixes
- Fixed a small issue causing the default Influx config to throw an exception when starting up (contribution by @robertschuck)
- Fixed some issues that were introduced in the last release related to the switch to NPC-Lib v2. This includes some exceptions which can be thrown in specific scenarios, as well as the issue that hitting into the air wouldn't be imitated by spawned NPCs
- Fixed an issue where installed components on a service might differ from the requested ones, causing issues when (for example) using the smart module. A new collection of all installed templates/inclusions/deployments is now available from a SpecificCloudServiceProvider for api users to see which requested components are actually installed
✨ Improvements
- Tasks and Groups are now able to specify environment variables per service. For api developers that feature is accessible from the ServiceConfiguration (and builder).
- Add a command which allows to remove all created NPCs, or all NPCs which are targeting a specific group
- Aside from
tasks rename
it's now possible to rename groups usinggroups rename <OldName> <NewName>
as well. - Small code cleanups and performance improvements were made when using Waterfall (or a fork of Waterfall) as the proxy software.
📦 Other
- Removed the ProcessHandle from the
CloudServicePostProcessStartEvent
as some services might not have one available and are therefore unable to call the event (for example services running in Docker). - Added two new events which are called on the local node instance and can be used by modules to modify the service preparation cycle:
CloudServicePrePrepareEvent
andCloudServicePostPrepareEvent
. Note that the pre event is called after some initial data was made available, for example determining the initial templates that should get installed onto the service
🔗 Links
- Support Discord: https://discord.cloudnetservice.eu/
- Javadocs: https://cloudnetservice.eu/cloudnet/docs/4.0.0-RC3/
- Maven Dependencies: https://search.maven.org/search?q=eu.cloudnetservice.cloudnet
- If you found any issue, please report it on our issue tracker: https://github.com/CloudNetService/CloudNet-v3/issues
4.0.0-RC2 - Blizzard
Update 4.0.0-RC2 - Blizzard
We are pleased to announce the second release candidate for CloudNet 4.0. This release includes a large number of bug fixes reported by our users during RC1. Thank you to everyone who reported bugs and suggested new features, this is the only way we can improve CloudNet! We urge all users to install the update, as we will no longer provide support for RC1. Users who want to switch from 3.4.X to 4.0 can find instructions in the release information for RC1.
Cheers!
(Please remember, CloudNet is provided as-is - we are not responsible for data loss or corruption. You are encouraged to back up your files before any updates!)
Changelog
🐛 Fixes
- Fixed an issue with invalid BungeeCord configuration files caused by varying indentation depths
- Improved the java version checking when installing files or resolving the java command of a task in order to support all java vendors
- Fixed an issue that caused sign & npc configuration entries not to be converted correctly when using an H2 database
- Resolved an exception thrown by
module install
when trying to install a module twice - Fixed an issue that caused jvm options and process parameters not to be applied to services in some cases
- Fixed a possible issue with a force-shared scoreboard set by the npc module
- Fixed an issue where fallbacks were not resolved anymore when players were kicked during a server connect, but the connection to the current service was retained
✨ Improvements
- Hex colors (using the
&#rrggbb
format) are now supported on BungeeCord as well - Improve handling of player disconnections across the cluster
- Improved mysql database searches using json columns
- Improved the cloudflare module implementation
- A proper error message is now logged when trying to download updates from an invalid update repository or branch
📦 Other
- Removed the already unused connect host address from the config
- Renamed
ser <service> toggle
toser <service> screen
- NPCs now support displaynames that are longer than 16 characters by only using info lines
- Moved the inventory title configuration for NPCs from the display name to its own configuration option
- The forced-host option of a fallback is now only used when initially connecting to a proxy, further fallback searches will ignore these fallbacks
🔗 Links
- Support Discord: https://discord.cloudnetservice.eu/
- Javadocs: https://cloudnetservice.eu/cloudnet/docs/4.0.0-RC2/
- Maven Dependencies: https://search.maven.org/search?q=eu.cloudnetservice.cloudnet
- If you found any issue, please report it on our issue tracker: https://github.com/CloudNetService/CloudNet-v3/issues
4.0.0-RC1 - Blizzard
Update 4.0.0-RC1 - Blizzard
Changelog:
Additions:
- The template installer supports now both templates and static services
- Tasks can get renamed using the tasks command
- The Minestom platform is now supported
- The fabric platform is now supported
- Reworked REST-API and added documentation for it
- Reworked the command system
- Service starts can get deferred if specified
- Extended the sponge support to signs and permissions
- First and third party modules can be installed using the modules command
- Nodes can reconnect to the cluster (experimental)
- Nodes have a new draining mode – stop after all services are gone
- Sync modules, tasks and more between your nodes
- Docker is now supported for the node and each individual service
- Added some basic PAPI placeholders
- The NPCs have many new options now (like flying with an elytra)
- Added support for MongoDB and Xodus databases
- Added support for S3 as remote template storage
- Influx db is now supported (create Grafana dashboards and more)
- The configs are no longer reset if the JSON syntax is invalid
- Each task can now have its own host address
- The Smart module is now actually smart
No longer supported:
- Removed the support for Glowstone and GoMint
- The cloud only supports Java 17 and above (while keeping Minecraft 1.8 supported)
API:
- New flow API style – no more getter and setter prefixes
- The bridge supports the adventure API where applicable
- Most of CloudNet’s objects are now immutable and therefore have builders for modifications
- The whole driver and bridge are documented
- RPC for the communication between the wrapper and the node
Upgrade Guide:
Upgrading from an old CloudNet 3.4 installation is very straight forward and easy to do. The following steps are needed before you are able to upgrade to 4.0.0-RC1:
- Backup your old installation! It might be a rare case, but if something breaks you can easily roll back to a working installation.
- Delete the old
launcher.jar
file - Delete the old
launcher.cnl
file - Delete the old
launcher
directory (this step is optional, but cleans up the old clutter from previous installed versions) - Delete the
cloudnet-storage-ftp
andcloudnet-rest module
files (all other modules will be upgraded automatically). Note that CloudNet 4 no longer supports FTP template storages, only SFTP. If you want to reinstall the modules, just usemodule install
in the console once you finished the upgrade.
Now you can proceed with the normal installation steps, all other upgrades will get executed automatically when starting the new version of CloudNet!
For developers:
Javadocs: https://cloudnetservice.eu/cloudnet/docs/4.0.0-RC1/
CloudNet is using the eu.cloudnetservice.cloudnet
group id and is available through maven central. The most important
submodules are:
artifact id | usage |
---|---|
driver | When developing plugins or modules, available on all platforms. |
node | When developing a module which needs more specific access to node functions than the driver can offer. |
wrapper-jvm | When developing plugins which need some more specific access to the service api than the driver can offer. |
bridge | When trying to catch player events and/or interacting with players regardless where they are on the network. |
bom | When you want to import all dependencies with the same version based on the imported bill of materials. |
To add the CloudNet dependency using gradle:
repositories {
// ensure maven central is added
mavenCentral()
}
dependencies {
// optional - you can also specify versions directly
implementation platform('eu.cloudnetservice.cloudnet:bom:4.0.0-RC1')
compileOnly 'eu.cloudnetservice.cloudnet:driver'
// without bom
compileOnly 'eu.cloudnetservice.cloudnet:driver:4.0.0-RC1'
}
To add the CloudNet dependency using maven:
<!-- optional - you can also specify versions directly -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>eu.cloudnetservice.cloudnet</groupId>
<artifactId>bom</artifactId>
<version>4.0.0-RC1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>eu.cloudnetservice.cloudnet</groupId>
<artifactId>driver</artifactId>
<version>4.0.0-RC1</version> <!-- only needed when bom is not used -->
<scope>provided</scope>
</dependency>
</dependencies>
v3.4.5 Fix - Earthquake
Update v3.4.5 - Earthquake
Fixes:
- Fixed exception on ServerListPingEvent in 1.19
Changes:
- Updated the backup versions to 1.19
All Commits: v3.4.4...v3.4.5
v3.4.4 Fix - Earthquake
Update v3.4.4 - Earthquake
Fixes:
- Fixed thread pool misconfiguration resulting in increased api response times
Changes:
- Updated the backup versions to 1.18.2 and deprecated 1.17
All Commits: v3.4.3...v3.4.4
v3.4.3 Fix - Earthquake
Update v3.4.3 - Earthquake
Fixes:
- Fix npc infoline duplications
- Fix random cluster disconnects
- Fix large service starting
All Commits: v3.4.2...v3.4.3
v3.4.2 Hotfix - Earthquake
Update v3.4.2 - Earthquake
Fixes:
- Now really properly escaped SQL match patterns (Names containing '_' are now searched properly)
All Commits: v3.4.1...v3.4.2
v3.4.1 Minecraft 1.18 Support - Earthquake
Update v3.4.1 - Earthquake
Additions:
- Added support for Minecraft 1.18
- Added support for WaterdogPE
Fixes:
- Properly escaped SQL match patterns (Names containing '_' are now searched properly)
Changes:
- Updated all Minecraft 1.8 - 1.17 downloads due to critical security vulnerabilities in Log4J
- Velocity downloads are now fetched using the paper downloads API
All Commits: v3.4.0...v3.4.1
v3.4.0 - Earthquake
Update v3.4.0 - Earthquake
Additions:
- Added a
requiredPermission
property to tasks - Added support for Raspberry Pi and Apple M1
- Added the French language
- Added IPv6 support to the whole cloud
- Added commands to manage the configs of the NPC, Bridge and SyncProxy-modules
- Added forced hosts to the Bridge-module
- Added server group specific fallbacks
- Added a property to set a specific java version for a task
- Added Tuinity to the template installer
- Added knockback & Labymod emotes to the NPC-module
- Added support for Labymod banners in the Labymod-module
- Added support for Minecraft 1.17
- Added a custom process timeout
- Added start and stop messages for services on different nodes
- Added a command to delete a player from the database
- Added more settings for the
connection-pool
in the MySQL-module
Fixes:
- Improved the sorting of the signs
- Replaced some missing placeholders in the SyncProxy-module
- Fixed the support for Java 16 and upcoming versions
- Improve the command system's processing performance
- Fixed clearing the properties of stopped services
- Improved the permission system
- Fixed NPC double interacts
- Fixed synchronization problems in the cluster
- Improved speed of channel messages
Changes:
- The cluster uses a head node to start the services
- The whole Cloudflare module was rewritten
- Removed the usage of java-io where capable
- The login & logout strategy to prevent ghost players
- Packets are now sent in chunks
- Changed how task files are loaded
- Changed how events are invoked to improve performance
- Adjusted the default style of the tablist in the SyncProxy-module
API changes:
- Added template modifications from services
- Added a global
PlayerExecutor
to execute methods for every online player - Deprecated the
ITaskScheduler
and replaced it with aScheduledExecutorService
- Deprecated some TemplateStorage methods in the driver, use
CloudNetDriver#getLocalTemplateStorage
- Removed old deprecated & scheduled for removal methods from the driver
- Added a
PlayerProvider
to theIPlayerManager
to retrieve online players - Added some
PlayerExecutor#connect
methods to connect the player on a fallback, a specific group, specific task using aServerSelectorType
- Added an
AdventureComponentMessenger
to support the adventure text 4 API & deprecated the oldVelocityComponentMessenger
- Added API access to the
CloudServiceFactories
- Moved the NameTags from the CloudPerms-Module to the SimpleNameTags plugin and deprecated it in the CloudPerms-Module
- Added
CloudNetDriver#getNodeUniqueId
to retrieve the ID of the node
For developers:
Documentation: https://cloudnetservice.eu/cloudnet/docs/v3.4.0-RELEASE/
Maven repository for releases:
<repository>
<id>releases</id>
<url>https://repo.cloudnetservice.eu/repository/releases/</url>
</repository>
Maven repository for snapshots:
<repository>
<id>snapshots</id>
<url>https://repo.cloudnetservice.eu/repository/snapshots/</url>
</repository>
Modules and plugins
<!-- cloudnet application for modules (NOT AVAILABLE FOR PLUGINS!) -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet</artifactId>
<version>3.4.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet driver for plugins and modules -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-driver</artifactId>
<version>3.4.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet wrapper for plugins -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-wrapper-jvm</artifactId>
<version>3.4.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet bridge module for plugins and modules -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-bridge</artifactId>
<version>3.4.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet syncproxy module for plugins (proxy) and modules -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-syncproxy</artifactId>
<version>3.4.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet signs module for plugins and modules -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-signs</artifactId>
<version>3.4.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet npcs module for plugins and modules -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-npcs</artifactId>
<version>3.4.0-RELEASE</version>
<scope>provided</scope>
</dependency>
v3.3.0 - Hurricane
Update v3.3.0 - Hurricane
Changes:
- Add new CloudSetup
- Add Global Groups
- Improved command system
- Split tasks-command to
tasks
andgroups
command - Accept wildcards in the tasks command
- Rework the screen command
- Add BALANCED template installer - spread task templates over all services
- Allow numbers lower than 1 for the animationsPerSecond in the SyncProxy tablist
- Reworked launcher
- Reworked SyncProxy module
- Added CloudNet-NPCs module
- Added CloudNet-LabyMod module
- Fixed fallbacks
- Fixed OnlyProxyJoin
- Fixed data transfer between different Operating Systems
- Fixed permission checks in LoginEvent
- Reduced cloud heap usage
- Removed GoMint and ProxProx support
- Added a new option to the Smart module - keep a specified amount of empty services of a task online
- Added support for negative potency on permissions on Bukkit servers to CPerms
API changes:
Please adjust your plugins and modules, deprecated methods will be removed in a future release.
- Deprecated some Singletons (e.g. AbstractSignManagement, BridgePlayerManager), should now be accessed via the
CloudNetDriver#getServicesRegistry
. See the cloudnet-examples module for help. - Deprecated
CloudPermissionsManagement#getInstance
, should now be accessed via CloudNetDriver#getPermissionManagement - Deprecated property methods in class
ServiceInfoSnapshotUtil
, properties can now be accessed viaServiceInfoSnapshot#getProperty(ServiceProperty)
- Deprecated player methods in
IPlayerManager
, should now be accessed viaIPlayerManager#getPlayerExecutor
andICloudPlayer#getPlayerExecutor
- Added Bungee/VelocityPlayerFallbackEvent
- Added CloudSignInteractEvents for Bukkit and Nukkit
- Added NodeLocalBridgePlayerProxyLoginRequestEvent
Launcher changes:
For this update we have almost completely rewritten the CloudNetLauncher.
It will now automatically launch the newest version, there won't be any issues with launching an old version anymore.
To be able to use the "new" launcher please don't use auto-update for this update and replace the launcher manually. Please also delete your launcher.cnl (save CloudNet properties which you have changed), so that you can configure the new features of the launcher.
New modules:
This update introduces two more modules:
- CloudNet-NPCs - Serverselector NPCs
Notice: The default NPC inventory in the NPC configuration consists of items only existing on spigot 1.13.2+!
If you are using a version below, you have to change the item configuration for the items to show up in the inventory. - CloudNet-LabyMod - Shows LabyMod & Discord friends which gamemode you play on your server.
Both modules can be found in the CloudNet zipfile and have to be put into the modules folder of the Cloud.
For developers:
Documentation: https://cloudnetservice.eu/cloudnet/docs/v3.3.0-RELEASE/
We're using a new repository software, new releases and snapshots won't be published in the old repo (https://cloudnetservice.eu/repositories/).
New Maven repository for releases:
<repository>
<id>releases</id>
<url>https://repo.cloudnetservice.eu/repository/releases/</url>
</repository>
New Maven repository for snapshots:
<repository>
<id>snapshots</id>
<url>https://repo.cloudnetservice.eu/repository/snapshots/</url>
</repository>
Modules and plugins
<!-- cloudnet application for modules (NOT AVAILABLE FOR PLUGINS!) -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet</artifactId>
<version>3.3.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet driver for plugins and modules -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-driver</artifactId>
<version>3.3.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet wrapper for plugins -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-wrapper-jvm</artifactId>
<version>3.3.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet bridge module for plugins and modules -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-bridge</artifactId>
<version>3.3.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet syncproxy module for plugins (proxy) and modules -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-syncproxy</artifactId>
<version>3.3.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet signs module for plugins and modules -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-signs</artifactId>
<version>3.3.0-RELEASE</version>
<scope>provided</scope>
</dependency>
<!-- cloudnet npcs module for plugins and modules -->
<dependency>
<groupId>de.dytanic.cloudnet</groupId>
<artifactId>cloudnet-npcs</artifactId>
<version>3.3.0-RELEASE</version>
<scope>provided</scope>
</dependency>