[go: nahoru, domu]

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved template storages #322

Merged
merged 36 commits into from
May 10, 2021
Merged

Improved template storages #322

merged 36 commits into from
May 10, 2021

Conversation

derrop
Copy link
Contributor
@derrop derrop commented Aug 18, 2020

This pull request includes:

  • breaking changes - removed some unnecessary methods out of the TemplateStorage (deploy/copy with the File[] and Path[]), move the ITemplateStorage to the driver

  • no breaking changes

Changes made to the repository:

  • Added access to the TemplateStorage to the driver and not only to the node
  • Fixed some issues in the TemplateStorages
  • Also fixed that the HTTP authorization did not work on other methods than "GET"

Documentation of test results:

The REST API handler for the templates and the RemoteTemplateStorage from the wrapper have been tested and they work without any problems. The FTP/SFTP TemplateStorages still need to be tested/fixed.
As far as I have tested it, the FTP Storage throws a MalformedServerReplyException with code 550, which means that the file doesn't exist, but instead it should return false on most of the methods.

Related issues/discussions:

https://github.com/CloudNetService/CloudNet-v3/projects/2#card-31897725

# Conflicts:
#	cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/http/MethodHttpHandlerAdapter.java
#	cloudnet-modules/cloudnet-rest/src/main/java/de/dytanic/cloudnet/ext/rest/http/V1HttpHandlerLocalTemplateFileSystem.java
#	cloudnet/src/main/java/de/dytanic/cloudnet/command/commands/CommandCluster.java
#	cloudnet/src/main/java/de/dytanic/cloudnet/network/listener/cluster/PacketServerDeployLocalTemplateListener.java
#	cloudnet/src/main/java/de/dytanic/cloudnet/template/ITemplateStorage.java
#	cloudnet/src/main/java/de/dytanic/cloudnet/template/TemplateStorageUtil.java
@lgtm-com
Copy link
lgtm-com bot commented Aug 18, 2020

This pull request introduces 4 alerts and fixes 3 when merging 6fc9c9d into 4360d2d - view on LGTM.com

new alerts:

  • 2 for Non-synchronized override of synchronized method
  • 2 for Inefficient output stream

fixed alerts:

  • 1 for Potential output resource leak
  • 1 for Inefficient output stream
  • 1 for Potential input resource leak

@lgtm-com
Copy link
lgtm-com bot commented Aug 18, 2020

This pull request introduces 4 alerts and fixes 3 when merging 191248d into 4360d2d - view on LGTM.com

new alerts:

  • 2 for Non-synchronized override of synchronized method
  • 2 for Inefficient output stream

fixed alerts:

  • 1 for Potential output resource leak
  • 1 for Inefficient output stream
  • 1 for Potential input resource leak

Copy link
Member

Codacy Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 4
- Added 11
           

Complexity increasing per file
==============================
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/client/NettyNetworkClientHandler.java  2
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/NettyNetworkHandler.java  5
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/template/FileInfo.java  2
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/server/NettyNetworkServer.java  4
- cloudnet/src/main/java/de/dytanic/cloudnet/network/packet/PacketServerSyncTemplateStorage.java  1
- cloudnet-common/src/main/java/de/dytanic/cloudnet/common/stream/WrappedInputStream.java  1
- cloudnet/src/main/java/de/dytanic/cloudnet/network/listener/cluster/PacketServerSyncTemplateStorageChunkListener.java  14
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/protocol/chunk/listener/ChunkedPacketSession.java  8
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/server/NettyNetworkServerInitializer.java  2
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/client/NettyNetworkClientInitializer.java  3
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/template/TemplateStorageResponse.java  3
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/codec/NettyPacketEncoder.java  4
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/http/NettyWebSocketServerChannelHandler.java  6
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/template/defaults/DefaultSyncTemplateStorage.java  1
- cloudnet/src/main/java/de/dytanic/cloudnet/network/listener/driver/DriverTemplateStorageListener.java  2
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/http/NettyHttpServerContext.java  2
- cloudnet-modules/cloudnet-storage-ftp/src/main/java/de/dytanic/cloudnet/ext/storage/ftp/storage/SFTPTemplateStorage.java  2
- cloudnet-modules/cloudnet-rest/src/main/java/de/dytanic/cloudnet/ext/rest/http/V1HttpHandlerAuthentication.java  1
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/template/RemoteTemplateStorage.java  8
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/http/NettyHttpServerResponse.java  2
- cloudnet-common/src/main/java/de/dytanic/cloudnet/common/stream/MultiOutputStream.java  2
- cloudnet-driver/src/test/java/de/dytanic/cloudnet/driver/network/netty/codec/NettyPacketEncoderDecoderTest.java  1
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/http/NettyHttpServerInitializer.java  2
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/protocol/chunk/listener/ConsumingChunkedPacketListener.java  1
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/def/internal/InternalSyncPacketChannel.java  1
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/http/NettyHttpMessage.java  2
- cloudnet/src/main/java/de/dytanic/cloudnet/template/ClusterSynchronizedTemplateStorage.java  6
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/codec/NettyPacketLengthSerializer.java  5
- cloudnet-modules/cloudnet-storage-ftp/src/main/java/de/dytanic/cloudnet/ext/storage/ftp/storage/queue/CloseableTask.java  3
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/http/NettyHttpChannel.java  1
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/DefaultNetworkChannel.java  2
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/codec/NettyPacketDecoder.java  6
- cloudnet-common/src/main/java/de/dytanic/cloudnet/common/concurrent/CompletedTask.java  1
- cloudnet-common/src/main/java/de/dytanic/cloudnet/common/concurrent/CompletableTaskListener.java  1
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/template/defaults/DefaultSpecificTemplateStorage.java  3
- cloudnet-driver/src/test/java/de/dytanic/cloudnet/driver/serialization/ProtocolBufferTest.java  1
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/server/NettyNetworkServerHandler.java  2
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/template/defaults/DefaultAsyncTemplateStorage.java  5
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/codec/NettyPacketLengthDeserializer.java  6
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/protocol/chunk/listener/ChunkedPacketListener.java  2
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/http/NettyHttpServer.java  10
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/http/NettyWebSocketServerChannel.java  4
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/protocol/chunk/ChunkedQueryResponse.java  1
- cloudnet/src/main/java/de/dytanic/cloudnet/network/listener/cluster/PacketServerSyncTemplateStorageListener.java  10
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/client/NettyNetworkClient.java  7
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/protocol/chunk/listener/CachedChunkedPacketListener.java  1
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/http/NettyHttpServerHandler.java  19
- cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/netty/http/NettyHttpServerRequest.java  4
- cloudnet-common/src/main/java/de/dytanic/cloudnet/common/stream/WrappedOutputStream.java  1
         

Complexity decreasing per file
==============================
+ cloudnet-modules/cloudnet-rest/src/main/java/de/dytanic/cloudnet/ext/rest/http/V1HttpHandlerLocalTemplateFileSystem.java  -2
+ cloudnet/src/main/java/de/dytanic/cloudnet/template/TemplateStorageUtil.java  -1
         

Clones removed
==============
+ cloudnet-modules/cloudnet-rest/src/main/java/de/dytanic/cloudnet/ext/rest/http/V1HttpHandlerLocalTemplateFileSystem.java  -4
         

See the complete overview on Codacy

@lgtm-com
Copy link
lgtm-com bot commented Apr 12, 2021

This pull request introduces 2 alerts and fixes 2 when merging d728059 into 5616b69 - view on LGTM.com

new alerts:

  • 2 for Inefficient output stream

fixed alerts:

  • 1 for Potential output resource leak
  • 1 for Potential input resource leak

* Fix storage templates

* Fix ftp template-storage
@lgtm-com
Copy link
lgtm-com bot commented Apr 12, 2021

This pull request introduces 2 alerts and fixes 2 when merging 84a1ddc into e5240e3 - view on LGTM.com

new alerts:

  • 2 for Inefficient output stream

fixed alerts:

  • 1 for Potential output resource leak
  • 1 for Potential input resource leak

@lgtm-com
Copy link
lgtm-com bot commented Apr 13, 2021

This pull request introduces 2 alerts and fixes 2 when merging 4b7ca38 into e5240e3 - view on LGTM.com

new alerts:

  • 2 for Inefficient output stream

fixed alerts:

  • 1 for Potential output resource leak
  • 1 for Potential input resource leak

Copy link
Member
@derklaro derklaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes were tested, api changes are looking good

@lgtm-com
Copy link
lgtm-com bot commented Apr 16, 2021

This pull request introduces 2 alerts and fixes 2 when merging 8881a8d into b76c671 - view on LGTM.com

new alerts:

  • 2 for Inefficient output stream

fixed alerts:

  • 1 for Potential output resource leak
  • 1 for Potential input resource leak

@lgtm-com
Copy link
lgtm-com bot commented Apr 29, 2021

This pull request introduces 2 alerts and fixes 2 when merging 8d9d194 into b723335 - view on LGTM.com

new alerts:

  • 2 for Inefficient output stream

fixed alerts:

  • 1 for Potential output resource leak
  • 1 for Potential input resource leak

@lgtm-com
Copy link
lgtm-com bot commented May 1, 2021

This pull request introduces 2 alerts and fixes 2 when merging e88a292 into f9947a8 - view on LGTM.com

new alerts:

  • 2 for Inefficient output stream

fixed alerts:

  • 1 for Potential output resource leak
  • 1 for Potential input resource leak

@ghost
Copy link
ghost commented May 4, 2021

DeepCode's analysis on #800631 found:

  • 1 critical issue, ℹ️ 2 minor issues. 👇
  • ✔️ 2 issues were fixed.

Top issues

Description Example fixes
Unsanitized input from data from a remote resource flows into java.nio.file.Files.copy, where it is used as a path. This may result in a Path Traversal vulnerability and allow an attacker to write to arbitrary files. Occurrences: 🔧 Example fixes
Printing the stack trace of java.lang.Throwable. Production code should not use printStackTrace. Occurrences: 🔧 Example fixes
Catching java.lang.Throwable will also catch JVM internal errors like OutOfMemoryErrors or StackOverflowErrors. This is most likely not the intended behavior and considered a bad practice. Consider catching a less general exception. Occurrences: 🔧 Example fixes

👉 View analysis in DeepCode’s Dashboard | Configure the bot

@lgtm-com
Copy link
lgtm-com bot commented May 4, 2021

This pull request introduces 2 alerts and fixes 2 when merging 8006317 into 40d710c - view on LGTM.com

new alerts:

  • 2 for Inefficient output stream

fixed alerts:

  • 1 for Potential output resource leak
  • 1 for Potential input resource leak

@derklaro derklaro added the v: 3.X This pull should be included in the 3.4 release label May 5, 2021
@juliarn juliarn merged commit f6c5113 into development May 10, 2021
@juliarn juliarn deleted the feature/template-storages branch May 10, 2021 15:52
MCMDEV pushed a commit to MCMDEV/CloudNet-v3 that referenced this pull request Jun 6, 2021
* Add more methods to the TemplateStorage and move the TemplateStorage to the driver

* Add zipTemplate methods to the SpecificTemplateStorage

* Fix compile errors

* Fix creation of directories in the FTPTemplateStorage

* Fix some issues in the FTP/Local TemplateStorage

* Fix some issues in the SFTP TemplateStorage

* Add an option to specify whether TemplateStorage#listFiles should list files recursively

* Fix some issues in the template storages and add documentation to them

* Rethrow IOExceptions in the DefaultAsyncTemplateStorage and use a thread pool in the DefaultSyncTemplateStorage

* Async FTPQueueStorage

* Add ProtocolBufferTest

* Test the FTPQueueStorage

* Remove some unnecessary methods out of the TemplateStorage

* Begin with chunked packet queries

* Cleanup the netty networking package

* Implement some methods in the RemoteTemplateStorage

* Synchronize local template actions into the cluster

* Remove manual synchronization of templates in the cluster

* Remove FileInfo#isReadable and FileInfo#isWritable

* Fix some issues in the REST api for templates

* Implement the deploy and new/appendOutputStream methods in the RemoteTemplateStorage

* Shutdown the ExecutorService in the RemoteTemplateStorage on stop

* Improve codestyle

* Fix some issues with the RemoteTemplateStorage

* Fixed bugs in RemoteTemplateStorage/FTPTemplateStorage (CloudNetService#435)

* Fix storage templates

* Fix ftp template-storage

* Remove unused byte array template storage driver api request types

* Override the new template storage methods in EmptyCloudNetDriver too

* Resolve 3 merge failures

Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>
derklaro added a commit that referenced this pull request Jun 6, 2021
…in (#458)

* Moved code for nametags from cloudperms module to simplenametags plugin

* Reverted and deprecated BukkitCloudNetCloudPermissionsPlugin methods

* Removed kicked from server message (#459)

Velocity currently sends a message that can not be canceled without a velocity fork. The Message appends a prefix, but it can be changed by leaving the prefix string blank in the velocity prefix.

* Use gradle wrapper instead of gradle provided by the ci (#456)

* Use gradle wrapper instead of gradle provided by the ci

* Move unit tests to a separate build step

* Move statement to correct position whoops

* NPC Knockback (#451)

* Create custom process termination timeout for services

* Add setter

* Add 1 as min

* Add start / stop message on different nodes

* add tunity support

* Add tunity repo as website

* Remove unused versionGroup for tunity

* Replace online and maxplayers for velocity and bungeecord

* Add knockback to npcs

* Add emotes on knockback, don't run runnable when strength or distance are zero

* Check for strength too

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Re-add removed copyCurrentModuleInstanceFromClass(Class,File) method

* Add component messenger for the new adventure text api

* Replace deprecated velocity methods and some other usages of deprecated api

* Replace two empty lines after the package statement with a single one

* Remove locking on Wrapper publish methods

* Switch to a fail-over cluster solution (#448)

* Initial work on adding a head node system

* Fixed all currently known bugs and cleanup stuff

* Fix task scheduler

* Fix all reported issues

* Check for dead services and update service logs every second

* Fix cluster node server factory to work with the head node system

* Make the service list after create by prettier

* Update the NodeInfoSnapshot every second

* Remove more old copyright comments

* Don't start a service if the service info snapshot is null

* Try to fix "ghost" services

* Migrate to the ScheduledExecutorService

* More output to see what is going on

* Fix memory check when system cpu usage should be included

* Dispatch packets on a separate threads

* Allow only the head node to process the smart config entries

* Bump jline from 3.19.0 to 3.20.0

* Update tablist and motd default style (#463)

* Small improvements

* Technically it did work

* Print logs of servers that stopped too early (#473)

* Improved template storages (#322)

* Add more methods to the TemplateStorage and move the TemplateStorage to the driver

* Add zipTemplate methods to the SpecificTemplateStorage

* Fix compile errors

* Fix creation of directories in the FTPTemplateStorage

* Fix some issues in the FTP/Local TemplateStorage

* Fix some issues in the SFTP TemplateStorage

* Add an option to specify whether TemplateStorage#listFiles should list files recursively

* Fix some issues in the template storages and add documentation to them

* Rethrow IOExceptions in the DefaultAsyncTemplateStorage and use a thread pool in the DefaultSyncTemplateStorage

* Async FTPQueueStorage

* Add ProtocolBufferTest

* Test the FTPQueueStorage

* Remove some unnecessary methods out of the TemplateStorage

* Begin with chunked packet queries

* Cleanup the netty networking package

* Implement some methods in the RemoteTemplateStorage

* Synchronize local template actions into the cluster

* Remove manual synchronization of templates in the cluster

* Remove FileInfo#isReadable and FileInfo#isWritable

* Fix some issues in the REST api for templates

* Implement the deploy and new/appendOutputStream methods in the RemoteTemplateStorage

* Shutdown the ExecutorService in the RemoteTemplateStorage on stop

* Improve codestyle

* Fix some issues with the RemoteTemplateStorage

* Fixed bugs in RemoteTemplateStorage/FTPTemplateStorage (#435)

* Fix storage templates

* Fix ftp template-storage

* Remove unused byte array template storage driver api request types

* Override the new template storage methods in EmptyCloudNetDriver too

* Resolve 3 merge failures

Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>

* Move packet dispatcher back to network client/server to prevent high thread loads per connection (#474)

* Bump gradle to 7.0.2

* Don't return a service provider if the associated node is disconnected

* Fix template push in cluster

* Remove MaxPermSize option as it is no longer supported by modern jvms

* Misc dependency updates

* Add commands to create syncproxy and bridge config entries (#478)

* Add commands to create syncproxy and bridge config entries

* Fix spacing in the bridge command

* Bump netty to 4.1.65.Final

* Misc dependency updates

* [ci-skip] Add wrapper validation step to actions

* Fix that the npc configuration is not reloaded correctly (#481)

* Fix exception while starting a service (#483)

* Do not handle NPC offhand interact to avoid executing the action twice

* Update forge download links in versions.json

* Only remove armor stand on shutdown

* Improve loading logic of task files

* Prevent netty logging init issues on older platforms like spigot 1.8

* Fix build failures on jdk15-ea and newer

* Better player handling (#449)

* Some improvements to player handling

* Resolve build failure and fix some test issues

* Improved permission system player handling

* Actually cache the permission user after loading

* Fix cache replacement when updating a user/group

* Use cache before requesting first user

* Change login listener priority from MONITOR to LOWEST

* Try to prevent duplicate login handling at a time

* Use one lock per player instead of a global one

* Improve some main parts of the networking

* Change the way how players are getting disconnected when they are no longer connected to the network

* Fixed typo

* Cache all proxy online counts on syncproxy startup

* Fix netty resource leak caused by direct buffer allocation

* Replace string concatenation with format statements

* Change the logout logic when a service stops

* Increase max byte length of a var int to 5

* Fix wrong online count on proxies after the startup

* Fix InvalidThreadState exception when a player logs in

* Only update the permission user/group in the database if its required

* Allow more netty processing threads and some improvements to the player handling

* Reduce processing threads to 8 for the wrapper and use the processor count * 2 on nodes

* Run rejected tasks on the calling thread instead of aborting them

* Combine nested if statements

* Use MethodHandle to set the player's permissible field

* Combine the nested statements again

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Add labymod banner support (#461)

* Add labymod banner support

* Update cloudnet-modules/cloudnet-labymod/src/main/java/eu/cloudnetservice/cloudnet/ext/labymod/node/CloudNetLabyModModule.java

Co-authored-by: Robin <derrop@outlook.de>

Co-authored-by: Robin <derrop@outlook.de>

* Update to latest development state

* Revert "Update to latest development state"

This reverts commit 3c0b0ae

* Revert "Update to latest development state"

This reverts commit 3c0b0ae

Deprecate old methods

Co-authored-by: David Mayr <davidliebtkekse@gmail.com>
Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>
Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: FemtoYT <38396937+FemtoYT@users.noreply.github.com>
Co-authored-by: Robin <derrop@outlook.de>
Co-authored-by: 0utplay <aldin@sijamhodzic.de>
Co-authored-by: Lvkas_ <51173477+zLvkas@users.noreply.github.com>
derklaro added a commit that referenced this pull request Jun 26, 2021
* Only remove armor stand on shutdown

* Update forge download links in versions.json

* Improve loading logic of task files

* Prevent netty logging init issues on older platforms like spigot 1.8

* Fix build failures on jdk15-ea and newer

* Better player handling (#449)

* Some improvements to player handling

* Resolve build failure and fix some test issues

* Improved permission system player handling

* Actually cache the permission user after loading

* Fix cache replacement when updating a user/group

* Use cache before requesting first user

* Change login listener priority from MONITOR to LOWEST

* Try to prevent duplicate login handling at a time

* Use one lock per player instead of a global one

* Improve some main parts of the networking

* Change the way how players are getting disconnected when they are no longer connected to the network

* Fixed typo

* Cache all proxy online counts on syncproxy startup

* Fix netty resource leak caused by direct buffer allocation

* Replace string concatenation with format statements

* Change the logout logic when a service stops

* Increase max byte length of a var int to 5

* Fix wrong online count on proxies after the startup

* Fix InvalidThreadState exception when a player logs in

* Only update the permission user/group in the database if its required

* Allow more netty processing threads and some improvements to the player handling

* Reduce processing threads to 8 for the wrapper and use the processor count * 2 on nodes

* Run rejected tasks on the calling thread instead of aborting them

* Combine nested if statements

* Use MethodHandle to set the player's permissible field

* Combine the nested statements again

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Add labymod banner support (#461)

* Add labymod banner support

* Update cloudnet-modules/cloudnet-labymod/src/main/java/eu/cloudnetservice/cloudnet/ext/labymod/node/CloudNetLabyModModule.java

Co-authored-by: Robin <derrop@outlook.de>

Co-authored-by: Robin <derrop@outlook.de>

* Allow the deletion of a player from the database via api and command (#479)

* Add a method in the IPlayerManager to delete a cloud player

* Rename method to match what it does

* Rename the parameter here too

* Change javadoc and remove the completedtask instance

* Resolve merge conflicts and flush the offline cache

* Fix merge mistakes

* Moved code for nametags from cloudperms module to simplenametags plugin (#458)

* Moved code for nametags from cloudperms module to simplenametags plugin

* Reverted and deprecated BukkitCloudNetCloudPermissionsPlugin methods

* Removed kicked from server message (#459)

Velocity currently sends a message that can not be canceled without a velocity fork. The Message appends a prefix, but it can be changed by leaving the prefix string blank in the velocity prefix.

* Use gradle wrapper instead of gradle provided by the ci (#456)

* Use gradle wrapper instead of gradle provided by the ci

* Move unit tests to a separate build step

* Move statement to correct position whoops

* NPC Knockback (#451)

* Create custom process termination timeout for services

* Add setter

* Add 1 as min

* Add start / stop message on different nodes

* add tunity support

* Add tunity repo as website

* Remove unused versionGroup for tunity

* Replace online and maxplayers for velocity and bungeecord

* Add knockback to npcs

* Add emotes on knockback, don't run runnable when strength or distance are zero

* Check for strength too

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Re-add removed copyCurrentModuleInstanceFromClass(Class,File) method

* Add component messenger for the new adventure text api

* Replace deprecated velocity methods and some other usages of deprecated api

* Replace two empty lines after the package statement with a single one

* Remove locking on Wrapper publish methods

* Switch to a fail-over cluster solution (#448)

* Initial work on adding a head node system

* Fixed all currently known bugs and cleanup stuff

* Fix task scheduler

* Fix all reported issues

* Check for dead services and update service logs every second

* Fix cluster node server factory to work with the head node system

* Make the service list after create by prettier

* Update the NodeInfoSnapshot every second

* Remove more old copyright comments

* Don't start a service if the service info snapshot is null

* Try to fix "ghost" services

* Migrate to the ScheduledExecutorService

* More output to see what is going on

* Fix memory check when system cpu usage should be included

* Dispatch packets on a separate threads

* Allow only the head node to process the smart config entries

* Bump jline from 3.19.0 to 3.20.0

* Update tablist and motd default style (#463)

* Small improvements

* Technically it did work

* Print logs of servers that stopped too early (#473)

* Improved template storages (#322)

* Add more methods to the TemplateStorage and move the TemplateStorage to the driver

* Add zipTemplate methods to the SpecificTemplateStorage

* Fix compile errors

* Fix creation of directories in the FTPTemplateStorage

* Fix some issues in the FTP/Local TemplateStorage

* Fix some issues in the SFTP TemplateStorage

* Add an option to specify whether TemplateStorage#listFiles should list files recursively

* Fix some issues in the template storages and add documentation to them

* Rethrow IOExceptions in the DefaultAsyncTemplateStorage and use a thread pool in the DefaultSyncTemplateStorage

* Async FTPQueueStorage

* Add ProtocolBufferTest

* Test the FTPQueueStorage

* Remove some unnecessary methods out of the TemplateStorage

* Begin with chunked packet queries

* Cleanup the netty networking package

* Implement some methods in the RemoteTemplateStorage

* Synchronize local template actions into the cluster

* Remove manual synchronization of templates in the cluster

* Remove FileInfo#isReadable and FileInfo#isWritable

* Fix some issues in the REST api for templates

* Implement the deploy and new/appendOutputStream methods in the RemoteTemplateStorage

* Shutdown the ExecutorService in the RemoteTemplateStorage on stop

* Improve codestyle

* Fix some issues with the RemoteTemplateStorage

* Fixed bugs in RemoteTemplateStorage/FTPTemplateStorage (#435)

* Fix storage templates

* Fix ftp template-storage

* Remove unused byte array template storage driver api request types

* Override the new template storage methods in EmptyCloudNetDriver too

* Resolve 3 merge failures

Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>

* Move packet dispatcher back to network client/server to prevent high thread loads per connection (#474)

* Bump gradle to 7.0.2

* Don't return a service provider if the associated node is disconnected

* Fix template push in cluster

* Remove MaxPermSize option as it is no longer supported by modern jvms

* Misc dependency updates

* Add commands to create syncproxy and bridge config entries (#478)

* Add commands to create syncproxy and bridge config entries

* Fix spacing in the bridge command

* Bump netty to 4.1.65.Final

* Misc dependency updates

* [ci-skip] Add wrapper validation step to actions

* Fix that the npc configuration is not reloaded correctly (#481)

* Fix exception while starting a service (#483)

* Do not handle NPC offhand interact to avoid executing the action twice

* Update forge download links in versions.json

* Only remove armor stand on shutdown

* Improve loading logic of task files

* Prevent netty logging init issues on older platforms like spigot 1.8

* Fix build failures on jdk15-ea and newer

* Better player handling (#449)

* Some improvements to player handling

* Resolve build failure and fix some test issues

* Improved permission system player handling

* Actually cache the permission user after loading

* Fix cache replacement when updating a user/group

* Use cache before requesting first user

* Change login listener priority from MONITOR to LOWEST

* Try to prevent duplicate login handling at a time

* Use one lock per player instead of a global one

* Improve some main parts of the networking

* Change the way how players are getting disconnected when they are no longer connected to the network

* Fixed typo

* Cache all proxy online counts on syncproxy startup

* Fix netty resource leak caused by direct buffer allocation

* Replace string concatenation with format statements

* Change the logout logic when a service stops

* Increase max byte length of a var int to 5

* Fix wrong online count on proxies after the startup

* Fix InvalidThreadState exception when a player logs in

* Only update the permission user/group in the database if its required

* Allow more netty processing threads and some improvements to the player handling

* Reduce processing threads to 8 for the wrapper and use the processor count * 2 on nodes

* Run rejected tasks on the calling thread instead of aborting them

* Combine nested if statements

* Use MethodHandle to set the player's permissible field

* Combine the nested statements again

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Add labymod banner support (#461)

* Add labymod banner support

* Update cloudnet-modules/cloudnet-labymod/src/main/java/eu/cloudnetservice/cloudnet/ext/labymod/node/CloudNetLabyModModule.java

Co-authored-by: Robin <derrop@outlook.de>

Co-authored-by: Robin <derrop@outlook.de>

* Update to latest development state

* Revert "Update to latest development state"

This reverts commit 3c0b0ae

* Revert "Update to latest development state"

This reverts commit 3c0b0ae

Deprecate old methods

Co-authored-by: David Mayr <davidliebtkekse@gmail.com>
Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>
Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: FemtoYT <38396937+FemtoYT@users.noreply.github.com>
Co-authored-by: Robin <derrop@outlook.de>
Co-authored-by: 0utplay <aldin@sijamhodzic.de>
Co-authored-by: Lvkas_ <51173477+zLvkas@users.noreply.github.com>

* Revert change of sql syntax to insert or update because of incompatibility with older databases (#486)

* Apply google code style and license headers to all files (#485)

* New code style & copyright step one

* Step 2: include missing profile settings and changes to gitignore

* Add gradle.properties for a better default build configuration

* Step 3: apply new code style

* Step 4: Apply copyright header to all files

* Make checkstyle a bit softer, remove async logger test

* Add plugin to ensure license headers are applied to all files

* Remove '#!groovy' from Jenkinsfile

* Fix checkstyle violations in node module

* Fix bad formatting of the issue templates

* Fix checkstyle issues in launcher

* Cleanup settings.gradle

* Fix all checkstyle issues

* Rename license file back

* Fix checkstyle issues in H2DatabaseProviderTest

* Fix checkstyle issues in test sources

* Fix distributionSha256Sum of gradle wrapper

* Maybe this time :/

* Ensure to only include wanted files in .idea subdirectories

* Change gradlew permissions back to +x

* Revert usage of TT.getParameterized because of older gson incompatibility (#488)

* Replace deprecated api usages related to template storages

* Allow api access to add/remove cloud service factories

* Bump jansi and bcpkix-jdk15on

* Bump gradle to 7.1

* Fix shell syntax error

* Revert "Bump gradle to 7.1"

This reverts commit 0a562a3 to make the build successful again

* Update ProtocolLib Download URL while they are working on the 1.17 implementation which is currently breaking

* Improve player logout strategy

* Qualified all instance method & field accesses with 'this'

* Bump gradle to 7.1, closes GH-495

* Minecraft 1.17 caves & cliffs (part 1) support (#490)

* Initial 1.17 support

* Add spigot 1.17 downloads to versions.json

* Paper 1.17 🎉

* Temporary use an older protocol lib version in order to allow the jenkins to build the version

* Cleanup versions file

* Don't depend on protocol lib

* Bring back the protocol lib dependency

* Switch back to master builds of protocol lib

* Download the latest build of ProtocolLib again

* Improve logout handling, again

* Fix check if the template must be redirected to the cluster

* Introducing CloudNet 3.5 - Blizzard

* Remove/cleanup gson usages where needed

* Add time format into the CloudNet-Report module records (#491)

* Added time format into the records for better sorting (and also to avoid having thousands of subfolders in the same folder)

* Little change because deepcode not happy and also I forgot to put back the variable on line 95

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Made modifications requested by derklaro

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/listener/CloudNetReportListener.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Updated SimpleDateFormat to DateFormat

* Revert to SimpleDateFormat

* Reverted a bit too much

* Change SimpleDateFormat to DateFormat

* Clean- and fixup the module main class

* Revert "Merge branch 'CloudNetService:development' into development"

This reverts commit ecc0888, reversing
changes made to 118b55e.

* login & logout, again

* Update Cloudnet

* Jenkins update

* Revert "Merge branch 'fix/already-connected' of https://github.com/CloudNetService/CloudNet-v3 into development"

This reverts commit 2c5d201, reversing
changes made to 1204e81.

* Revert "Jenkins update"

This reverts commit 5c431ad.

* Revert "Update Cloudnet"

This reverts commit f419318.

* Revert dependency downgrades

* Revert some changes to CloudServiceManager

* Update DefaultCloudServiceManager.java

* Update gradle-wrapper.properties

* Update CommandCopy.java

* Whoops

* Update EmptyCloudNetDriver.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>

* Remove deprecated methods, specify removal versions for some other methods

* Ensure that IJ uses per project code style settings

* Reformat merged code

* Intellij is just dumb

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: Lvkas_ <51173477+zLvkas@users.noreply.github.com>
Co-authored-by: Robin <derrop@outlook.de>
Co-authored-by: John <30979070+MCMDEV@users.noreply.github.com>
Co-authored-by: David Mayr <davidliebtkekse@gmail.com>
Co-authored-by: FemtoYT <38396937+FemtoYT@users.noreply.github.com>
Co-authored-by: Sarsum <33085157+Sarsum@users.noreply.github.com>
Co-authored-by: a6doff <67640562+a6doff@users.noreply.github.com>
derklaro added a commit that referenced this pull request Jun 26, 2021
* Only remove armor stand on shutdown

* Update forge download links in versions.json

* Improve loading logic of task files

* Prevent netty logging init issues on older platforms like spigot 1.8

* Fix build failures on jdk15-ea and newer

* Better player handling (#449)

* Some improvements to player handling

* Resolve build failure and fix some test issues

* Improved permission system player handling

* Actually cache the permission user after loading

* Fix cache replacement when updating a user/group

* Use cache before requesting first user

* Change login listener priority from MONITOR to LOWEST

* Try to prevent duplicate login handling at a time

* Use one lock per player instead of a global one

* Improve some main parts of the networking

* Change the way how players are getting disconnected when they are no longer connected to the network

* Fixed typo

* Cache all proxy online counts on syncproxy startup

* Fix netty resource leak caused by direct buffer allocation

* Replace string concatenation with format statements

* Change the logout logic when a service stops

* Increase max byte length of a var int to 5

* Fix wrong online count on proxies after the startup

* Fix InvalidThreadState exception when a player logs in

* Only update the permission user/group in the database if its required

* Allow more netty processing threads and some improvements to the player handling

* Reduce processing threads to 8 for the wrapper and use the processor count * 2 on nodes

* Run rejected tasks on the calling thread instead of aborting them

* Combine nested if statements

* Use MethodHandle to set the player's permissible field

* Combine the nested statements again

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Add labymod banner support (#461)

* Add labymod banner support

* Update cloudnet-modules/cloudnet-labymod/src/main/java/eu/cloudnetservice/cloudnet/ext/labymod/node/CloudNetLabyModModule.java

Co-authored-by: Robin <derrop@outlook.de>

Co-authored-by: Robin <derrop@outlook.de>

* Allow the deletion of a player from the database via api and command (#479)

* Add a method in the IPlayerManager to delete a cloud player

* Rename method to match what it does

* Rename the parameter here too

* Change javadoc and remove the completedtask instance

* Resolve merge conflicts and flush the offline cache

* Fix merge mistakes

* Moved code for nametags from cloudperms module to simplenametags plugin (#458)

* Moved code for nametags from cloudperms module to simplenametags plugin

* Reverted and deprecated BukkitCloudNetCloudPermissionsPlugin methods

* Removed kicked from server message (#459)

Velocity currently sends a message that can not be canceled without a velocity fork. The Message appends a prefix, but it can be changed by leaving the prefix string blank in the velocity prefix.

* Use gradle wrapper instead of gradle provided by the ci (#456)

* Use gradle wrapper instead of gradle provided by the ci

* Move unit tests to a separate build step

* Move statement to correct position whoops

* NPC Knockback (#451)

* Create custom process termination timeout for services

* Add setter

* Add 1 as min

* Add start / stop message on different nodes

* add tunity support

* Add tunity repo as website

* Remove unused versionGroup for tunity

* Replace online and maxplayers for velocity and bungeecord

* Add knockback to npcs

* Add emotes on knockback, don't run runnable when strength or distance are zero

* Check for strength too

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Re-add removed copyCurrentModuleInstanceFromClass(Class,File) method

* Add component messenger for the new adventure text api

* Replace deprecated velocity methods and some other usages of deprecated api

* Replace two empty lines after the package statement with a single one

* Remove locking on Wrapper publish methods

* Switch to a fail-over cluster solution (#448)

* Initial work on adding a head node system

* Fixed all currently known bugs and cleanup stuff

* Fix task scheduler

* Fix all reported issues

* Check for dead services and update service logs every second

* Fix cluster node server factory to work with the head node system

* Make the service list after create by prettier

* Update the NodeInfoSnapshot every second

* Remove more old copyright comments

* Don't start a service if the service info snapshot is null

* Try to fix "ghost" services

* Migrate to the ScheduledExecutorService

* More output to see what is going on

* Fix memory check when system cpu usage should be included

* Dispatch packets on a separate threads

* Allow only the head node to process the smart config entries

* Bump jline from 3.19.0 to 3.20.0

* Update tablist and motd default style (#463)

* Small improvements

* Technically it did work

* Print logs of servers that stopped too early (#473)

* Improved template storages (#322)

* Add more methods to the TemplateStorage and move the TemplateStorage to the driver

* Add zipTemplate methods to the SpecificTemplateStorage

* Fix compile errors

* Fix creation of directories in the FTPTemplateStorage

* Fix some issues in the FTP/Local TemplateStorage

* Fix some issues in the SFTP TemplateStorage

* Add an option to specify whether TemplateStorage#listFiles should list files recursively

* Fix some issues in the template storages and add documentation to them

* Rethrow IOExceptions in the DefaultAsyncTemplateStorage and use a thread pool in the DefaultSyncTemplateStorage

* Async FTPQueueStorage

* Add ProtocolBufferTest

* Test the FTPQueueStorage

* Remove some unnecessary methods out of the TemplateStorage

* Begin with chunked packet queries

* Cleanup the netty networking package

* Implement some methods in the RemoteTemplateStorage

* Synchronize local template actions into the cluster

* Remove manual synchronization of templates in the cluster

* Remove FileInfo#isReadable and FileInfo#isWritable

* Fix some issues in the REST api for templates

* Implement the deploy and new/appendOutputStream methods in the RemoteTemplateStorage

* Shutdown the ExecutorService in the RemoteTemplateStorage on stop

* Improve codestyle

* Fix some issues with the RemoteTemplateStorage

* Fixed bugs in RemoteTemplateStorage/FTPTemplateStorage (#435)

* Fix storage templates

* Fix ftp template-storage

* Remove unused byte array template storage driver api request types

* Override the new template storage methods in EmptyCloudNetDriver too

* Resolve 3 merge failures

Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>

* Move packet dispatcher back to network client/server to prevent high thread loads per connection (#474)

* Bump gradle to 7.0.2

* Don't return a service provider if the associated node is disconnected

* Fix template push in cluster

* Remove MaxPermSize option as it is no longer supported by modern jvms

* Misc dependency updates

* Add commands to create syncproxy and bridge config entries (#478)

* Add commands to create syncproxy and bridge config entries

* Fix spacing in the bridge command

* Bump netty to 4.1.65.Final

* Misc dependency updates

* [ci-skip] Add wrapper validation step to actions

* Fix that the npc configuration is not reloaded correctly (#481)

* Fix exception while starting a service (#483)

* Do not handle NPC offhand interact to avoid executing the action twice

* Update forge download links in versions.json

* Only remove armor stand on shutdown

* Improve loading logic of task files

* Prevent netty logging init issues on older platforms like spigot 1.8

* Fix build failures on jdk15-ea and newer

* Better player handling (#449)

* Some improvements to player handling

* Resolve build failure and fix some test issues

* Improved permission system player handling

* Actually cache the permission user after loading

* Fix cache replacement when updating a user/group

* Use cache before requesting first user

* Change login listener priority from MONITOR to LOWEST

* Try to prevent duplicate login handling at a time

* Use one lock per player instead of a global one

* Improve some main parts of the networking

* Change the way how players are getting disconnected when they are no longer connected to the network

* Fixed typo

* Cache all proxy online counts on syncproxy startup

* Fix netty resource leak caused by direct buffer allocation

* Replace string concatenation with format statements

* Change the logout logic when a service stops

* Increase max byte length of a var int to 5

* Fix wrong online count on proxies after the startup

* Fix InvalidThreadState exception when a player logs in

* Only update the permission user/group in the database if its required

* Allow more netty processing threads and some improvements to the player handling

* Reduce processing threads to 8 for the wrapper and use the processor count * 2 on nodes

* Run rejected tasks on the calling thread instead of aborting them

* Combine nested if statements

* Use MethodHandle to set the player's permissible field

* Combine the nested statements again

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Add labymod banner support (#461)

* Add labymod banner support

* Update cloudnet-modules/cloudnet-labymod/src/main/java/eu/cloudnetservice/cloudnet/ext/labymod/node/CloudNetLabyModModule.java

Co-authored-by: Robin <derrop@outlook.de>

Co-authored-by: Robin <derrop@outlook.de>

* Update to latest development state

* Revert "Update to latest development state"

This reverts commit 3c0b0ae

* Revert "Update to latest development state"

This reverts commit 3c0b0ae

Deprecate old methods

Co-authored-by: David Mayr <davidliebtkekse@gmail.com>
Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>
Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: FemtoYT <38396937+FemtoYT@users.noreply.github.com>
Co-authored-by: Robin <derrop@outlook.de>
Co-authored-by: 0utplay <aldin@sijamhodzic.de>
Co-authored-by: Lvkas_ <51173477+zLvkas@users.noreply.github.com>

* Revert change of sql syntax to insert or update because of incompatibility with older databases (#486)

* Apply google code style and license headers to all files (#485)

* New code style & copyright step one

* Step 2: include missing profile settings and changes to gitignore

* Add gradle.properties for a better default build configuration

* Step 3: apply new code style

* Step 4: Apply copyright header to all files

* Make checkstyle a bit softer, remove async logger test

* Add plugin to ensure license headers are applied to all files

* Remove '#!groovy' from Jenkinsfile

* Fix checkstyle violations in node module

* Fix bad formatting of the issue templates

* Fix checkstyle issues in launcher

* Cleanup settings.gradle

* Fix all checkstyle issues

* Rename license file back

* Fix checkstyle issues in H2DatabaseProviderTest

* Fix checkstyle issues in test sources

* Fix distributionSha256Sum of gradle wrapper

* Maybe this time :/

* Ensure to only include wanted files in .idea subdirectories

* Change gradlew permissions back to +x

* Revert usage of TT.getParameterized because of older gson incompatibility (#488)

* Replace deprecated api usages related to template storages

* Allow api access to add/remove cloud service factories

* Bump jansi and bcpkix-jdk15on

* Bump gradle to 7.1

* Fix shell syntax error

* Revert "Bump gradle to 7.1"

This reverts commit 0a562a3 to make the build successful again

* Update ProtocolLib Download URL while they are working on the 1.17 implementation which is currently breaking

* Improve player logout strategy

* Qualified all instance method & field accesses with 'this'

* Bump gradle to 7.1, closes GH-495

* Minecraft 1.17 caves & cliffs (part 1) support (#490)

* Initial 1.17 support

* Add spigot 1.17 downloads to versions.json

* Paper 1.17 🎉

* Temporary use an older protocol lib version in order to allow the jenkins to build the version

* Cleanup versions file

* Don't depend on protocol lib

* Bring back the protocol lib dependency

* Switch back to master builds of protocol lib

* Download the latest build of ProtocolLib again

* Improve logout handling, again

* Fix check if the template must be redirected to the cluster

* Introducing CloudNet 3.5 - Blizzard

* Remove/cleanup gson usages where needed

* Add time format into the CloudNet-Report module records (#491)

* Added time format into the records for better sorting (and also to avoid having thousands of subfolders in the same folder)

* Little change because deepcode not happy and also I forgot to put back the variable on line 95

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Made modifications requested by derklaro

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/listener/CloudNetReportListener.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Updated SimpleDateFormat to DateFormat

* Revert to SimpleDateFormat

* Reverted a bit too much

* Change SimpleDateFormat to DateFormat

* Clean- and fixup the module main class

* Revert "Merge branch 'CloudNetService:development' into development"

This reverts commit ecc0888, reversing
changes made to 118b55e.

* login & logout, again

* Update Cloudnet

* Jenkins update

* Revert "Merge branch 'fix/already-connected' of https://github.com/CloudNetService/CloudNet-v3 into development"

This reverts commit 2c5d201, reversing
changes made to 1204e81.

* Revert "Jenkins update"

This reverts commit 5c431ad.

* Revert "Update Cloudnet"

This reverts commit f419318.

* Revert dependency downgrades

* Revert some changes to CloudServiceManager

* Update DefaultCloudServiceManager.java

* Update gradle-wrapper.properties

* Update CommandCopy.java

* Whoops

* Update EmptyCloudNetDriver.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>

* Remove deprecated methods, specify removal versions for some other methods

* Ensure that IJ uses per project code style settings

* Reformat merged code

* Intellij is just dumb

* Added routes for permission group management and added it to the swagger docs

* Added the handler for the permission management & created routes for the bridge. Permission is currently broken

* Determine if the request is based on a user or group

* Use implementation instead of the interfaces for serialization

* Add swagger docs for the permission and player routes

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: Lvkas_ <51173477+zLvkas@users.noreply.github.com>
Co-authored-by: Robin <derrop@outlook.de>
Co-authored-by: John <30979070+MCMDEV@users.noreply.github.com>
Co-authored-by: David Mayr <davidliebtkekse@gmail.com>
Co-authored-by: FemtoYT <38396937+FemtoYT@users.noreply.github.com>
Co-authored-by: Sarsum <33085157+Sarsum@users.noreply.github.com>
Co-authored-by: a6doff <67640562+a6doff@users.noreply.github.com>
derklaro added a commit that referenced this pull request Jul 15, 2021
* Adds StaticContentHttpHandler to be able to serve static content

This change might be breaking for a very small group of people who are using an own version of the IHttpContext, as I needed to add the pathPrefix from registering the handler to be able to serve the content in case it is served in a sub path

* Fix issues reported by DeepCode

* Removed unused import

* Renamed FileMimeTypeGuesser.java to FileMimeTypeHelper.java

* General improvements to the rest api handling

* Improve StaticContentHttpHandler

* Current implementation progress of new rest api

* Full implementation of the service handler with some on the fly fixes

* Further implementation progress

* Migrate info and liveConsole to node handler and add possibility to reload and change the config of a node

* Allow commands to be sent to a service using the websocket connection

* Improvement of stream provider

* Merge 3.5 develop into rest-api-improvements (#498)

* Only remove armor stand on shutdown

* Update forge download links in versions.json

* Improve loading logic of task files

* Prevent netty logging init issues on older platforms like spigot 1.8

* Fix build failures on jdk15-ea and newer

* Better player handling (#449)

* Some improvements to player handling

* Resolve build failure and fix some test issues

* Improved permission system player handling

* Actually cache the permission user after loading

* Fix cache replacement when updating a user/group

* Use cache before requesting first user

* Change login listener priority from MONITOR to LOWEST

* Try to prevent duplicate login handling at a time

* Use one lock per player instead of a global one

* Improve some main parts of the networking

* Change the way how players are getting disconnected when they are no longer connected to the network

* Fixed typo

* Cache all proxy online counts on syncproxy startup

* Fix netty resource leak caused by direct buffer allocation

* Replace string concatenation with format statements

* Change the logout logic when a service stops

* Increase max byte length of a var int to 5

* Fix wrong online count on proxies after the startup

* Fix InvalidThreadState exception when a player logs in

* Only update the permission user/group in the database if its required

* Allow more netty processing threads and some improvements to the player handling

* Reduce processing threads to 8 for the wrapper and use the processor count * 2 on nodes

* Run rejected tasks on the calling thread instead of aborting them

* Combine nested if statements

* Use MethodHandle to set the player's permissible field

* Combine the nested statements again

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Add labymod banner support (#461)

* Add labymod banner support

* Update cloudnet-modules/cloudnet-labymod/src/main/java/eu/cloudnetservice/cloudnet/ext/labymod/node/CloudNetLabyModModule.java

Co-authored-by: Robin <derrop@outlook.de>

Co-authored-by: Robin <derrop@outlook.de>

* Allow the deletion of a player from the database via api and command (#479)

* Add a method in the IPlayerManager to delete a cloud player

* Rename method to match what it does

* Rename the parameter here too

* Change javadoc and remove the completedtask instance

* Resolve merge conflicts and flush the offline cache

* Fix merge mistakes

* Moved code for nametags from cloudperms module to simplenametags plugin (#458)

* Moved code for nametags from cloudperms module to simplenametags plugin

* Reverted and deprecated BukkitCloudNetCloudPermissionsPlugin methods

* Removed kicked from server message (#459)

Velocity currently sends a message that can not be canceled without a velocity fork. The Message appends a prefix, but it can be changed by leaving the prefix string blank in the velocity prefix.

* Use gradle wrapper instead of gradle provided by the ci (#456)

* Use gradle wrapper instead of gradle provided by the ci

* Move unit tests to a separate build step

* Move statement to correct position whoops

* NPC Knockback (#451)

* Create custom process termination timeout for services

* Add setter

* Add 1 as min

* Add start / stop message on different nodes

* add tunity support

* Add tunity repo as website

* Remove unused versionGroup for tunity

* Replace online and maxplayers for velocity and bungeecord

* Add knockback to npcs

* Add emotes on knockback, don't run runnable when strength or distance are zero

* Check for strength too

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Re-add removed copyCurrentModuleInstanceFromClass(Class,File) method

* Add component messenger for the new adventure text api

* Replace deprecated velocity methods and some other usages of deprecated api

* Replace two empty lines after the package statement with a single one

* Remove locking on Wrapper publish methods

* Switch to a fail-over cluster solution (#448)

* Initial work on adding a head node system

* Fixed all currently known bugs and cleanup stuff

* Fix task scheduler

* Fix all reported issues

* Check for dead services and update service logs every second

* Fix cluster node server factory to work with the head node system

* Make the service list after create by prettier

* Update the NodeInfoSnapshot every second

* Remove more old copyright comments

* Don't start a service if the service info snapshot is null

* Try to fix "ghost" services

* Migrate to the ScheduledExecutorService

* More output to see what is going on

* Fix memory check when system cpu usage should be included

* Dispatch packets on a separate threads

* Allow only the head node to process the smart config entries

* Bump jline from 3.19.0 to 3.20.0

* Update tablist and motd default style (#463)

* Small improvements

* Technically it did work

* Print logs of servers that stopped too early (#473)

* Improved template storages (#322)

* Add more methods to the TemplateStorage and move the TemplateStorage to the driver

* Add zipTemplate methods to the SpecificTemplateStorage

* Fix compile errors

* Fix creation of directories in the FTPTemplateStorage

* Fix some issues in the FTP/Local TemplateStorage

* Fix some issues in the SFTP TemplateStorage

* Add an option to specify whether TemplateStorage#listFiles should list files recursively

* Fix some issues in the template storages and add documentation to them

* Rethrow IOExceptions in the DefaultAsyncTemplateStorage and use a thread pool in the DefaultSyncTemplateStorage

* Async FTPQueueStorage

* Add ProtocolBufferTest

* Test the FTPQueueStorage

* Remove some unnecessary methods out of the TemplateStorage

* Begin with chunked packet queries

* Cleanup the netty networking package

* Implement some methods in the RemoteTemplateStorage

* Synchronize local template actions into the cluster

* Remove manual synchronization of templates in the cluster

* Remove FileInfo#isReadable and FileInfo#isWritable

* Fix some issues in the REST api for templates

* Implement the deploy and new/appendOutputStream methods in the RemoteTemplateStorage

* Shutdown the ExecutorService in the RemoteTemplateStorage on stop

* Improve codestyle

* Fix some issues with the RemoteTemplateStorage

* Fixed bugs in RemoteTemplateStorage/FTPTemplateStorage (#435)

* Fix storage templates

* Fix ftp template-storage

* Remove unused byte array template storage driver api request types

* Override the new template storage methods in EmptyCloudNetDriver too

* Resolve 3 merge failures

Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>

* Move packet dispatcher back to network client/server to prevent high thread loads per connection (#474)

* Bump gradle to 7.0.2

* Don't return a service provider if the associated node is disconnected

* Fix template push in cluster

* Remove MaxPermSize option as it is no longer supported by modern jvms

* Misc dependency updates

* Add commands to create syncproxy and bridge config entries (#478)

* Add commands to create syncproxy and bridge config entries

* Fix spacing in the bridge command

* Bump netty to 4.1.65.Final

* Misc dependency updates

* [ci-skip] Add wrapper validation step to actions

* Fix that the npc configuration is not reloaded correctly (#481)

* Fix exception while starting a service (#483)

* Do not handle NPC offhand interact to avoid executing the action twice

* Update forge download links in versions.json

* Only remove armor stand on shutdown

* Improve loading logic of task files

* Prevent netty logging init issues on older platforms like spigot 1.8

* Fix build failures on jdk15-ea and newer

* Better player handling (#449)

* Some improvements to player handling

* Resolve build failure and fix some test issues

* Improved permission system player handling

* Actually cache the permission user after loading

* Fix cache replacement when updating a user/group

* Use cache before requesting first user

* Change login listener priority from MONITOR to LOWEST

* Try to prevent duplicate login handling at a time

* Use one lock per player instead of a global one

* Improve some main parts of the networking

* Change the way how players are getting disconnected when they are no longer connected to the network

* Fixed typo

* Cache all proxy online counts on syncproxy startup

* Fix netty resource leak caused by direct buffer allocation

* Replace string concatenation with format statements

* Change the logout logic when a service stops

* Increase max byte length of a var int to 5

* Fix wrong online count on proxies after the startup

* Fix InvalidThreadState exception when a player logs in

* Only update the permission user/group in the database if its required

* Allow more netty processing threads and some improvements to the player handling

* Reduce processing threads to 8 for the wrapper and use the processor count * 2 on nodes

* Run rejected tasks on the calling thread instead of aborting them

* Combine nested if statements

* Use MethodHandle to set the player's permissible field

* Combine the nested statements again

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Add labymod banner support (#461)

* Add labymod banner support

* Update cloudnet-modules/cloudnet-labymod/src/main/java/eu/cloudnetservice/cloudnet/ext/labymod/node/CloudNetLabyModModule.java

Co-authored-by: Robin <derrop@outlook.de>

Co-authored-by: Robin <derrop@outlook.de>

* Update to latest development state

* Revert "Update to latest development state"

This reverts commit 3c0b0ae

* Revert "Update to latest development state"

This reverts commit 3c0b0ae

Deprecate old methods

Co-authored-by: David Mayr <davidliebtkekse@gmail.com>
Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>
Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: FemtoYT <38396937+FemtoYT@users.noreply.github.com>
Co-authored-by: Robin <derrop@outlook.de>
Co-authored-by: 0utplay <aldin@sijamhodzic.de>
Co-authored-by: Lvkas_ <51173477+zLvkas@users.noreply.github.com>

* Revert change of sql syntax to insert or update because of incompatibility with older databases (#486)

* Apply google code style and license headers to all files (#485)

* New code style & copyright step one

* Step 2: include missing profile settings and changes to gitignore

* Add gradle.properties for a better default build configuration

* Step 3: apply new code style

* Step 4: Apply copyright header to all files

* Make checkstyle a bit softer, remove async logger test

* Add plugin to ensure license headers are applied to all files

* Remove '#!groovy' from Jenkinsfile

* Fix checkstyle violations in node module

* Fix bad formatting of the issue templates

* Fix checkstyle issues in launcher

* Cleanup settings.gradle

* Fix all checkstyle issues

* Rename license file back

* Fix checkstyle issues in H2DatabaseProviderTest

* Fix checkstyle issues in test sources

* Fix distributionSha256Sum of gradle wrapper

* Maybe this time :/

* Ensure to only include wanted files in .idea subdirectories

* Change gradlew permissions back to +x

* Revert usage of TT.getParameterized because of older gson incompatibility (#488)

* Replace deprecated api usages related to template storages

* Allow api access to add/remove cloud service factories

* Bump jansi and bcpkix-jdk15on

* Bump gradle to 7.1

* Fix shell syntax error

* Revert "Bump gradle to 7.1"

This reverts commit 0a562a3 to make the build successful again

* Update ProtocolLib Download URL while they are working on the 1.17 implementation which is currently breaking

* Improve player logout strategy

* Qualified all instance method & field accesses with 'this'

* Bump gradle to 7.1, closes GH-495

* Minecraft 1.17 caves & cliffs (part 1) support (#490)

* Initial 1.17 support

* Add spigot 1.17 downloads to versions.json

* Paper 1.17 🎉

* Temporary use an older protocol lib version in order to allow the jenkins to build the version

* Cleanup versions file

* Don't depend on protocol lib

* Bring back the protocol lib dependency

* Switch back to master builds of protocol lib

* Download the latest build of ProtocolLib again

* Improve logout handling, again

* Fix check if the template must be redirected to the cluster

* Introducing CloudNet 3.5 - Blizzard

* Remove/cleanup gson usages where needed

* Add time format into the CloudNet-Report module records (#491)

* Added time format into the records for better sorting (and also to avoid having thousands of subfolders in the same folder)

* Little change because deepcode not happy and also I forgot to put back the variable on line 95

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Made modifications requested by derklaro

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/listener/CloudNetReportListener.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Updated SimpleDateFormat to DateFormat

* Revert to SimpleDateFormat

* Reverted a bit too much

* Change SimpleDateFormat to DateFormat

* Clean- and fixup the module main class

* Revert "Merge branch 'CloudNetService:development' into development"

This reverts commit ecc0888, reversing
changes made to 118b55e.

* login & logout, again

* Update Cloudnet

* Jenkins update

* Revert "Merge branch 'fix/already-connected' of https://github.com/CloudNetService/CloudNet-v3 into development"

This reverts commit 2c5d201, reversing
changes made to 1204e81.

* Revert "Jenkins update"

This reverts commit 5c431ad.

* Revert "Update Cloudnet"

This reverts commit f419318.

* Revert dependency downgrades

* Revert some changes to CloudServiceManager

* Update DefaultCloudServiceManager.java

* Update gradle-wrapper.properties

* Update CommandCopy.java

* Whoops

* Update EmptyCloudNetDriver.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>

* Remove deprecated methods, specify removal versions for some other methods

* Ensure that IJ uses per project code style settings

* Reformat merged code

* Intellij is just dumb

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: Lvkas_ <51173477+zLvkas@users.noreply.github.com>
Co-authored-by: Robin <derrop@outlook.de>
Co-authored-by: John <30979070+MCMDEV@users.noreply.github.com>
Co-authored-by: David Mayr <davidliebtkekse@gmail.com>
Co-authored-by: FemtoYT <38396937+FemtoYT@users.noreply.github.com>
Co-authored-by: Sarsum <33085157+Sarsum@users.noreply.github.com>
Co-authored-by: a6doff <67640562+a6doff@users.noreply.github.com>

* Rest - Permissions & Bridge (#499)

* Only remove armor stand on shutdown

* Update forge download links in versions.json

* Improve loading logic of task files

* Prevent netty logging init issues on older platforms like spigot 1.8

* Fix build failures on jdk15-ea and newer

* Better player handling (#449)

* Some improvements to player handling

* Resolve build failure and fix some test issues

* Improved permission system player handling

* Actually cache the permission user after loading

* Fix cache replacement when updating a user/group

* Use cache before requesting first user

* Change login listener priority from MONITOR to LOWEST

* Try to prevent duplicate login handling at a time

* Use one lock per player instead of a global one

* Improve some main parts of the networking

* Change the way how players are getting disconnected when they are no longer connected to the network

* Fixed typo

* Cache all proxy online counts on syncproxy startup

* Fix netty resource leak caused by direct buffer allocation

* Replace string concatenation with format statements

* Change the logout logic when a service stops

* Increase max byte length of a var int to 5

* Fix wrong online count on proxies after the startup

* Fix InvalidThreadState exception when a player logs in

* Only update the permission user/group in the database if its required

* Allow more netty processing threads and some improvements to the player handling

* Reduce processing threads to 8 for the wrapper and use the processor count * 2 on nodes

* Run rejected tasks on the calling thread instead of aborting them

* Combine nested if statements

* Use MethodHandle to set the player's permissible field

* Combine the nested statements again

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Add labymod banner support (#461)

* Add labymod banner support

* Update cloudnet-modules/cloudnet-labymod/src/main/java/eu/cloudnetservice/cloudnet/ext/labymod/node/CloudNetLabyModModule.java

Co-authored-by: Robin <derrop@outlook.de>

Co-authored-by: Robin <derrop@outlook.de>

* Allow the deletion of a player from the database via api and command (#479)

* Add a method in the IPlayerManager to delete a cloud player

* Rename method to match what it does

* Rename the parameter here too

* Change javadoc and remove the completedtask instance

* Resolve merge conflicts and flush the offline cache

* Fix merge mistakes

* Moved code for nametags from cloudperms module to simplenametags plugin (#458)

* Moved code for nametags from cloudperms module to simplenametags plugin

* Reverted and deprecated BukkitCloudNetCloudPermissionsPlugin methods

* Removed kicked from server message (#459)

Velocity currently sends a message that can not be canceled without a velocity fork. The Message appends a prefix, but it can be changed by leaving the prefix string blank in the velocity prefix.

* Use gradle wrapper instead of gradle provided by the ci (#456)

* Use gradle wrapper instead of gradle provided by the ci

* Move unit tests to a separate build step

* Move statement to correct position whoops

* NPC Knockback (#451)

* Create custom process termination timeout for services

* Add setter

* Add 1 as min

* Add start / stop message on different nodes

* add tunity support

* Add tunity repo as website

* Remove unused versionGroup for tunity

* Replace online and maxplayers for velocity and bungeecord

* Add knockback to npcs

* Add emotes on knockback, don't run runnable when strength or distance are zero

* Check for strength too

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Re-add removed copyCurrentModuleInstanceFromClass(Class,File) method

* Add component messenger for the new adventure text api

* Replace deprecated velocity methods and some other usages of deprecated api

* Replace two empty lines after the package statement with a single one

* Remove locking on Wrapper publish methods

* Switch to a fail-over cluster solution (#448)

* Initial work on adding a head node system

* Fixed all currently known bugs and cleanup stuff

* Fix task scheduler

* Fix all reported issues

* Check for dead services and update service logs every second

* Fix cluster node server factory to work with the head node system

* Make the service list after create by prettier

* Update the NodeInfoSnapshot every second

* Remove more old copyright comments

* Don't start a service if the service info snapshot is null

* Try to fix "ghost" services

* Migrate to the ScheduledExecutorService

* More output to see what is going on

* Fix memory check when system cpu usage should be included

* Dispatch packets on a separate threads

* Allow only the head node to process the smart config entries

* Bump jline from 3.19.0 to 3.20.0

* Update tablist and motd default style (#463)

* Small improvements

* Technically it did work

* Print logs of servers that stopped too early (#473)

* Improved template storages (#322)

* Add more methods to the TemplateStorage and move the TemplateStorage to the driver

* Add zipTemplate methods to the SpecificTemplateStorage

* Fix compile errors

* Fix creation of directories in the FTPTemplateStorage

* Fix some issues in the FTP/Local TemplateStorage

* Fix some issues in the SFTP TemplateStorage

* Add an option to specify whether TemplateStorage#listFiles should list files recursively

* Fix some issues in the template storages and add documentation to them

* Rethrow IOExceptions in the DefaultAsyncTemplateStorage and use a thread pool in the DefaultSyncTemplateStorage

* Async FTPQueueStorage

* Add ProtocolBufferTest

* Test the FTPQueueStorage

* Remove some unnecessary methods out of the TemplateStorage

* Begin with chunked packet queries

* Cleanup the netty networking package

* Implement some methods in the RemoteTemplateStorage

* Synchronize local template actions into the cluster

* Remove manual synchronization of templates in the cluster

* Remove FileInfo#isReadable and FileInfo#isWritable

* Fix some issues in the REST api for templates

* Implement the deploy and new/appendOutputStream methods in the RemoteTemplateStorage

* Shutdown the ExecutorService in the RemoteTemplateStorage on stop

* Improve codestyle

* Fix some issues with the RemoteTemplateStorage

* Fixed bugs in RemoteTemplateStorage/FTPTemplateStorage (#435)

* Fix storage templates

* Fix ftp template-storage

* Remove unused byte array template storage driver api request types

* Override the new template storage methods in EmptyCloudNetDriver too

* Resolve 3 merge failures

Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>

* Move packet dispatcher back to network client/server to prevent high thread loads per connection (#474)

* Bump gradle to 7.0.2

* Don't return a service provider if the associated node is disconnected

* Fix template push in cluster

* Remove MaxPermSize option as it is no longer supported by modern jvms

* Misc dependency updates

* Add commands to create syncproxy and bridge config entries (#478)

* Add commands to create syncproxy and bridge config entries

* Fix spacing in the bridge command

* Bump netty to 4.1.65.Final

* Misc dependency updates

* [ci-skip] Add wrapper validation step to actions

* Fix that the npc configuration is not reloaded correctly (#481)

* Fix exception while starting a service (#483)

* Do not handle NPC offhand interact to avoid executing the action twice

* Update forge download links in versions.json

* Only remove armor stand on shutdown

* Improve loading logic of task files

* Prevent netty logging init issues on older platforms like spigot 1.8

* Fix build failures on jdk15-ea and newer

* Better player handling (#449)

* Some improvements to player handling

* Resolve build failure and fix some test issues

* Improved permission system player handling

* Actually cache the permission user after loading

* Fix cache replacement when updating a user/group

* Use cache before requesting first user

* Change login listener priority from MONITOR to LOWEST

* Try to prevent duplicate login handling at a time

* Use one lock per player instead of a global one

* Improve some main parts of the networking

* Change the way how players are getting disconnected when they are no longer connected to the network

* Fixed typo

* Cache all proxy online counts on syncproxy startup

* Fix netty resource leak caused by direct buffer allocation

* Replace string concatenation with format statements

* Change the logout logic when a service stops

* Increase max byte length of a var int to 5

* Fix wrong online count on proxies after the startup

* Fix InvalidThreadState exception when a player logs in

* Only update the permission user/group in the database if its required

* Allow more netty processing threads and some improvements to the player handling

* Reduce processing threads to 8 for the wrapper and use the processor count * 2 on nodes

* Run rejected tasks on the calling thread instead of aborting them

* Combine nested if statements

* Use MethodHandle to set the player's permissible field

* Combine the nested statements again

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>

* Add labymod banner support (#461)

* Add labymod banner support

* Update cloudnet-modules/cloudnet-labymod/src/main/java/eu/cloudnetservice/cloudnet/ext/labymod/node/CloudNetLabyModModule.java

Co-authored-by: Robin <derrop@outlook.de>

Co-authored-by: Robin <derrop@outlook.de>

* Update to latest development state

* Revert "Update to latest development state"

This reverts commit 3c0b0ae

* Revert "Update to latest development state"

This reverts commit 3c0b0ae

Deprecate old methods

Co-authored-by: David Mayr <davidliebtkekse@gmail.com>
Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: 0utplay <60936899+0utplay@users.noreply.github.com>
Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: FemtoYT <38396937+FemtoYT@users.noreply.github.com>
Co-authored-by: Robin <derrop@outlook.de>
Co-authored-by: 0utplay <aldin@sijamhodzic.de>
Co-authored-by: Lvkas_ <51173477+zLvkas@users.noreply.github.com>

* Revert change of sql syntax to insert or update because of incompatibility with older databases (#486)

* Apply google code style and license headers to all files (#485)

* New code style & copyright step one

* Step 2: include missing profile settings and changes to gitignore

* Add gradle.properties for a better default build configuration

* Step 3: apply new code style

* Step 4: Apply copyright header to all files

* Make checkstyle a bit softer, remove async logger test

* Add plugin to ensure license headers are applied to all files

* Remove '#!groovy' from Jenkinsfile

* Fix checkstyle violations in node module

* Fix bad formatting of the issue templates

* Fix checkstyle issues in launcher

* Cleanup settings.gradle

* Fix all checkstyle issues

* Rename license file back

* Fix checkstyle issues in H2DatabaseProviderTest

* Fix checkstyle issues in test sources

* Fix distributionSha256Sum of gradle wrapper

* Maybe this time :/

* Ensure to only include wanted files in .idea subdirectories

* Change gradlew permissions back to +x

* Revert usage of TT.getParameterized because of older gson incompatibility (#488)

* Replace deprecated api usages related to template storages

* Allow api access to add/remove cloud service factories

* Bump jansi and bcpkix-jdk15on

* Bump gradle to 7.1

* Fix shell syntax error

* Revert "Bump gradle to 7.1"

This reverts commit 0a562a3 to make the build successful again

* Update ProtocolLib Download URL while they are working on the 1.17 implementation which is currently breaking

* Improve player logout strategy

* Qualified all instance method & field accesses with 'this'

* Bump gradle to 7.1, closes GH-495

* Minecraft 1.17 caves & cliffs (part 1) support (#490)

* Initial 1.17 support

* Add spigot 1.17 downloads to versions.json

* Paper 1.17 🎉

* Temporary use an older protocol lib version in order to allow the jenkins to build the version

* Cleanup versions file

* Don't depend on protocol lib

* Bring back the protocol lib dependency

* Switch back to master builds of protocol lib

* Download the latest build of ProtocolLib again

* Improve logout handling, again

* Fix check if the template must be redirected to the cluster

* Introducing CloudNet 3.5 - Blizzard

* Remove/cleanup gson usages where needed

* Add time format into the CloudNet-Report module records (#491)

* Added time format into the records for better sorting (and also to avoid having thousands of subfolders in the same folder)

* Little change because deepcode not happy and also I forgot to put back the variable on line 95

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Made modifications requested by derklaro

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/listener/CloudNetReportListener.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Update cloudnet-modules/cloudnet-report/src/main/java/de/dytanic/cloudnet/ext/report/CloudNetReportModule.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>

* Updated SimpleDateFormat to DateFormat

* Revert to SimpleDateFormat

* Reverted a bit too much

* Change SimpleDateFormat to DateFormat

* Clean- and fixup the module main class

* Revert "Merge branch 'CloudNetService:development' into development"

This reverts commit ecc0888, reversing
changes made to 118b55e.

* login & logout, again

* Update Cloudnet

* Jenkins update

* Revert "Merge branch 'fix/already-connected' of https://github.com/CloudNetService/CloudNet-v3 into development"

This reverts commit 2c5d201, reversing
changes made to 1204e81.

* Revert "Jenkins update"

This reverts commit 5c431ad.

* Revert "Update Cloudnet"

This reverts commit f419318.

* Revert dependency downgrades

* Revert some changes to CloudServiceManager

* Update DefaultCloudServiceManager.java

* Update gradle-wrapper.properties

* Update CommandCopy.java

* Whoops

* Update EmptyCloudNetDriver.java

Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>

* Remove deprecated methods, specify removal versions for some other methods

* Ensure that IJ uses per project code style settings

* Reformat merged code

* Intellij is just dumb

* Added routes for permission group management and added it to the swagger docs

* Added the handler for the permission management & created routes for the bridge. Permission is currently broken

* Determine if the request is based on a user or group

* Use implementation instead of the interfaces for serialization

* Add swagger docs for the permission and player routes

Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>
Co-authored-by: derklaro <pasqual.koschmieder@gmail.com>
Co-authored-by: Pasqual Koschmieder <40468651+derklaro@users.noreply.github.com>
Co-authored-by: Lvkas_ <51173477+zLvkas@users.noreply.github.com>
Co-authored-by: Robin <derrop@outlook.de>
Co-authored-by: John <30979070+MCMDEV@users.noreply.github.com>
Co-authored-by: David Mayr <davidliebtkekse@gmail.com>
Co-authored-by: FemtoYT <38396937+FemtoYT@users.noreply.github.com>
Co-authored-by: Sarsum <33085157+Sarsum@users.noreply.github.com>
Co-authored-by: a6doff <67640562+a6doff@users.noreply.github.com>

* Better permission user & bridge player http handler

* Allow access control configuration via rest module

* Use cors policy everywhere needed

* Use pre-build swagger docs for web docs route

* Add missing `this.` to instance field accesses

Co-authored-by: Sarsum <33085157+Sarsum@users.noreply.github.com>
Co-authored-by: Aldin Sijamhodzic <aldin@sijamhodzic.de>
Co-authored-by: Julian <42209193+juliarn@users.noreply.github.com>
Co-authored-by: Lvkas_ <51173477+zLvkas@users.noreply.github.com>
Co-authored-by: Robin <derrop@outlook.de>
Co-authored-by: John <30979070+MCMDEV@users.noreply.github.com>
Co-authored-by: David Mayr <davidliebtkekse@gmail.com>
Co-authored-by: FemtoYT <38396937+FemtoYT@users.noreply.github.com>
Co-authored-by: a6doff <67640562+a6doff@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v: 3.X This pull should be included in the 3.4 release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants